[cfe-dev] Determining macros used in a function or SourceRange (using clang plugin)

Eric Bayer via cfe-dev cfe-dev at lists.llvm.org
Wed Sep 28 11:29:04 PDT 2016

Oh, one follow on question... If I persist a MacroDefinition* or 
MacroInfo* in a datastructure, will this still exist when processing the 
AST tree or will these have been deleted out from under me?  Just trying 
to understand how much info I need to copy in a few cases.


On 9/27/2016 6:59 PM, Eric Bayer wrote:
> Hi Alex,
> Thanks again for all your help.  Actually I did manage to make this 
> eventually work with a huge amount of Lexer/Token magic. Unfortunately 
> I could not actually follow it past 1 level, so it looks like an 
> unworkable solution for what I have in mind. I had thought the macro 
> definitons were expanded from other macros. After digging though the 
> SLocEntries, this is clearly not the case and they are expanded at 
> their final uses.  This means I'm going back to the PPCallbacks and 
> digging in there.  I think I can get the whole tree without annotating 
> every macro I meet. Apparently MacroExpands gets called repeatedly at 
> the point the macro gets used.
> Kind Regards,
>    -Eric

More information about the cfe-dev mailing list