mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-10-10 00:25:06 -04:00
preproc: refine appropriate handling of PP_RMACRO/PP_RIMACRO/PP_MACRO/PP_IMACRO
This commit is contained in:
@@ -2042,7 +2042,6 @@ static int do_directive(Token * tline)
|
|||||||
int64_t count;
|
int64_t count;
|
||||||
size_t len;
|
size_t len;
|
||||||
int severity;
|
int severity;
|
||||||
bool is_recursive = false;
|
|
||||||
|
|
||||||
origline = tline;
|
origline = tline;
|
||||||
|
|
||||||
@@ -2592,18 +2591,18 @@ static int do_directive(Token * tline)
|
|||||||
|
|
||||||
case PP_RMACRO:
|
case PP_RMACRO:
|
||||||
case PP_RIMACRO:
|
case PP_RIMACRO:
|
||||||
is_recursive = true;
|
|
||||||
case PP_MACRO:
|
case PP_MACRO:
|
||||||
case PP_IMACRO:
|
case PP_IMACRO:
|
||||||
if (defining) {
|
if (defining) {
|
||||||
error(ERR_FATAL,
|
error(ERR_FATAL,
|
||||||
"`%%%smacro': already defining a macro",
|
"`%%%smacro': already defining a macro",
|
||||||
(i == PP_IMACRO ? "i" : ""));
|
(i == PP_IMACRO ? "i" : ""));
|
||||||
|
/* todo: change the above as well... */
|
||||||
return DIRECTIVE_FOUND;
|
return DIRECTIVE_FOUND;
|
||||||
}
|
}
|
||||||
defining = nasm_malloc(sizeof(MMacro));
|
defining = nasm_malloc(sizeof(MMacro));
|
||||||
defining->max_depth = (is_recursive ? 65536 : 0); /* remove/change this??? */
|
defining->max_depth = (((i == PP_RMACRO) || (i == PP_RIMACRO)) ? 65536 : 0);
|
||||||
defining->casesense = (i == PP_MACRO);
|
defining->casesense = ((i == PP_MACRO) || (i == PP_RMACRO));
|
||||||
if (!parse_mmacro_spec(tline, defining, pp_directives[i])) {
|
if (!parse_mmacro_spec(tline, defining, pp_directives[i])) {
|
||||||
nasm_free(defining);
|
nasm_free(defining);
|
||||||
defining = NULL;
|
defining = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user