[cfe-dev] Get macro name or its length

Andrey Tarasevich tarasevich.andrey at googlemail.com
Thu Jun 30 11:17:55 PDT 2011


Hello

assume following code;

#define MACRO ((void*)0)

int main()
{
    int n;
    int* p;
    if(p == MACRO)
	n = 1;
}

During the AST generation I can get the expression p == MACRO and its
SourceLocation. The Begin and End of the SourceLocation will be
following 80 and 2147487899. Then I can get InstantiationInfo about
macro and begging and end of this info will be the same 85 and 85
according to the SourceManager class.
So my question is the following - is there any way to retrieve the
name of the MACRO? Or its length? How can I get position of the last
symbol of "MACRO" word in source file? I need this in order to rewrite
the condition, since simple Rewriter.RewriteStmt(Stmt*, Stmt*) will
not work in this case.

with best regards,
Andrey Tarasevich



More information about the cfe-dev mailing list