[Lldb-commits] [PATCH] D70100: [DWARF] Handle call sites with indirect call targets

Adrian Prantl via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Nov 11 15:50:34 PST 2019


aprantl added a comment.

Mechanically, this seems reasonable.



================
Comment at: lldb/include/lldb/Symbol/Function.h:334
 
-  DISALLOW_COPY_AND_ASSIGN(CallEdge);
+/// An indirect call site.
+class IndirectCallEdge : public CallEdge {
----------------
You might want to briefly explain what the difference between direct and indirect is here.


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3752
 
-    // Extract DW_AT_call_origin (the call target's DIE).
-    DWARFDIE call_origin = child.GetReferencedDIE(DW_AT_call_origin);
-    if (!call_origin.IsValid()) {
-      LLDB_LOG(log, "CollectCallEdges: Invalid call origin in {0}",
-               function_die.GetPubname());
+    llvm::Optional<DWARFDIE> call_origin = {};
+    llvm::Optional<DWARFExpression> call_target = {};
----------------
the `= {}` is redundant with the default constructor of Optional.


================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3816
+    } else {
+      StreamString call_target_desc;
+      call_target->GetDescription(&call_target_desc, eDescriptionLevelBrief,
----------------
Can we make it so that work is only done when logging is requested?


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

https://reviews.llvm.org/D70100





More information about the lldb-commits mailing list