Fix the verification of DIEs with DW_AT_ranges.
authorGreg Clayton <gclayton@fb.com>
Wed, 13 May 2020 23:51:44 +0000 (16:51 -0700)
committerGreg Clayton <gclayton@fb.com>
Mon, 22 Jun 2020 20:13:48 +0000 (13:13 -0700)
commitccf5a44917fcb3e57d18d7f73bef06607ec7a20d
tree696c85722cfdce29e12c86c3f1c5136b9eb54f66
parentbd7defeb94090bb2af7104b70bc33bc64d754d1f
Fix the verification of DIEs with DW_AT_ranges.

Summary: Previous code would try to verify DW_AT_ranges and if any ranges would overlap, it would stop attributing any ranges after this to the DIE which caused incorrect errors to be reported that a DIE's address ranges were not contained in the parent DIE's ranges. Added a fix and a test.

Reviewers: aprantl, labath, probinson, JDevlieghere, jhenderson

Subscribers: hiraditya, MaskRay, cmtice, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D79962
llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h
llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
llvm/test/tools/llvm-dwarfdump/X86/verify_overlapping_cu_ranges.yaml [new file with mode: 0644]