Commit 4856a1f0 by Paolo Carlini

re PR c++/67926 (Using folding expressions in a constexpr context ice's)

/cp
2015-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67926
	* constexpr.c (potential_constant_expression_1): Handle
	UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR, BINARY_LEFT_FOLD_EXPR,
	BINARY_RIGHT_FOLD_EXPR.

/testsuite
2015-10-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67926
	* g++.dg/cpp1z/fold-ice1.C: New.

From-SVN: r228861
parent 08a7f38f
2015-10-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67926
* constexpr.c (potential_constant_expression_1): Handle
UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR, BINARY_LEFT_FOLD_EXPR,
BINARY_RIGHT_FOLD_EXPR.
2015-10-13 Jakub Jelinek <jakub@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
......
......@@ -4385,6 +4385,8 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict,
case TRUTH_NOT_EXPR:
case FIXED_CONVERT_EXPR:
case UNARY_PLUS_EXPR:
case UNARY_LEFT_FOLD_EXPR:
case UNARY_RIGHT_FOLD_EXPR:
unary:
return RECUR (TREE_OPERAND (t, 0), rval);
......@@ -4565,6 +4567,8 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict,
case MEMBER_REF:
case DOTSTAR_EXPR:
case MEM_REF:
case BINARY_LEFT_FOLD_EXPR:
case BINARY_RIGHT_FOLD_EXPR:
binary:
for (i = 0; i < 2; ++i)
if (!RECUR (TREE_OPERAND (t, i), want_rval))
......
2015-10-16 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67926
* g++.dg/cpp1z/fold-ice1.C: New.
2015-10-16 Michael Collison <michael.collison@linaro.org>
Andrew Pinski <andrew.pinski@caviumnetworks.com>
* testsuite/gcc.dg/tree-ssa/minmax-loopend.c: New test.
* gcc.dg/tree-ssa/minmax-loopend.c: New test.
2015-10-15 Marek Polacek <polacek@redhat.com>
......
// PR c++/67926
// { dg-options -std=c++1z }
template <bool ... T> bool FUR = (T && ...);
template <bool ... T> bool FUL = (... && T);
template <bool T1, bool ... T2> bool FBR = (T1 && ... && T2);
template <bool T1, bool ... T2> bool FBL = (T2 && ... && T1);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment