diff options
| author | Quentin Carbonneaux <[email protected]> | 2022-11-22 21:44:44 +0100 |
|---|---|---|
| committer | Quentin Carbonneaux <[email protected]> | 2022-11-22 21:56:21 +0100 |
| commit | cbee74bdb4f85d6d8d4f192f0018ea023418e216 (patch) | |
| tree | 4ea3eb41265e44336d81fecf719193c67540f3d3 /parse.c | |
| parent | 04e26409011389f7b5759114905195a4fb0b0286 (diff) | |
use a new struct for symbols
Symbols are a useful abstraction
that occurs in both Con and Alias.
In this patch they get their own
struct. This new struct packages
a symbol name and a type; the type
tells us where the symbol name
must be interpreted (currently, in
gobal memory or in thread-local
storage).
The refactor fixed a bug in
addcon(), proving the value of
packaging symbol names with their
type.
Diffstat (limited to 'parse.c')
| -rw-r--r-- | parse.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -420,12 +420,12 @@ parseref() c.flt = 2; break; case Tthread: - c.reloc = RelThr; + c.sym.type = SThr; expect(Tglo); /* fall through */ case Tglo: c.type = CAddr; - c.label = intern(tokval.str); + c.sym.id = intern(tokval.str); break; } return newcon(&c, curf); @@ -1174,7 +1174,7 @@ printcon(Con *c, FILE *f) case CUndef: break; case CAddr: - fprintf(f, "$%s", str(c->label)); + fprintf(f, "$%s", str(c->sym.id)); if (c->bits.i) fprintf(f, "%+"PRIi64, c->bits.i); break; |
