mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 06:39:12 +00:00
[codeview] Fix handling of S_HEAPALLOCSITE
The type index is from the TPI stream, not the IPI stream. Fix the dumper, fix type index discovery, and add a test in LLD. Also improve the log message we emit when we fail to rewrite type indices in LLD. That's how I found this bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316461 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
70d05d486e
commit
91db8008a9
@ -413,8 +413,7 @@ static bool discoverTypeIndices(ArrayRef<uint8_t> Content, SymbolKind Kind,
|
||||
Refs.push_back({TiRefKind::IndexRef, 8, 1}); // ID of inlinee
|
||||
break;
|
||||
case SymbolKind::S_HEAPALLOCSITE:
|
||||
// FIXME: It's not clear if this is a type or item reference.
|
||||
Refs.push_back({TiRefKind::IndexRef, 8, 1}); // signature
|
||||
Refs.push_back({TiRefKind::TypeRef, 8, 1}); // UDT allocated
|
||||
break;
|
||||
|
||||
// Defranges don't have types, just registers and code offsets.
|
||||
|
@ -615,7 +615,7 @@ Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR, FrameProcSym &FP) {
|
||||
Error MinimalSymbolDumper::visitKnownRecord(CVSymbol &CVR,
|
||||
HeapAllocationSiteSym &HAS) {
|
||||
AutoIndent Indent(P, 7);
|
||||
P.formatLine("type = {0}, addr = {1} call size = {2}", idIndex(HAS.Type),
|
||||
P.formatLine("type = {0}, addr = {1} call size = {2}", typeIndex(HAS.Type),
|
||||
formatSegmentOffset(HAS.Segment, HAS.CodeOffset),
|
||||
HAS.CallInstructionSize);
|
||||
return Error::success();
|
||||
|
Loading…
Reference in New Issue
Block a user