[Lldb-commits] [PATCH] D50478: Add support for artificial tail call frames

Vedant Kumar via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Aug 24 10:39:57 PDT 2018

vsk added inline comments.

Comment at: lldb/include/lldb/Symbol/Function.h:331
+  /// \ref resolved.
+  union {
+    const char *mangled_name;
aprantl wrote:
> `llvm::PointerUnion` ?
It's not possible to use PointerUnion here because `const char *` has 1-byte alignment. There's no space in the pointer to store a discriminator bit.

Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3757
+  // For now, assume that all entries are nested directly under the subprogram
+  // (this is the kind of DWARF LLVM produces) and parse them eagerly.
+  std::vector<CallEdge> call_edges;
sgraenitz wrote:
> Does any of the tests fail in case LLVM DWARFs change? Or is it very unlikely?
Yes, the tests in this patch would fail if TAG_call_site entries were nested within the nearest enclosing lexical block (as specified by DWARF 5). We would have a heads-up about such a breaking change. That said, it's unlikely to catch us by surprise, because we control the LLVM DWARF producer (see https://reviews.llvm.org/D49887).


More information about the lldb-commits mailing list