Michael137 added a comment.

In D136761#3885529 <https://reviews.llvm.org/D136761#3885529>, @labath wrote:

> Wow, another name parser I knew nothing about. :/
>
> I'm probably being naive, but I don't suppose there's an easy a way to 
> reuse/repurpose the parser in the C++ language plugin for this (?) This is 
> the first time I see this code, so it's hard to construct counter-examples, 
> but I'd be surprised if this is correct.

Hehe I agree this function could use some clean-up
I tried to avoid going down that rabbit hole at the moment :)
I wouldn't be shocked if there were edge-cases that don't work.

The algorithm iiuc works as follows:

1. Find the opening function parenthesis (`open_paren`) and print out the 
string up to that point (effectively the function name)
2. For each variable in scope print out: `<var_name>=<var_representation>`
3. Find closing parenthesis
4. Print everything from closing parenthesis onward (I imagine this is to 
preserve function qualifiers)

Where the reverse scan might go wrong is with `noexecept(...)` specifications. 
Will check...

An alternative is to actually implement the 
`Language::GetFunctionDisplayName(Language::FunctionNameRepresentation::eNameWithNoArgs)`
 API for `CPlusPlusLanguage`. Currently it's a no-op (which is why we end up in 
this hand-rolled parser)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D136761

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to