diff options
| author | Joe Soroka <gits@joesoroka.com> | 2011-02-01 08:43:54 -0800 |
|---|---|---|
| committer | Joe Soroka <gits@joesoroka.com> | 2011-02-01 08:43:54 -0800 |
| commit | c59d3426b8060bcba3945f1388763512412a5d4d (patch) | |
| tree | 96f519dcc38ae775569544bdac98c7ee28a18995 | |
| parent | 4d5105c8f1ff1ac4bae592d6c221e5737614bbad (diff) | |
| download | tinycc-c59d3426b8060bcba3945f1388763512412a5d4d.tar.gz tinycc-c59d3426b8060bcba3945f1388763512412a5d4d.tar.bz2 | |
tccasm: support .weak labels
| -rw-r--r-- | tcc.h | 1 | ||||
| -rw-r--r-- | tccasm.c | 4 |
2 files changed, 5 insertions, 0 deletions
@@ -715,6 +715,7 @@ struct TCCState { #define DEF_ASM(x) DEF(TOK_ASM_ ## x, #x) #define TOK_ASM_int TOK_INT +#define TOK_ASM_weak TOK_WEAK1 #if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64 /* only used for i386 asm opcodes definitions */ @@ -481,6 +481,8 @@ static void asm_parse_directive(TCCState *s1) break; case TOK_ASM_globl: case TOK_ASM_global: + case TOK_ASM_weak: + tok1 = tok; do { Sym *sym; @@ -491,6 +493,8 @@ static void asm_parse_directive(TCCState *s1) sym->type.t = VT_VOID; } sym->type.t &= ~VT_STATIC; + if (tok1 == TOK_ASM_weak) + sym->type.t |= VT_WEAK; next(); } while (tok == ','); break; |
