(output_constant): When eliminating conversions, treat ARRAY_TYPE like
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 22 Nov 1994 03:21:24 +0000 (22:21 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 22 Nov 1994 03:21:24 +0000 (22:21 -0500)
a record.

From-SVN: r8546

gcc/varasm.c

index 28165a545adec1dc0c9742d4d2ec170a4ec7108c..d0733d34f5e2b8ee75bfbdfa4658733ef417e031 100644 (file)
@@ -3390,10 +3390,11 @@ output_constant (exp, size)
     return;
 
   /* Eliminate the NON_LVALUE_EXPR_EXPR that makes a cast not be an lvalue.
-     That way we get the constant (we hope) inside it.  Also, strip
-     off any NOP_EXPR that converts between two record or union types.  */
+     That way we get the constant (we hope) inside it.  Also, strip off any
+     NOP_EXPR that converts between two record, union, or array types.  */
   while ((TREE_CODE (exp) == NOP_EXPR 
          && (TREE_TYPE (exp) == TREE_TYPE (TREE_OPERAND (exp, 0))
+             || TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE
              || TREE_CODE (TREE_TYPE (exp)) == RECORD_TYPE
              || TREE_CODE (TREE_TYPE (exp)) == UNION_TYPE
              || TREE_CODE (TREE_TYPE (exp)) == QUAL_UNION_TYPE))