llvm-project/llvm/lib/DebugInfo/PDB/Native
Alexandre Ganea a7325298e1 [CodeView] Align type records on 4-bytes when emitting PDBs
When emitting PDBs, the TypeStreamMerger class is used to merge .debug$T records from the input .OBJ files into the output .PDB stream.
Records in .OBJs are not required to be aligned on 4-bytes, and "The Netwide Assembler 2.14" generates non-aligned records.

When compiling with -DLLVM_ENABLE_ASSERTIONS=ON, an assert was triggered in MergingTypeTableBuilder when non-ghash merging was used.
With ghash merging there was no assert.
As a result, LLD could potentially generate a non-aligned TPI stream.

We now align records on 4-bytes when record indices are remapped, in TypeStreamMerger::remapIndices().

Differential Revision: https://reviews.llvm.org/D75081
2020-03-13 12:22:19 -04:00
..
DbiModuleDescriptor.cpp [pdbutil] Fixed -Wdeprecated-copy in DbiModuleDescriptor 2019-11-23 23:33:22 +01:00
DbiModuleDescriptorBuilder.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DbiModuleList.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
DbiStream.cpp
DbiStreamBuilder.cpp [PDB] Simplify API for making section map, NFC 2020-01-23 12:15:21 -08:00
EnumTables.cpp Add missing newlines at EOF; NFC 2020-02-12 15:57:25 +00:00
GSIStreamBuilder.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
GlobalsStream.cpp
Hash.cpp Unify the two CRC implementations 2019-10-09 09:06:30 +00:00
HashTable.cpp
InfoStream.cpp
InfoStreamBuilder.cpp
InjectedSourceStream.cpp Teach `llvm-pdbutil pretty -native` about `-injected-sources` 2019-07-16 18:04:26 +00:00
ModuleDebugStream.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
NamedStreamMap.cpp PDB HashTable: Move TraitsT from class parameter to the methods that need it 2019-07-12 23:30:55 +00:00
NativeCompilandSymbol.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
NativeEnumGlobals.cpp
NativeEnumInjectedSources.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
NativeEnumModules.cpp
NativeEnumTypes.cpp
NativeExeSymbol.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
NativeRawSymbol.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
NativeSession.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
NativeSymbolEnumerator.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
NativeTypeArray.cpp Add missing newlines at EOF; NFC 2020-02-12 15:57:25 +00:00
NativeTypeBuiltin.cpp
NativeTypeEnum.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
NativeTypeFunctionSig.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
NativeTypePointer.cpp
NativeTypeTypedef.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
NativeTypeUDT.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
NativeTypeVTShape.cpp
PDBFile.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
PDBFileBuilder.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
PDBStringTable.cpp
PDBStringTableBuilder.cpp Expand comment about how StringsToBuckets was computed, and add more entries 2019-07-15 18:56:56 +00:00
PublicsStream.cpp
RawError.cpp
SymbolCache.cpp
SymbolStream.cpp
TpiHashing.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
TpiStream.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
TpiStreamBuilder.cpp [CodeView] Align type records on 4-bytes when emitting PDBs 2020-03-13 12:22:19 -04:00