re PR c++/14804 ([unit-at-a-time] initializing const data with reinterpret_cast-ed...
authorMark Mitchell <mark@codesourcery.com>
Sun, 4 Apr 2004 22:51:02 +0000 (22:51 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sun, 4 Apr 2004 22:51:02 +0000 (22:51 +0000)
PR c++/14804
* varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
RECORD_TYPEs.

From-SVN: r80404

gcc/ChangeLog
gcc/varasm.c

index 4bdea47f5d9d47a3f5c5b45b6842501428e52839..582add276f361c19bc841aa97e13dbfa44249bef 100644 (file)
@@ -1,3 +1,9 @@
+2004-04-04  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/14804
+       * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
+       RECORD_TYPEs.
+
 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
 
        * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
index a518dd765ae48baa313755a8cd9e7d457fc08129..707ad4bbe65e1ba519558067e7c701e595909225 100644 (file)
@@ -3332,8 +3332,10 @@ initializer_constant_valid_p (tree value, tree endtype)
                                                 endtype);
        }
 
-      /* Allow conversions to union types if the value inside is okay.  */
-      if (TREE_CODE (TREE_TYPE (value)) == UNION_TYPE)
+      /* Allow conversions to struct or union types if the value
+        inside is okay.  */
+      if (TREE_CODE (TREE_TYPE (value)) == RECORD_TYPE
+         || TREE_CODE (TREE_TYPE (value)) == UNION_TYPE)
        return initializer_constant_valid_p (TREE_OPERAND (value, 0),
                                             endtype);
       break;