From: Jason Merrill Date: Fri, 14 Nov 2008 20:50:59 +0000 (-0500) Subject: re PR c++/37740 ([C++0x] "foo f{...}" form compiles, but "new foo{...}" one doesn't) X-Git-Tag: releases/gcc-4.4.0~1662 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2d2c68a3e769883a831f6de9af5bdde63698473c;p=thirdparty%2Fgcc.git re PR c++/37740 ([C++0x] "foo f{...}" form compiles, but "new foo{...}" one doesn't) PR c++/37740 * call.c (build_aggr_conv): Increment i. From-SVN: r141865 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2c936efc99b4..fd610b19fe71 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2008-11-14 Jason Merrill + + PR c++/37740 + * call.c (build_aggr_conv): Increment i. + 2008-11-13 Jason Merrill PR c++/37932 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index bdaf7fdcc92a..4d86a44f35b0 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -619,7 +619,7 @@ build_aggr_conv (tree type, tree ctor, int flags) conversion *c; tree field = TYPE_FIELDS (type); - for (; field; field = TREE_CHAIN (field)) + for (; field; field = TREE_CHAIN (field), ++i) { if (TREE_CODE (field) != FIELD_DECL) continue; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e2723d768762..6e86c2e3c813 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-11-14 Jason Merrill + + PR c++/37740 + * g++.dg/cpp0x/initlist8.C: New test. + 2008-11-13 Steve Ellcey PR middle-end/38004 diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist8.C b/gcc/testsuite/g++.dg/cpp0x/initlist8.C new file mode 100644 index 000000000000..db63eee78b60 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/initlist8.C @@ -0,0 +1,19 @@ +// PR c++/37740 +// { dg-options "-std=c++0x" } + +struct A +{ + int i; +}; + +struct B +{ + double d; + A i; +}; + +int main() +{ + A a; + new B{3.2, a}; +}