Commit 30f6b784 by Jason Merrill Committed by Jason Merrill

re PR c++/58814 (ICE with volatile and attribute vector_size)

	PR c++/58814
	* typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
	stabilizing.

From-SVN: r207163
parent 9cca4e3d
2014-01-27 Jason Merrill <jason@redhat.com>
PR c++/58814
* typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
stabilizing.
PR c++/58837
* typeck.c (cp_truthvalue_conversion): Use explicit comparison for
FUNCTION_DECL.
......
......@@ -7399,8 +7399,7 @@ cp_build_modify_expr (tree lhs, enum tree_code modifycode, tree rhs,
side effect associated with any single compound assignment
operator. -- end note ] */
lhs = stabilize_reference (lhs);
if (TREE_SIDE_EFFECTS (rhs))
rhs = mark_rvalue_use (rhs);
rhs = rvalue (rhs);
rhs = stabilize_expr (rhs, &init);
newrhs = cp_build_binary_op (input_location,
modifycode, lhs, rhs,
......
volatile int i __attribute__((vector_size(8)));
void foo()
{
i += i;
}
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