aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2008-11-14 15:50:59 -0500
committerJason Merrill <jason@gcc.gnu.org>2008-11-14 15:50:59 -0500
commit2d2c68a3e769883a831f6de9af5bdde63698473c (patch)
treeac5b3e0fe6ddab19687a065e5f741a2f838d5e12
parent8b047446c3dd163b1a87abcae25a3aa40f603840 (diff)
downloadgcc-2d2c68a3e769883a831f6de9af5bdde63698473c.zip
gcc-2d2c68a3e769883a831f6de9af5bdde63698473c.tar.gz
gcc-2d2c68a3e769883a831f6de9af5bdde63698473c.tar.bz2
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
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/call.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/initlist8.C19
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 2c936ef..fd610b1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/37740
+ * call.c (build_aggr_conv): Increment i.
+
2008-11-13 Jason Merrill <jason@redhat.com>
PR c++/37932
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index bdaf7fd..4d86a44 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 e2723d7..6e86c2e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-14 Jason Merrill <jason@redhat.com>
+
+ PR c++/37740
+ * g++.dg/cpp0x/initlist8.C: New test.
+
2008-11-13 Steve Ellcey <sje@cup.hp.com>
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 0000000..db63eee
--- /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};
+}