[cfe-dev] End SourceLocation of macro

aniruddh rao aniruddhasrao at gmail.com
Wed Apr 13 22:35:34 PDT 2011


Hi,

I am doing source analysis using clang and I need to identify certain
function calls. Some of these calls are instantiated through macros.

Eg:

<1> #define MALLOC(x) malloc((x))
<2>
<3>int main() {
<4>     char *p;
<5>
<6>     p = MALLOC(sizeof(char) *
<7>                                  MAX_SIZE);
<8> }

In the above dummy example, I want to get the end location of malloc
invocation. When MALLOC is expanded by the preprocessor, the two line
invocation becomes single line and getEndLoc() on the CallExpr object gives
line number 6. But I want to get the actual end location of the macro
invocation in source file. In the example, it is line 7. Can anyone point me
in the right direction to get this from AST?

Thanks,
Aniruddh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110413/3889e0c9/attachment.html>


More information about the cfe-dev mailing list