aprantl added a comment.

Could we add a test for this that either uses full-LTO in an API test or some 
assembler code and and lldb-test test?



================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp:55
 
-  if (debug_aranges->GetNumRanges() == num_debug_aranges) {
+  if (debug_aranges->GetNumRanges() == num_debug_aranges && cu_offset == 0) {
     // We got nothing from the debug info, maybe we have a line tables only
----------------
labath wrote:
> This isn't a valid requirement for general code. It essentially means that 
> this code will only run for the first compile unit in an elf file (or, if 
> type units are in use, it may not run at all).
Maybe it's better to filter out skeleton units specifically instead? (If that's 
what the condition is for)


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp:644
+       if (&comp_unit == extra.get())
+         return &m_compile_unit_infos[i];
   }
----------------
is std::find() shorter here?


================
Comment at: 
lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp:1276
 
-        return m_compile_unit_infos[cu_idx].compile_unit_sp;
+        for (auto &cu : m_compile_unit_infos[cu_idx].extra_compile_units_sps)
+          if (cu->GetID() == dwarf_cu.GetID())
----------------
is std::find() shorter / more readable?


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h:180
     lldb::CompUnitSP compile_unit_sp;
+    // The rest of the compile units that an object file contains.
+    llvm::SmallVector<lldb::CompUnitSP, 1> extra_compile_units_sps;
----------------
nit: convert these to `///`


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h:181
+    // The rest of the compile units that an object file contains.
+    llvm::SmallVector<lldb::CompUnitSP, 1> extra_compile_units_sps;
     uint32_t first_symbol_index = UINT32_MAX;
----------------
Why not only store a llvm::SmallVector<lldb::CompUnitSP, 1> and use the first 
element to store compile_unit_sp?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D136114

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

Reply via email to