diff --git a/tools/qfcc/source/cpp.c b/tools/qfcc/source/cpp.c index ec39e18ec..4437cc564 100644 --- a/tools/qfcc/source/cpp.c +++ b/tools/qfcc/source/cpp.c @@ -411,12 +411,6 @@ void cpp_define (const char *arg) make_magic_macro (cpp_macros, "__FILE__", rua_macro_file); make_magic_macro (cpp_macros, "__LINE__", rua_macro_line); make_magic_macro (cpp_macros, "__VA_ARGS__", rua_macro_va_args); - - auto m = make_magic_macro (cpp_macros, "__VA_OPT__", rua_macro_va_opt); - m->params = new_symtab (0, stab_param); - m->num_params = -1; - m->args = calloc (1, sizeof (rua_macro_t *)); - m->args[0] = malloc (sizeof (rua_macro_t)); } size_t len = strlen (arg); if (len > 0x10000) { diff --git a/tools/qfcc/source/qc-lex.l b/tools/qfcc/source/qc-lex.l index 2c87a7681..4fd989b20 100644 --- a/tools/qfcc/source/qc-lex.l +++ b/tools/qfcc/source/qc-lex.l @@ -1610,7 +1610,7 @@ rescan: extra->macro = m; goto rescan; } else if (token == -rua_va_opt) { - if (!macro->args[~macro->num_params] + if (!macro->params || !macro->args[~macro->num_params] || !macro->args[~macro->num_params]->tokens) { goto rescan; } @@ -2440,9 +2440,6 @@ rua_macro_va_args (rua_macro_t *macro, void *scanner) auto extra = qc_yyget_extra (scanner); auto cur = extra->macro; - if (cur && strcmp (cur->name, "__VA_OPT__") == 0) { - cur = cur->next; - } if (!cur || !cur->params || cur->num_params >= 0) { warning (0, "__VA_ARGS__ can appear only in the expansion of a " "variadic macro");