diff options
| -rw-r--r-- | src/c.c | 1 | ||||
| -rw-r--r-- | src/c_type.c | 2 | ||||
| -rw-r--r-- | src/c_type.h | 10 |
3 files changed, 4 insertions, 9 deletions
@@ -2198,7 +2198,6 @@ buildenum(CComp *cm, internstr name, const Span *span, int id) ty = completetype(name, id, &td); else ty = mktagtype(name, &td); - ty.backing = td.backing; return ty; } diff --git a/src/c_type.c b/src/c_type.c index bf24653..5853eb8 100644 --- a/src/c_type.c +++ b/src/c_type.c @@ -214,7 +214,7 @@ completetype(internstr name, int id, TypeData *td) assert(tagtypetags[id] == name && "bad redefn"); else tagtypetags[id] = name; - return mktype(td->t, .dat = interntd(td), .backing = td->t == TYENUM ? td->backing : 0); + return mktype(td->t, .dat = interntd(td)); } Type diff --git a/src/c_type.h b/src/c_type.h index ecca949..6f9a265 100644 --- a/src/c_type.h +++ b/src/c_type.h @@ -30,10 +30,7 @@ enum typeflagmask { typedef union Type { struct { uchar t; /* type tag */ - union { - uchar flag; - uchar backing; /* type tag for enum backing int */ - }; + uchar flag; union { struct { uchar child; /* prim type tag */ @@ -141,11 +138,10 @@ Type cvtarith(Type a, Type b); static inline Type typechild(Type t) { - if (t.t == TYENUM) return mktype(t.backing ? t.backing : typedata[t.dat].backing); + if (t.t == TYENUM) return mktype(typedata[t.dat].backing); if (t.flag & TFCHLDPRIM) return mktype(t.child); if (t.flag & TFCHLDISDAT) { Type chld = mktype(typedata[t.dat].t, .dat = t.dat); - if (chld.t == TYENUM) chld.backing = typedata[t.dat].backing; return chld; } return typedata[t.dat].child; @@ -153,7 +149,7 @@ typechild(Type t) static inline enum typetag scalartypet(Type t) { - if (t.t == TYENUM) return t.backing ? t.backing : typedata[t.dat].backing; + if (t.t == TYENUM) return typedata[t.dat].backing; if (isptrcvt(t)) return TYPTR; assert(!iscomplex(t)); return t.t; |