diff -urN tinycc.old/libtcc.c tinycc/libtcc.c --- tinycc.old/libtcc.c 2015-04-10 23:43:55.000000000 +0300 +++ tinycc/libtcc.c 2015-04-11 06:08:03.000000000 +0300 @@ -1479,6 +1479,7 @@ { offsetof(TCCState, leading_underscore), 0, "leading-underscore" }, { offsetof(TCCState, ms_extensions), 0, "ms-extensions" }, { offsetof(TCCState, old_struct_init_code), 0, "old-struct-init-code" }, + { offsetof(TCCState, dollars_in_identifiers), 0, "dollars-in-identifiers" }, }; /* set/reset a flag */ diff -urN tinycc.old/tcc-doc.texi tinycc/tcc-doc.texi --- tinycc.old/tcc-doc.texi 2015-04-10 06:30:35.000000000 +0300 +++ tinycc/tcc-doc.texi 2015-04-11 06:10:22.000000000 +0300 @@ -241,6 +241,9 @@ assume a nested named structure declaration without identifier behave like an unnamed one. address@hidden -fdollars-in-identifiers +Allow a dollars in identifiers + @end table Warning options: diff -urN tinycc.old/tcc.h tinycc/tcc.h --- tinycc.old/tcc.h 2015-04-10 23:43:55.000000000 +0300 +++ tinycc/tcc.h 2015-04-11 06:09:01.000000000 +0300 @@ -605,6 +605,7 @@ int ms_extensions; /* allow nested named struct w/o identifier behave like unnamed */ int old_struct_init_code; /* use old algorithm to init array in struct when there is no '{' used. Liuux 2.4.26 can't find initrd when compiled with a new algorithm */ + int dollars_in_identifiers; /* allows '$' char in indentifiers */ /* warning switches */ int warn_write_strings; diff -urN tinycc.old/tccpp.c tinycc/tccpp.c --- tinycc.old/tccpp.c 2015-04-10 16:53:03.000000000 +0300 +++ tinycc/tccpp.c 2015-04-11 06:06:42.000000000 +0300 @@ -2286,7 +2286,10 @@ } } break; - + + /* treat $ as allowed char in indentifier */ + case '$': if (!tcc_state->dollars_in_identifiers) 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': @@ -2589,8 +2592,8 @@ case ':': case '?': case '~': - case '$': /* only used in assembler */ - case '@': /* dito */ + case '@': /* only used in assembler */ + parse_simple: tok = c; p++; break; @@ -3174,7 +3177,8 @@ /* init isid table */ for(i=CH_EOF;i<256;i++) - isidnum_table[i-CH_EOF] = isid(i) || isnum(i); + isidnum_table[i-CH_EOF] = (isid(i) || isnum(i) || + (tcc_state->dollars_in_identifiers ? i == '$' : 0)); /* add all tokens */ if (table_ident) {