diff options
author | Keith Kanios <keith@kanios.net> | 2009-07-11 14:48:09 -0500 |
---|---|---|
committer | Keith Kanios <keith@kanios.net> | 2009-07-11 14:48:09 -0500 |
commit | 093513d0bc2658d5387150ca15d21461de3adbc0 (patch) | |
tree | 2fe7221c91e8717688146a6738bb64913c0f60ca | |
parent | 0af5ee2732450b6c48f8e9ec18c3feba29d4fe6a (diff) | |
download | nasm-093513d0bc2658d5387150ca15d21461de3adbc0.tar.gz |
preproc: refine appropriate handling of PP_RMACRO/PP_RIMACRO/PP_MACRO/PP_IMACRO
-rw-r--r-- | preproc.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -2042,7 +2042,6 @@ static int do_directive(Token * tline) int64_t count; size_t len; int severity; - bool is_recursive = false; origline = tline; @@ -2592,18 +2591,18 @@ static int do_directive(Token * tline) case PP_RMACRO: case PP_RIMACRO: - is_recursive = true; case PP_MACRO: case PP_IMACRO: if (defining) { error(ERR_FATAL, "`%%%smacro': already defining a macro", (i == PP_IMACRO ? "i" : "")); + /* todo: change the above as well... */ return DIRECTIVE_FOUND; } - defining = nasm_malloc(sizeof(MMacro)); - defining->max_depth = (is_recursive ? 65536 : 0); /* remove/change this??? */ - defining->casesense = (i == PP_MACRO); + defining = nasm_malloc(sizeof(MMacro)); + defining->max_depth = (((i == PP_RMACRO) || (i == PP_RIMACRO)) ? 65536 : 0); + defining->casesense = ((i == PP_MACRO) || (i == PP_RMACRO)); if (!parse_mmacro_spec(tline, defining, pp_directives[i])) { nasm_free(defining); defining = NULL; |