summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch49
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;