re PR middle-end/66325 (ICE in gcc.c-torture/execute/930408-1.c, verify_type fails...
authorJan Hubicka <hubicka@ucw.cz>
Sun, 14 Jun 2015 07:05:03 +0000 (09:05 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 14 Jun 2015 07:05:03 +0000 (07:05 +0000)
PR middle-end/66325
* c-decl.c (start_enum): Set TYPE_PACKED consistently among type
variants.

From-SVN: r224463

gcc/c/ChangeLog
gcc/c/c-decl.c

index af83cd24fce299c14ed38ca4d132e8480116eecd..ae9f862fe3056bc7870525885fccce303d25882b 100644 (file)
@@ -1,3 +1,9 @@
+2015-06-11  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR middle-end/66325
+       * c-decl.c (start_enum): Set TYPE_PACKED consistently among type
+       variants.
+
 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
 
        * c-decl.c (pop_scope): Register the main translation unit
index 3fde22fba94831bccbb9d36b17c811a052c4786a..b124feb37d67170aa7fe371afa4944b9bd25b4e6 100644 (file)
@@ -7947,7 +7947,8 @@ start_enum (location_t loc, struct c_enum_contents *the_enum, tree name)
   the_enum->enum_overflow = 0;
 
   if (flag_short_enums)
-    TYPE_PACKED (enumtype) = 1;
+    for (tree v = TYPE_MAIN_VARIANT (enumtype); v; v = TYPE_NEXT_VARIANT (v))
+      TYPE_PACKED (v) = 1;
 
   /* FIXME: This will issue a warning for a use of a type defined
      within sizeof in a statement expr.  This is not terribly serious