[cfe-dev] Clang, Macros and Locations

Sam Parker S.Parker3 at lboro.ac.uk
Thu Aug 15 10:10:27 PDT 2013


Hi George,

I was having a similar problem with source locations and macros, but I 
was doing source-to-source transformations. I don't know if it will help 
you, but I first expanded all the macros using a RewriteMacrosAction, 
and that gave me valid SourceLocations to rewrite to.

Regards,
Sam

On 13/08/13 19:12, George Kastrinis wrote:
> Hi all,
>
> We are working on a Clang plugin, and we wan to have a way to uniquely 
> identify every declaration in a C++ program. We tried using the following.
> (presumed location start, presumed location end, spelling location 
> start, spelling location end, declaration kind)
>
> But we still have a problem.
>
> For example, in /usr/include/x86_64-linux-gnu/bits/cmathcalls.h, line 
> 101 a macro called _MATHCALL is used. If you look at 
> /usr/include/complex.h, line 65 where the macro is defined, you will 
> see that the macro uses other macros inside and create two functions 
> (e.g. cpowf and __cpowf)
>
> I tried using spelling locations, presumed locations, 
> SourceManager::getExpansionLoc on the spelling location. All give the 
> same locations for cpowf and __cpowf.
>
> Is there any way to achieve what I try to do here?
>
> Thanks for your time
>
> -- 
>
> George Kastrinis
> http://gkastrinis.info/
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130815/6bee8a71/attachment.html>


More information about the cfe-dev mailing list