[PATCH] D100440: [Debug-Info] DW_AT_export_symbols shouldn't be generated before version-5 of DWARF.

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 19 11:00:08 PDT 2021


dblaikie added a comment.

In D100440#2698675 <https://reviews.llvm.org/D100440#2698675>, @teemperor wrote:

> In D100440#2688023 <https://reviews.llvm.org/D100440#2688023>, @dblaikie wrote:
>
>> @aprantl @probinson @jhenderson - any of you folks want this in older versions? I think this is for C++ inline namespaces - so if you used a modern C++ standard library (that uses inline namespaces like "std::__1::basic_string", etc) users would have to use these extra qualifiers when naming types, functions, etc. Not unworkable, but a bit inconvenient.
>
> That's right. LLDB is using this attribute even when parsing DWARF v4 to model inline namespaces (such as libc++'s `__1` namespace). If we don't have the attribute then we end up with a bunch of `__1` in the type names we show to the user (+ some other minor changes in behaviour). It shouldn't break any LLDB scripts though as the type names used in scripts always specify inline namespaces.
>
> If we decide to remove this for all consumers we can just special-case the namespace parsing in LLDB to infer that `std::__1` is an inline namespace. It's the only namespace that is important for users (and the test suite).

Thanks for the context. (from other threads, sounds like we might be moving more towards DBX folks wiring up -gstrict-dwarf to implement all this stuff and enabling -gstrict-dwarf when targeting DBX by default - leaving all these future-spec-feature-in-prior-spec-mode on by default for everyone else)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100440/new/

https://reviews.llvm.org/D100440



More information about the llvm-commits mailing list