labath marked 3 inline comments as done.
labath added inline comments.

================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3134
   if ((tag == DW_TAG_variable) || (tag == DW_TAG_constant) ||
       (tag == DW_TAG_formal_parameter && sc.function)) {
     DWARFAttributes attributes;
----------------
aprantl wrote:
> Would be nice to early-exit here, too.
I'll do that in a separate patch.


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3257
+        } else if (const char *str = const_value_form.AsCString()) {
+          uint32_t string_length = strlen(str) + 1;
+          location = DWARFExpression(
----------------
aprantl wrote:
> shafik wrote:
> > aprantl wrote:
> > > If we do this a lot a StringRef DWARFFormValue::AsCStringRef() call would 
> > > make sense...
> > Why `+1`?
> The NUL-terminator?
Yeah, this is supposed to create a memory view of a C string, so it (probably) 
needs to include the nul terminator. But that actually speaks against the 
`AsCStringRef` function, as I wouldn't expect that one to include the null 
terminator.

I say "probably" because I haven't been able to actually find a producer that 
would produce this kind of attribute. The closest I got was gfortran, which 
could emit emit DW_AT_const_value for string variables. However, it used block 
forms for that.

To my great surprise, my synthetic test case in that patch actually worked and 
using a string DW_AT_const_value for char arrays in C seems somewhat 
reasonable, so I kept that code. However, I could be easily convinced to delete 
this.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86615

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

Reply via email to