[cfe-users] No macros in DI metadata

David Blaikie via cfe-users cfe-users at lists.llvm.org
Wed Jul 14 10:35:42 PDT 2021


On Wed, Jul 14, 2021 at 10:16 AM Bella V <bellavistaghome at gmail.com> wrote:
>
> Thanks a lot! It works.
>
> Also there is no IR code generated for macros. Is there a way to relate llvm::value's that refer to macros.

Not that I know of, no. If you're interested in doing source analysis
like this - you might want to use a Clang Tool rather than debug info:
https://clang.llvm.org/docs/LibTooling.html

>
> Many Thanks.
>
> On Tue, Jul 13, 2021 at 7:06 PM David Blaikie <dblaikie at gmail.com> wrote:
>>
>> You could check where the macro is defined, I guess?
>> If it's in a DIMacroFile i guess it's not a compiler builtin. It might
>> still be from a system header, etc, if that matters to you - so then
>> you'd have to filter by the DIMacroFile's 'file' attribute.
>>
>> On Tue, Jul 13, 2021 at 7:00 PM Bella V <bellavistaghome at gmail.com> wrote:
>> >
>> > Thanks David for the helpful information. Is there a way to filter the predefined macros such as __clang__, __GNUC__, etc.
>> >
>> > I could not get the macros defined in my C code with the below code:
>> > DIMacroNodeArray Macros = DICompUnit->getMacros();
>> > for (auto *MN : Macros) {
>> >     if (auto *M = dyn_cast<DIMacro>(MN)) {
>> >         outs()<< M->getName();
>> >     }
>> > }
>> >
>> >
>> > On Tue, Jul 13, 2021 at 4:13 PM David Blaikie <dblaikie at gmail.com> wrote:
>> >>
>> >> Add -fdebug-macro
>> >>
>> >> On Tue, Jul 13, 2021 at 4:05 PM Bella V via cfe-users
>> >> <cfe-users at lists.llvm.org> wrote:
>> >> >
>> >> > Hello All,
>> >> >
>> >> > I'm trying to build a list of macros in a compilation unit using CU->getMacros().
>> >> > I do not see the macros field in DICompileUnit output.
>> >> > https://godbolt.org/z/b8cM1Yf7v
>> >> >
>> >> > Please let me know what I'm missing.
>> >> >
>> >> > Many Thanks.
>> >> >
>> >> > _______________________________________________
>> >> > cfe-users mailing list
>> >> > cfe-users at lists.llvm.org
>> >> > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users


More information about the cfe-users mailing list