-fdollar-in-identifiers addon
* disable a -fdollar-in-identifiers option in assembler files
* a test is added
This is a patch addon from Daniel Holden.
This commit is contained in:
18
tccpp.c
18
tccpp.c
@ -2313,9 +2313,11 @@ maybe_newline:
|
||||
}
|
||||
break;
|
||||
|
||||
/* treat $ as allowed char in indentifier */
|
||||
case '$': if (!tcc_state->dollars_in_identifiers) goto parse_simple;
|
||||
|
||||
/* dollar is allowed to start identifiers when not parsing asm */
|
||||
case '$':
|
||||
if (!tcc_state->dollars_in_identifiers
|
||||
|| (parse_flags & PARSE_FLAG_ASM_FILE)) goto parse_simple;
|
||||
|
||||
case 'a': case 'b': case 'c': case 'd':
|
||||
case 'e': case 'f': case 'g': case 'h':
|
||||
case 'i': case 'j': case 'k': case 'l':
|
||||
@ -2338,7 +2340,8 @@ maybe_newline:
|
||||
p++;
|
||||
for(;;) {
|
||||
c = *p;
|
||||
if (!isidnum_table[c-CH_EOF])
|
||||
if (!isidnum_table[c-CH_EOF]
|
||||
&& (tcc_state->dollars_in_identifiers ? (c != '$') : 1))
|
||||
break;
|
||||
h = TOK_HASH_FUNC(h, c);
|
||||
p++;
|
||||
@ -2373,7 +2376,8 @@ maybe_newline:
|
||||
p--;
|
||||
PEEKC(c, p);
|
||||
parse_ident_slow:
|
||||
while (isidnum_table[c-CH_EOF]) {
|
||||
while (isidnum_table[c-CH_EOF]
|
||||
|| (tcc_state->dollars_in_identifiers ? (c == '$') : 0)) {
|
||||
cstr_ccat(&tokcstr, c);
|
||||
PEEKC(c, p);
|
||||
}
|
||||
@ -3202,9 +3206,9 @@ ST_FUNC void preprocess_new(void)
|
||||
const char *p, *r;
|
||||
|
||||
/* init isid table */
|
||||
|
||||
for(i=CH_EOF;i<256;i++)
|
||||
isidnum_table[i-CH_EOF] = (isid(i) || isnum(i) ||
|
||||
(tcc_state->dollars_in_identifiers ? i == '$' : 0));
|
||||
isidnum_table[i-CH_EOF] = isid(i) || isnum(i);
|
||||
|
||||
/* add all tokens */
|
||||
if (table_ident) {
|
||||
|
||||
Reference in New Issue
Block a user