PR c++/46298
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Nov 2010 20:31:31 +0000 (20:31 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Nov 2010 20:31:31 +0000 (20:31 +0000)
* semantics.c (build_constexpr_constructor_member_initializers):
Handle an enclosing STATEMENT_LIST.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166330 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/semantics.c

index ab00a0f..7167992 100644 (file)
@@ -1,5 +1,9 @@
 2010-11-04  Jason Merrill  <jason@redhat.com>
 
+       PR c++/46298
+       * semantics.c (build_constexpr_constructor_member_initializers):
+       Handle an enclosing STATEMENT_LIST.
+
        * semantics.c (speculative_access_check): New.
        * cp-tree.h: Declare it.
        * call.c (build_over_call): Use it.
index 3d62cd1..558be88 100644 (file)
@@ -5535,8 +5535,9 @@ build_constexpr_constructor_member_initializers (tree type, tree body)
   if (TREE_CODE (body) == MUST_NOT_THROW_EXPR
       || TREE_CODE (body) == EH_SPEC_BLOCK)
     body = TREE_OPERAND (body, 0);
-  if (TREE_CODE (body) == BIND_EXPR)
-    body = BIND_EXPR_BODY (body);
+  if (TREE_CODE (body) == STATEMENT_LIST)
+    body = STATEMENT_LIST_HEAD (body)->stmt;
+  body = BIND_EXPR_BODY (body);
   if (TREE_CODE (body) == CLEANUP_POINT_EXPR)
     ok = build_data_member_initialization (body, &vec);
   else if (TREE_CODE (body) == STATEMENT_LIST)