Commit ae10b574 by Ian Lance Taylor

compiler: Don't try to take the address of a constant.

From-SVN: r187553
parent f2437399
...@@ -4044,7 +4044,7 @@ Unary_expression::do_get_tree(Translate_context* context) ...@@ -4044,7 +4044,7 @@ Unary_expression::do_get_tree(Translate_context* context)
if (this->create_temp_ if (this->create_temp_
&& !TREE_ADDRESSABLE(TREE_TYPE(expr)) && !TREE_ADDRESSABLE(TREE_TYPE(expr))
&& !DECL_P(expr) && (TREE_CODE(expr) == CONST_DECL || !DECL_P(expr))
&& TREE_CODE(expr) != INDIRECT_REF && TREE_CODE(expr) != INDIRECT_REF
&& TREE_CODE(expr) != COMPONENT_REF) && TREE_CODE(expr) != COMPONENT_REF)
{ {
...@@ -6194,7 +6194,9 @@ Expression::comparison_tree(Translate_context* context, Operator op, ...@@ -6194,7 +6194,9 @@ Expression::comparison_tree(Translate_context* context, Operator op,
make_tmp = NULL_TREE; make_tmp = NULL_TREE;
arg = right_tree; arg = right_tree;
} }
else if (TREE_ADDRESSABLE(TREE_TYPE(right_tree)) || DECL_P(right_tree)) else if (TREE_ADDRESSABLE(TREE_TYPE(right_tree))
|| (TREE_CODE(right_tree) != CONST_DECL
&& DECL_P(right_tree)))
{ {
make_tmp = NULL_TREE; make_tmp = NULL_TREE;
arg = build_fold_addr_expr_loc(location.gcc_location(), right_tree); arg = build_fold_addr_expr_loc(location.gcc_location(), right_tree);
......
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