2015-01-23 Jason Merrill <jason@redhat.com>
+ PR c++/64701
+ * constexpr.c (maybe_constant_value): Just hand back STATEMENT_LIST.
+
PR c++/64727
* constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
of CONST_DECL.
break;
default:
- internal_error ("unexpected expression %qE of kind %s", t,
- get_tree_code_name (TREE_CODE (t)));
+ if (STATEMENT_CODE_P (TREE_CODE (t)))
+ {
+ /* This function doesn't know how to deal with pre-genericize
+ statements; this can only happen with statement-expressions,
+ so for now just fail. */
+ if (!ctx->quiet)
+ error_at (EXPR_LOCATION (t),
+ "statement is not a constant-expression");
+ }
+ else
+ internal_error ("unexpected expression %qE of kind %s", t,
+ get_tree_code_name (TREE_CODE (t)));
*non_constant_p = true;
break;
}