init.c (build_new_1): Use get_target_expr instead of save_expr.
* init.c (build_new_1): Use get_target_expr instead of save_expr. * g++.dg/init/new24.C: New test. From-SVN: r127668
This commit is contained in:
parent
2f41c1d60b
commit
af9fc1dd63
4 changed files with 25 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
|||
2007-08-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* init.c (build_new_1): Use get_target_expr instead of save_expr.
|
||||
|
||||
2007-08-20 Pawel Sikora <pluto@pld-linux.org>
|
||||
|
||||
PR c++/7302
|
||||
|
|
|
@ -1755,7 +1755,7 @@ build_new_1 (tree placement, tree type, tree nelts, tree init,
|
|||
placement_expr = NULL_TREE;
|
||||
else
|
||||
{
|
||||
placement_expr = save_expr (TREE_VALUE (placement));
|
||||
placement_expr = get_target_expr (TREE_VALUE (placement));
|
||||
placement = tree_cons (NULL_TREE, placement_expr, NULL_TREE);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
2007-08-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* g++.dg/init/new24.C: New test.
|
||||
|
||||
PR middle-end/32912
|
||||
* gcc.dg/pr32912-1.c: New test.
|
||||
* gcc.dg/pr32912-2.c: New test.
|
||||
|
|
18
gcc/testsuite/g++.dg/init/new24.C
Normal file
18
gcc/testsuite/g++.dg/init/new24.C
Normal file
|
@ -0,0 +1,18 @@
|
|||
// PR c++/33025
|
||||
// { dg-do compile }
|
||||
// { dg-options "-O2" }
|
||||
|
||||
typedef __SIZE_TYPE__ size_t;
|
||||
inline void *operator new (size_t, void *p) throw () { return p; }
|
||||
extern "C" void abort ();
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
const unsigned num = 10;
|
||||
unsigned *data = new unsigned[num];
|
||||
unsigned *ptr = new (data) unsigned (num);
|
||||
static unsigned data2[10];
|
||||
unsigned *ptr2 = new (&data2[0]) unsigned (10);
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue