aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-11-29 20:50:04 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-11-29 19:50:04 +0000
commita4850ce9b58d12158248dc7fbe1015646757c813 (patch)
tree5038fae98694c34510484420846183c60625e9c7 /gcc/c
parent75c8aac3cee7f1a7eda2c58f9b59ce4925509862 (diff)
downloadgcc-a4850ce9b58d12158248dc7fbe1015646757c813.zip
gcc-a4850ce9b58d12158248dc7fbe1015646757c813.tar.gz
gcc-a4850ce9b58d12158248dc7fbe1015646757c813.tar.bz2
re PR c/67106 (ICE: verify_type failed: type variant differs by TYPE_PACKED. with -g -fpack-struct)
PR c/67106 * gcc.c-torture/compile/pr67106.c: New testcase. * c-decl.c: Set TYPE_PACKED in variants. From-SVN: r231049
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog5
-rw-r--r--gcc/c/c-decl.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index ffa365c..0655aef 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,8 @@
+2015-11-29 Jan Hubicka <hubicka@ucw.cz>
+
+ PR c/67106
+ * c-decl.c: Set TYPE_PACKED in variants.
+
2015-11-27 Martin Liska <mliska@suse.cz>
PR c++/68312
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 7b9ab8a..31de0a5 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -7213,7 +7213,8 @@ start_struct (location_t loc, enum tree_code code, tree name,
}
C_TYPE_BEING_DEFINED (ref) = 1;
- TYPE_PACKED (ref) = flag_pack_struct;
+ for (tree v = TYPE_MAIN_VARIANT (ref); v; v = TYPE_NEXT_VARIANT (v))
+ TYPE_PACKED (v) = flag_pack_struct;
*enclosing_struct_parse_info = struct_parse_info;
struct_parse_info = XNEW (struct c_struct_parse_info);