[qfcc] Clean up some cruft from recent __VA_OPT__ changes

Using a special token id for __VA_OPT__ means the macro is no longer
needed (need to improve checks for misuse of __VA_OPT__, though).
This commit is contained in:
Bill Currie 2023-11-18 19:56:19 +09:00
parent fc03e7eb7a
commit 5c0b2aa891
2 changed files with 1 additions and 10 deletions

View file

@ -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) {

View file

@ -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");