re PR c++/12253 ([tree-ssa] ICE on conversion to std::string inside array initialization)
PR c++/12253 * init.c (build_vec_init): Initialization of an element from an initializer list is also a full-expression. From-SVN: r74798
This commit is contained in:
parent
a3bf324c46
commit
d20db24204
28
gcc/testsuite/g++.dg/init/array12.C
Normal file
28
gcc/testsuite/g++.dg/init/array12.C
Normal file
@ -0,0 +1,28 @@
|
||||
// PR c++/12253
|
||||
// Bug: We were failing to destroy the temporary A passed to the
|
||||
// constructor for b[0] before going on to construct b[1].
|
||||
|
||||
// { dg-do run }
|
||||
|
||||
extern "C" int printf (const char *, ...);
|
||||
|
||||
int c;
|
||||
int r;
|
||||
|
||||
struct A
|
||||
{
|
||||
A() { printf ("A()\n"); if (c++) r = 1; }
|
||||
A(const A&) { printf ("A(const A&)\n"); ++c; }
|
||||
~A() { printf ("~A()\n"); --c; }
|
||||
};
|
||||
|
||||
struct B
|
||||
{
|
||||
B(int, const A& = A()) { printf ("B()\n"); }
|
||||
};
|
||||
|
||||
int main()
|
||||
{
|
||||
B b[] = { 0, 0 };
|
||||
return r;
|
||||
}
|
Loading…
Reference in New Issue
Block a user