(default_conversion): Don't substitute constant value if array since
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 24 Aug 1994 22:28:40 +0000 (18:28 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 24 Aug 1994 22:28:40 +0000 (18:28 -0400)
will return address.

From-SVN: r7970

gcc/c-typeck.c

index aedc7e5d02a9b7cdaaacf96cb4960d86b76ee281..bb638dc7c25efa3afeeef20b63159720188a6369 100644 (file)
@@ -990,8 +990,11 @@ default_conversion (exp)
   /* Constants can be used directly unless they're not loadable.  */
   if (TREE_CODE (exp) == CONST_DECL)
     exp = DECL_INITIAL (exp);
-  /* Replace a nonvolatile const static variable with its value.  */
-  else if (optimize && TREE_CODE (exp) == VAR_DECL)
+
+  /* Replace a nonvolatile const static variable with its value unless
+     it is an array, in which case we must be sure that taking the
+     address of the array produces consistent results.  */
+  else if (optimize && TREE_CODE (exp) == VAR_DECL && code != ARRAY_TYPE)
     {
       exp = decl_constant_value (exp);
       type = TREE_TYPE (exp);