[PATCH] D137583: [lldb] Fix simple template names and template params with scope qualifiers

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 10 05:07:09 PST 2022


aaron.ballman added a comment.

In D137583#3917735 <https://reviews.llvm.org/D137583#3917735>, @dblaikie wrote:

> In D137583#3917706 <https://reviews.llvm.org/D137583#3917706>, @aaron.ballman wrote:
>
>>> ...we expect template params to be fully qualified when comparing them for simple template names
>>
>> So lldb is not inspecting the AST, they're doing reflection (of a sort) on the pretty printed names? Or am I misunderstanding something?
>
> Not reflection as such - but building names for the user, but partly from the AST - basically LLDB wants to be able to produce the same name that CGDebugInfo produces - so, maybe it should produce it the same way as CGDebugInfo, which isn't to use the pretty printer from scratch.

Ah thank you for the clarification, that makes more sense to me.

> @aeubanks would this work for lldb's use case? https://github.com/llvm/llvm-project/blob/main/clang/lib/CodeGen/CGDebugInfo.cpp#L5229 it'd be identical to the original debug info generation, and looks like it doesn't require a printing policy change/feature. Sorry I didn't think of that earlier. I guess since `Qualified` would be `false` for lldb's use case, you could go down into the implementation and just call the unqualified side directly: `NamedDecl::printName(OS, Policy);` should print it unqualified for this name, but respect the qualified printing policy flag for any nested names, parameters, etc.

I agree that it seems pretty sensible for the debugger to use the same mechanisms as debug info in terms of what names to display for users.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D137583



More information about the cfe-commits mailing list