[cfe-dev] Preprocessor lexer sometimes goes too far?
dgregor at apple.com
Tue Nov 9 16:36:54 CST 2010
On Nov 9, 2010, at 10:36 AM, Vladimir Kirillov wrote:
> Hello, cfe-dev!
> Here's an issue:
> I have a program with subclasses of ASTConsumer and PPCallbacks, which
> are passed to ParseAST().
> See the expansions.c attachment which I pass as input to it.
> Sometimes I see that the macro expansion callbacks (and, respectively,
> macro expansion actions) are happening way before the respective code
> gets processed. (See gdb output below)
> How can this behaviour be explained? Is this some kind of optimization
> side effect or something?
The lexer is going to run ahead of the parser while it's expanding macros or when the parser is performing lookahead.
> My program relies on the expansion order so this is critical to me to
> gather relations between expanded macros and the declarations they
Why not go back to look at the source locations of the resulting declarations, then check whether they came from a macro instantiation?
More information about the cfe-dev