From bec84fa00a4c4b2fab34e49fb8308e372c734709 Mon Sep 17 00:00:00 2001 From: Joe Soroka Date: Thu, 24 Feb 2011 09:24:02 -0800 Subject: tccasm: support alternate .type syntaxes --- tccasm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'tccasm.c') diff --git a/tccasm.c b/tccasm.c index 8c62987..263b0f5 100644 --- a/tccasm.c +++ b/tccasm.c @@ -601,8 +601,7 @@ static void asm_parse_directive(TCCState *s1) case TOK_ASM_type: { Sym *sym; - char newtype[64]; - newtype[0] = 0; + const char *newtype; next(); sym = label_find(tok); @@ -613,13 +612,15 @@ static void asm_parse_directive(TCCState *s1) next(); skip(','); - skip('@'); - if (tok == TOK_STR) - pstrcat(newtype, sizeof(newtype), tokc.cstr->data); - else - pstrcat(newtype, sizeof(newtype), get_tok_str(tok, NULL)); + if (tok == TOK_STR) { + newtype = tokc.cstr->data; + } else { + if (tok == '@' || tok == '%') + skip(tok); + newtype = get_tok_str(tok, NULL); + } - if (!strcmp(newtype, "function")) { + if (!strcmp(newtype, "function") || !strcmp(newtype, "STT_FUNC")) { sym->type.t = VT_FUNC; } else if (s1->warn_unsupported) -- cgit v1.3.1