From: anonymous c. <nas...@us...> - 2013-07-17 04:36:38
|
The original goal of the "interminable macro recursion" message in expand_smacro() was to cope with a true case of smacro recursion. Here is a minimal (though meaningless) test case: %define hang h %+ a %+ n %+ g hang The message also triggers for tlines with lots of tokens because its code resides inside the tline loop. Given sufficient memory and time, a lengthy tline tends to complete just fine -- case in point: a test case with a little over a million tokens completes instantaneously on a modern system with a multi-GHz processor. By contrast, true recursion will eat all memory and then fail in e.g. nasm_malloc() -- and with lots of memory it is going to take quite some time to get there. This is what the message was meant for. Also, it was meant to be a suppressible warning rather than an error, so that code wouldn't be precluded from intentional recursion. |