/cp
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59270
PR c++/58811
* init.c (build_value_init_noctor): Don't pass error_mark_node to
build_value_init.
/testsuite
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59270
PR c++/58811
* g++.dg/cpp0x/decltype-incomplete1.C: New.
* g++.dg/init/pr58811.C: Likewise.
From-SVN: r206731
+2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/59270
+ PR c++/58811
+ * init.c (build_value_init_noctor): Don't pass error_mark_node to
+ build_value_init.
+
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59269
ftype = TREE_TYPE (field);
+ if (ftype == error_mark_node)
+ continue;
+
/* We could skip vfields and fields of types with
user-defined constructors, but I think that won't improve
performance at all; it should be simpler in general just
+2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/59270
+ PR c++/58811
+ * g++.dg/cpp0x/decltype-incomplete1.C: New.
+ * g++.dg/init/pr58811.C: Likewise.
+
2014-01-17 Jeff Law <law@redhat.com>
PR middle-end/57904
--- /dev/null
+// PR c++/59270
+// { dg-do compile { target c++11 } }
+
+struct A
+{
+ struct B b; // { dg-error "incomplete type" }
+};
+
+decltype(A()) a;
--- /dev/null
+// PR c++/58811
+
+struct B
+{
+ struct A a; // { dg-error "incomplete type" }
+};
+
+void foo()
+{
+ B();
+}