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 4bdea47..582add2 100644 (file)
@@ -1,5 +1,11 @@
 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
        documentation.
 
index a518dd7..707ad4b 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;