llvm-project/llvm/lib/DebugInfo
Alexandre Ganea 120366edc7 [CodeView] Fix cycles in debug info when merging Types with global hashes
When type streams with forward references were merged using GHashes, cycles 
were introduced in the debug info. This was caused by 
GlobalTypeTableBuilder::insertRecordAs() not inserting the record on the second
pass, thus yielding an empty ArrayRef at that record slot. Later on, upon PDB 
emission, TpiStreamBuilder::commit() would skip that empty record, thus 
offseting all indices that came after in the stream. 

This solution comes in two steps: 

1. Fix the hash calculation, by doing a multiple-step resolution, iff there are
forward references in the input stream.
2. Fix merge by resolving with multiple passes, therefore moving records with
forward references at the end of the stream. 

This patch also adds support for llvm-readoj --codeview-ghash.
Finally, fix dumpCodeViewMergedTypes() which previously could reference deleted
memory. 

Fixes PR40221 

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

llvm-svn: 353412
2019-02-07 15:24:18 +00:00
..
CodeView [CodeView] Fix cycles in debug info when merging Types with global hashes 2019-02-07 15:24:18 +00:00
DWARF [DebugInfo]Print correct value for special opcode address increment 2019-02-06 10:31:50 +00:00
MSF Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PDB [CodeView] Fix cycles in debug info when merging Types with global hashes 2019-02-07 15:24:18 +00:00
Symbolize [DebugInfo] Don't use realpath when looking up debug binary locations. 2019-02-01 21:04:16 +00:00
CMakeLists.txt
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00