[llvm-symbolizer] Fix parsing DW_AT_ranges in Fission skeleton compile unit DIEs.
authorAlexey Samsonov <vonosmas@gmail.com>
Thu, 12 Jun 2014 18:52:35 +0000 (18:52 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Thu, 12 Jun 2014 18:52:35 +0000 (18:52 +0000)
commit4dfa6812d7e70e419dd2f302b4108f205145aa4b
tree5f8bd25dfd3a07ce9b58ee7a2f3f09842b459358
parent7c3436d9411f96d39b7de17d997289893c330d44
[llvm-symbolizer] Fix parsing DW_AT_ranges in Fission skeleton compile unit DIEs.

Turns out that DW_AT_ranges_base attribute sets the offset for
DW_AT_ranges values specified in the .dwo file, but not for DW_AT_ranges specified
in the skeleton compile unit DIE in the main executable. This is extremely confusing,
and would hopefully be fixed in DWARF-5 when it's finalized. For now this
behavior makes sense, as otherwise Fission would break DWARF consumers who
doesn't know anything about DW_AT_ranges_base.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210809 91177308-0d34-0410-b5e6-96231b3b80d8
lib/DebugInfo/DWARFUnit.cpp
test/DebugInfo/Inputs/fission-ranges.cc [new file with mode: 0644]
test/DebugInfo/Inputs/fission-ranges.elf-x86_64 [new file with mode: 0755]
test/DebugInfo/llvm-symbolizer.test