mirror of git://gcc.gnu.org/git/gcc.git
re PR c++/54984 (Array allocated with new in a template class is default initialised)
/cp 2012-10-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54984 * init.c (build_new): Don't turn a null *init into a pointer to empty vector orig_init. /testsuite 2012-10-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54984 * g++.dg/template/new11.C: New. From-SVN: r192846
This commit is contained in:
parent
39aada703b
commit
a4bbf9102b
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-10-26 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
|
PR c++/54984
|
||||||
|
* init.c (build_new): Don't turn a null *init into a pointer to
|
||||||
|
empty vector orig_init.
|
||||||
|
|
||||||
2012-10-25 Paolo Carlini <paolo.carlini@oracle.com>
|
2012-10-25 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR c++/53761
|
PR c++/53761
|
||||||
|
|
|
||||||
|
|
@ -2911,6 +2911,7 @@ build_new (VEC(tree,gc) **placement, tree type, tree nelts,
|
||||||
|
|
||||||
orig_placement = make_tree_vector_copy (*placement);
|
orig_placement = make_tree_vector_copy (*placement);
|
||||||
orig_nelts = nelts;
|
orig_nelts = nelts;
|
||||||
|
if (*init)
|
||||||
orig_init = make_tree_vector_copy (*init);
|
orig_init = make_tree_vector_copy (*init);
|
||||||
|
|
||||||
make_args_non_dependent (*placement);
|
make_args_non_dependent (*placement);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-10-26 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
|
PR c++/54984
|
||||||
|
* g++.dg/template/new11.C: New.
|
||||||
|
|
||||||
2012-10-26 Richard Biener <rguenther@suse.de>
|
2012-10-26 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
PR middle-end/54824
|
PR middle-end/54824
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
// PR c++/54984
|
||||||
|
// { dg-do run }
|
||||||
|
|
||||||
|
int n = 1;
|
||||||
|
|
||||||
|
void* operator new(__SIZE_TYPE__)
|
||||||
|
{
|
||||||
|
n = -1;
|
||||||
|
return &n;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct Foo
|
||||||
|
{
|
||||||
|
Foo()
|
||||||
|
: x(new int)
|
||||||
|
{
|
||||||
|
if (*x != -1)
|
||||||
|
__builtin_abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
int* x;
|
||||||
|
};
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Foo<float> foo;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue