+2010-12-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/46626
+ * semantics.c (build_data_member_initialization): For CLEANUP_STMT
+ recurse into CLEANUP_BODY.
+
2010-12-25 Kai Tietz <kai.tietz@onevision.com>
PR c++/15774
if (t == error_mark_node)
return false;
if (TREE_CODE (t) == CLEANUP_STMT)
- /* We can't see a CLEANUP_STMT in a constructor for a literal class,
- but we can in a constexpr constructor for a non-literal class. Just
- ignore it; either all the initialization will be constant, in which
- case the cleanup can't run, or it can't be constexpr. */
- return true;
+ {
+ /* We can't see a CLEANUP_STMT in a constructor for a literal class,
+ but we can in a constexpr constructor for a non-literal class. Just
+ ignore it; either all the initialization will be constant, in which
+ case the cleanup can't run, or it can't be constexpr.
+ Still recurse into CLEANUP_BODY. */
+ t = CLEANUP_BODY (t);
+ if (TREE_CODE (t) == STATEMENT_LIST)
+ {
+ tree_stmt_iterator i;
+ for (i = tsi_start (t); !tsi_end_p (i); tsi_next (&i))
+ {
+ if (! build_data_member_initialization (tsi_stmt (i), vec))
+ return false;
+ }
+ return true;
+ }
+ return build_data_member_initialization (t, vec);
+ }
if (TREE_CODE (t) == CONVERT_EXPR)
t = TREE_OPERAND (t, 0);
if (TREE_CODE (t) == INIT_EXPR
+2010-12-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/46626
+ * g++.dg/cpp0x/constexpr-base4.C: New test.
+
2010-12-26 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/gnu-api-2-class.m: Xfail the test on Apple Darwin m64.