[llvm-dwarfdump] - Teach verifier to report broken DWARF expressions.
authorGeorge Rimar <grimar@accesssoftek.com>
Fri, 27 Oct 2017 10:42:04 +0000 (10:42 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Fri, 27 Oct 2017 10:42:04 +0000 (10:42 +0000)
commit144e4c5a32007bb2fe7b18930dcc4d806ef4f92f
tree8b87dd498dd0b4639bcfd9fc4c3dd7f2f74c57ee
parent7f92294e9b6a00784d75587800f409af23072983
[llvm-dwarfdump] - Teach verifier to report broken DWARF expressions.

Patch improves next things:

* Fixes assert/crash in getOpDesc when giving it a invalid expression op code.
* DWARFExpression::print() called DWARFExpression::Operation::getEndOffset() which
  returned and used uninitialized field EndOffset. Patch fixes that.
* Teaches verifier to verify DW_AT_location and error out on broken expressions.

Differential revision: https://reviews.llvm.org/D39294

llvm-svn: 316756
llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
llvm/test/tools/llvm-dwarfdump/X86/verify_broken_exprloc.s [new file with mode: 0644]