[cfe-dev] Fwd: I am trying to using clang to do autocomplete, How to go to declaration of a macro?

Alex L via cfe-dev cfe-dev at lists.llvm.org
Wed Nov 23 03:39:51 PST 2016


I'm not sure that I understood your question correctly, but if you are
working on auto completion then you can use
Preprocessor::getMacroDefinition to lookup the definition of a some macro.
Specifically, as long as you're working with Sema, you can use code similar
to the one below:

  for (const auto &M : PP.macros()) {
    auto MD = PP.getMacroDefinition(M->first);
    if (MD) {
      // you have access to macro definition here and can lookup it's
source location
      // by using MD.getMacroInfo()->getDefinitionLoc()
    }
  }

Alex

On 23 November 2016 at 11:00, 罗勇刚(Yonggang Luo) via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

>
> ---------- Forwarded message ----------
> From: 罗勇刚(Yonggang Luo) <luoyonggang at gmail.com>
> Date: Wed, Nov 23, 2016 at 6:58 PM
> Subject: I am trying to using clang to do autocomplete, How to go to
> declaration of a macro?
> To: Clang Dev <cfe-dev at cs.uiuc.edu>
>
>
> For exmaple
>
> #define FOO 0
>
> int foo() {
>   int x = FOO; /* How to go to decleration of FOO here? *./
> }
>
> --
>          此致
>> 罗勇刚
> Yours
>     sincerely,
> Yonggang Luo
>
>
>
> --
>          此致
>> 罗勇刚
> Yours
>     sincerely,
> Yonggang Luo
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20161123/44ed8e98/attachment.html>


More information about the cfe-dev mailing list