aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-06-14 09:05:03 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2015-06-14 07:05:03 +0000
commit8cbababc58a439bc8927fe14b9b7f8e065fce00d (patch)
treef3ae8479b1ccbb6cdff07704d8a57a85edbe1d9f /gcc
parent56476ab84e91be6effc72e25f8293ebf8240624a (diff)
downloadgcc-8cbababc58a439bc8927fe14b9b7f8e065fce00d.zip
gcc-8cbababc58a439bc8927fe14b9b7f8e065fce00d.tar.gz
gcc-8cbababc58a439bc8927fe14b9b7f8e065fce00d.tar.bz2
re PR middle-end/66325 (ICE in gcc.c-torture/execute/930408-1.c, verify_type fails with --enable-checking=yes on arm-none-eabi)
PR middle-end/66325 * c-decl.c (start_enum): Set TYPE_PACKED consistently among type variants. From-SVN: r224463
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/ChangeLog6
-rw-r--r--gcc/c/c-decl.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index af83cd2..ae9f862 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -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
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 3fde22f..b124feb 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -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