Fascinating. Thanks for the report, forthevin. When I have some free time I will download Squeeze and try to reproduce this myself (The code you pasted alone does not give enough information). I will need to narrow a test case to figure out why this is happening. It is clear now that it is a problem with the preprocessor, which explains why the preprocessed engine files those two sent me did not exhibit the error.
From the location information you sent me, it seems that the map of macro names becomes corrupt, or the macro itself is read improperly. The position in the line, given by pos - lcpp->lpos, is 68, which is past the end of the line. You may have noticed that. That should not technically be a problem, as that value is only used for the purpose of error reporting, but...
Anyway, like I said, on this end, I can't seem to agitate it. It would help if I knew the value of [snip]macro[/snip]. For that matter, it might also help if [snip]lcpp->macros.find(macro)==lcpp->macros.end()? zero : one[/snip] were on a separate line, as I can only assume that it's that lookup which is fucking up.
Anyway, I'll get on that soon (can't until after midterms and homework are over this week). Thanks again for the information, forthevin.
|