Commit cff9c407 by Richard Kenner

(lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.

From-SVN: r14626
parent 5a03c8c4
...@@ -1016,19 +1016,19 @@ default_conversion (exp) ...@@ -1016,19 +1016,19 @@ default_conversion (exp)
if (TREE_CODE (exp) == COMPONENT_REF if (TREE_CODE (exp) == COMPONENT_REF
&& DECL_BIT_FIELD (TREE_OPERAND (exp, 1))) && DECL_BIT_FIELD (TREE_OPERAND (exp, 1)))
{ {
tree width = DECL_SIZE (TREE_OPERAND (exp, 1)); tree width = DECL_SIZE (TREE_OPERAND (exp, 1));
HOST_WIDE_INT low = TREE_INT_CST_LOW (width); HOST_WIDE_INT low = TREE_INT_CST_LOW (width);
/* If it's thinner than an int, promote it like a /* If it's thinner than an int, promote it like a
C_PROMOTING_INTEGER_TYPE_P, otherwise leave it alone. */ C_PROMOTING_INTEGER_TYPE_P, otherwise leave it alone. */
if (low < TYPE_PRECISION (integer_type_node)) if (low < TYPE_PRECISION (integer_type_node))
{ {
if ( flag_traditional && TREE_UNSIGNED (type)) if (flag_traditional && TREE_UNSIGNED (type))
return convert (unsigned_type_node, exp); return convert (unsigned_type_node, exp);
else else
return convert (integer_type_node, exp); return convert (integer_type_node, exp);
} }
} }
if (C_PROMOTING_INTEGER_TYPE_P (type)) if (C_PROMOTING_INTEGER_TYPE_P (type))
...@@ -1085,7 +1085,7 @@ default_conversion (exp) ...@@ -1085,7 +1085,7 @@ default_conversion (exp)
TREE_OPERAND (exp, 0), op1); TREE_OPERAND (exp, 0), op1);
} }
if (!lvalue_p (exp) if (! lvalue_p (exp)
&& ! (TREE_CODE (exp) == CONSTRUCTOR && TREE_STATIC (exp))) && ! (TREE_CODE (exp) == CONSTRUCTOR && TREE_STATIC (exp)))
{ {
error ("invalid use of non-lvalue array"); error ("invalid use of non-lvalue array");
...@@ -3183,6 +3183,11 @@ lvalue_p (ref) ...@@ -3183,6 +3183,11 @@ lvalue_p (ref)
&& TREE_CODE (TREE_TYPE (ref)) != METHOD_TYPE) && TREE_CODE (TREE_TYPE (ref)) != METHOD_TYPE)
return 1; return 1;
break; break;
case BIND_EXPR:
case RTL_EXPR:
if (TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE)
return 1;
} }
return 0; return 0;
} }
......
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