Michael137 added inline comments.

================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp:1528
+DWARFASTParserClang::GetTemplateParametersString(const DWARFDIE &die) {
+  if (llvm::StringRef(die.GetName()).contains("<"))
+    return std::string();
----------------
Michael137 wrote:
> Can this affect `operator<` at all? Haven't thought much about it but that's 
> one construct that comes to mind that can contain `<`
> 
> ```
> $ cat operator.cpp 
> template<typename T>
> struct Foo {
>     int x = 0;
> 
>     template<typename U>
>     friend bool operator<(Foo<U> const& lhs, Foo<U> const& rhs) {
>         return lhs.x < rhs.x;
>     }
> };
> 
> int main() {
>     Foo<int> x;
>     Foo<int> y;
>     return x < y;
> }
> ```
> 
> ```
> 0x000000c8:   DW_TAG_subprogram                                    
>                 DW_AT_low_pc    (0x0000000100003f5c)               
>                 DW_AT_high_pc   (0x0000000100003f8c)               
>                 DW_AT_APPLE_omit_frame_ptr      (true)        
>                 DW_AT_frame_base        (DW_OP_reg31 WSP)          
>                 DW_AT_linkage_name      ("_ZltIiEbRK3FooIT_ES4_")  
>                 DW_AT_name      ("operator<<int>")                 
>                 DW_AT_decl_file ("/Users/michaelbuch/operator.cpp")
>                 DW_AT_decl_line (6)                                
>                 DW_AT_type      (0x0000000000000135 "bool")        
>                 DW_AT_external  (true)                             
> ```
Looks like `-gsimple-template-names` leaves the template params in `DW_AT_name` 
in this case so we're fine? Would be nice to test though


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D134378

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

Reply via email to