diff options
Diffstat (limited to 'dev-lang/tcc/files/tcc-0.9.23-anonunion.patch')
-rw-r--r-- | dev-lang/tcc/files/tcc-0.9.23-anonunion.patch | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/dev-lang/tcc/files/tcc-0.9.23-anonunion.patch b/dev-lang/tcc/files/tcc-0.9.23-anonunion.patch deleted file mode 100644 index 8af0825bd23e..000000000000 --- a/dev-lang/tcc/files/tcc-0.9.23-anonunion.patch +++ /dev/null @@ -1,49 +0,0 @@ -http://lists.gnu.org/archive/html/tinycc-devel/2005-07/msg00008.html - ---- tcc.c -+++ tcc.c -@@ -6442,7 +6487,7 @@ - { - int a, v, size, align, maxalign, c, offset; - int bit_size, bit_pos, bsize, bt, lbit_pos; -- Sym *s, *ss, **ps; -+ Sym *s, *ss, *ass, **ps; - AttributeDef ad; - CType type1, btype; - -@@ -6513,7 +6558,9 @@ - v = 0; - type1 = btype; - if (tok != ':') { -- type_decl(&type1, &ad, &v, TYPE_DIRECT); -+ type_decl(&type1, &ad, &v, TYPE_DIRECT | TYPE_ABSTRACT); -+ if (v == 0 && (type1.t & VT_BTYPE) != VT_STRUCT) -+ expect("identifier"); - if ((type1.t & VT_BTYPE) == VT_FUNC || - (type1.t & (VT_TYPEDEF | VT_STATIC | VT_EXTERN | VT_INLINE))) - error("invalid type for '%s'", -@@ -6576,7 +6623,7 @@ - } else { - bit_pos = 0; - } -- if (v) { -+ if (v != 0 || (type1.t & VT_BTYPE) == VT_STRUCT) { - /* add new memory data only if starting - bit field */ - if (lbit_pos == 0) { -@@ -6602,6 +6649,15 @@ - } - printf("\n"); - #endif -+ } -+ if (v == 0 && (type1.t & VT_BTYPE) == VT_STRUCT) { -+ ass = type1.ref; -+ while ((ass = ass->next) != NULL) { -+ ss = sym_push(ass->v, &ass->type, 0, offset + ass->c); -+ *ps = ss; -+ ps = &ss->next; -+ } -+ } else if (v) { - ss = sym_push(v | SYM_FIELD, &type1, 0, offset); - *ps = ss; - ps = &ss->next; |