Hi, Unfortunately the offending fix of mine causes 'y...' to be treated as a single identifier instead of y followed by TOK_DOTS which is gcc extension to designate 'y' to become __VA_ARGS__ replacement. Nasty!
If going forward with the commit the plan is in tccpp.c around line 1337 (nice line:-)) to check if an identifier is ending with '...' and set is_vaargs instead of current check for TOK_DOTS on next token. That or switching PARSE_FLAG_ASM_FILE off for preprocessor directives in .S files. Will have to write a failing test too. cheers, </wqw> -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Sergey Korshunoff Sent: Tuesday, March 29, 2016 8:55 PM To: [email protected] Subject: Re: [Tinycc-devel] GAS symbols Hi! Patch "Identifiers can start and/or contain '.' in PARSE_FLAG_ASM_FILE" breaks preprocessing on *.S A test program (from a linux-2.4.26) #define SRC(y...) \ 9999: y; \ .section __ex_table, "a"; \ .long 9999b, 6001f ; \ .previous SRC(1: movw (%esi), %bx ) // 029-test.S:7: error: macro 'SRC' used with too many args // commit_bad=aa1ed616eb01efe353e7c5e829fffbed01b428bd // Identifiers can start and/or contain '.' in PARSE_FLAG_ASM_FILE // // commit_good=17395ea5070bb05681f93ce7a8019c8c863a607b This test compules OK if changes commut_good..commit_bad are reverted. _______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel _______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel
