[all-commits] [llvm/llvm-project] eafe0c: DWARFDebugLoclists: stricter base address handling

Pavel Labath via All-commits all-commits at lists.llvm.org
Thu Nov 14 01:02:49 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: eafe0cf5fa8255257bac3923237e62382610e6d6
      https://github.com/llvm/llvm-project/commit/eafe0cf5fa8255257bac3923237e62382610e6d6
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2019-11-14 (Thu, 14 Nov 2019)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
    M llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/test/DebugInfo/X86/dwarfdump-debug-loclists.test
    M llvm/test/tools/llvm-dwarfdump/X86/debug_loclists.s
    M llvm/test/tools/llvm-dwarfdump/X86/debug_loclists_multiple.s

  Log Message:
  -----------
  DWARFDebugLoclists: stricter base address handling

Summary:
This removes the use of zero as a base address in section-based dumping.
Although this will often be true for (unlinked) object files with a
single compile unit, it is not true in general. This means that
section-based dumping will not be able to resolve entries referencing
the base address (DW_LLE_offset_pair) -- it wasn't able to do that
correctly before either, but now it will be more explicit about it. One
exception to that is if the location list contains an explicit
DW_LLE_base_address entry -- in this case the dumper will pick it up,
and resolve subsequent entries normally.

The patch also removes the fallback to zero in the "inline" dumping in
case the compile unit does not contain a base address.

Reviewers: dblaikie, probinson, JDevlieghere, aprantl, SouraVX

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70115




More information about the All-commits mailing list