Commit 290279c4 by Jason Merrill Committed by Jason Merrill

PR c++/70584 - error with parenthesized builtin arg

	* cp-gimplify.c (cp_fold) [INDIRECT_REF]: Call
	maybe_undo_parenthesized_ref.

From-SVN: r236616
parent 9c62c1f3
2016-05-23 Jason Merrill <jason@redhat.com> 2016-05-23 Jason Merrill <jason@redhat.com>
PR c++/70584
* cp-gimplify.c (cp_fold) [INDIRECT_REF]: Call
maybe_undo_parenthesized_ref.
PR c++/70735 PR c++/70735
* pt.c (tsubst_copy): Just return a local variable from * pt.c (tsubst_copy): Just return a local variable from
non-template context. Don't call rest_of_decl_compilation for non-template context. Don't call rest_of_decl_compilation for
......
...@@ -1996,6 +1996,15 @@ cp_fold (tree x) ...@@ -1996,6 +1996,15 @@ cp_fold (tree x)
break; break;
case INDIRECT_REF:
/* We don't need the decltype(auto) obfuscation anymore. */
if (REF_PARENTHESIZED_P (x))
{
tree p = maybe_undo_parenthesized_ref (x);
return cp_fold_maybe_rvalue (p, rval_ops);
}
goto unary;
case ADDR_EXPR: case ADDR_EXPR:
case REALPART_EXPR: case REALPART_EXPR:
case IMAGPART_EXPR: case IMAGPART_EXPR:
...@@ -2008,7 +2017,7 @@ cp_fold (tree x) ...@@ -2008,7 +2017,7 @@ cp_fold (tree x)
case BIT_NOT_EXPR: case BIT_NOT_EXPR:
case TRUTH_NOT_EXPR: case TRUTH_NOT_EXPR:
case FIXED_CONVERT_EXPR: case FIXED_CONVERT_EXPR:
case INDIRECT_REF: unary:
loc = EXPR_LOCATION (x); loc = EXPR_LOCATION (x);
op0 = cp_fold_maybe_rvalue (TREE_OPERAND (x, 0), rval_ops); op0 = cp_fold_maybe_rvalue (TREE_OPERAND (x, 0), rval_ops);
......
// { dg-do compile { target i?86-*-* x86_64-*-* } }
// { dg-options -maes }
typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
int main()
{
const char index = 1;
__m128i r = { };
r = __builtin_ia32_aeskeygenassist128 (r, (int)(index));
}
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