From c59d3426b8060bcba3945f1388763512412a5d4d Mon Sep 17 00:00:00 2001 From: Joe Soroka Date: Tue, 1 Feb 2011 08:43:54 -0800 Subject: [PATCH] tccasm: support .weak labels --- tcc.h | 1 + tccasm.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/tcc.h b/tcc.h index b72f4e4e..7d426073 100644 --- a/tcc.h +++ b/tcc.h @@ -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 */ diff --git a/tccasm.c b/tccasm.c index 1064ea6e..8c629877 100644 --- a/tccasm.c +++ b/tccasm.c @@ -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; -- 2.11.4.GIT