Revert "Re-Re-land: [CodeView] Add full repro to LF_BUILDINFO record"
This reverts commit a3036b3863
.
As requested in: https://reviews.llvm.org/D80833#2221866
Bug report: https://crbug.com/1117026
This commit is contained in:
parent
a9ee0589a8
commit
98e01f56b0
|
@ -31,7 +31,6 @@ set(LLVM_TOOLCHAIN_TOOLS
|
|||
llvm-dwarfdump
|
||||
llvm-nm
|
||||
llvm-objdump
|
||||
llvm-pdbutil
|
||||
llvm-ranlib
|
||||
llvm-readobj
|
||||
llvm-size
|
||||
|
|
|
@ -137,7 +137,6 @@ set(LLVM_TOOLCHAIN_TOOLS
|
|||
llvm-lib
|
||||
llvm-nm
|
||||
llvm-objdump
|
||||
llvm-pdbutil
|
||||
llvm-profdata
|
||||
llvm-ranlib
|
||||
llvm-readobj
|
||||
|
|
|
@ -242,7 +242,6 @@ set(LLVM_TOOLCHAIN_TOOLS
|
|||
llvm-nm
|
||||
llvm-objcopy
|
||||
llvm-objdump
|
||||
llvm-pdbutil
|
||||
llvm-profdata
|
||||
llvm-rc
|
||||
llvm-ranlib
|
||||
|
|
|
@ -117,7 +117,6 @@ if( NOT CLANG_BUILT_STANDALONE )
|
|||
llvm-nm
|
||||
llvm-objcopy
|
||||
llvm-objdump
|
||||
llvm-pdbutil
|
||||
llvm-profdata
|
||||
llvm-readelf
|
||||
llvm-readobj
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
// REQUIRES: x86-registered-target
|
||||
// RUN: %clang_cl --target=i686-windows-msvc /c /Z7 /Fo%t.obj -- %s
|
||||
// RUN: llvm-pdbutil dump --types %t.obj | FileCheck %s
|
||||
// RUN: %clang_cl --target=i686-windows-msvc /c /Z7 /Fo%t.obj -fdebug-compilation-dir=. -- %s
|
||||
// RUN: llvm-pdbutil dump --types %t.obj | FileCheck %s --check-prefix RELATIVE
|
||||
|
||||
int main() { return 42; }
|
||||
|
||||
// CHECK: Types (.debug$T)
|
||||
// CHECK: ============================================================
|
||||
// CHECK: 0x[[PWD:.+]] | LF_STRING_ID [size = {{.+}}] ID: <no type>, String: [[PWDVAL:.+]]
|
||||
// CHECK: 0x[[FILEPATH:.+]] | LF_STRING_ID [size = {{.+}}] ID: <no type>, String: [[FILEPATHVAL:.+[\\/]debug-info-codeview-buildinfo.c]]
|
||||
// CHECK: 0x[[ZIPDB:.+]] | LF_STRING_ID [size = {{.+}}] ID: <no type>, String:
|
||||
// CHECK: 0x[[TOOL:.+]] | LF_STRING_ID [size = {{.+}}] ID: <no type>, String: [[TOOLVAL:.+[\\/]clang.*]]
|
||||
// CHECK: 0x[[CMDLINE:.+]] | LF_STRING_ID [size = {{.+}}] ID: <no type>, String: "-cc1
|
||||
// CHECK: 0x{{.+}} | LF_BUILDINFO [size = {{.+}}]
|
||||
// CHECK: 0x[[PWD]]: `[[PWDVAL]]`
|
||||
// CHECK: 0x[[TOOL]]: `[[TOOLVAL]]`
|
||||
// CHECK: 0x[[FILEPATH]]: `[[FILEPATHVAL]]`
|
||||
// CHECK: 0x[[ZIPDB]]: ``
|
||||
// CHECK: 0x[[CMDLINE]]: `"-cc1
|
||||
|
||||
// RELATIVE: Types (.debug$T)
|
||||
// RELATIVE: ============================================================
|
||||
// RELATIVE: 0x{{.+}} | LF_BUILDINFO [size = {{.+}}]
|
||||
// RELATIVE: 0x{{.+}}: `.`
|
|
@ -250,72 +250,6 @@ static void addTypeInfo(pdb::TpiStreamBuilder &tpiBuilder,
|
|||
});
|
||||
}
|
||||
|
||||
// LF_BUILDINFO records might contain relative paths, and we want to make them
|
||||
// absolute. We do this remapping only after the type records were merged,
|
||||
// because the full types graph isn't known during merging. In addition, we plan
|
||||
// to multi-thread the type merging, and the change below needs to be done
|
||||
// atomically, single-threaded.
|
||||
|
||||
// A complication could arise when a LF_STRING_ID record already exists with the
|
||||
// same content as the new absolutized path. In that case, we simply redirect
|
||||
// LF_BUILDINFO's CurrentDirectory index to reference the existing LF_STRING_ID
|
||||
// record.
|
||||
|
||||
static void remapBuildInfo(TypeCollection &idTable) {
|
||||
SimpleTypeSerializer s;
|
||||
idTable.ForEachRecord([&](TypeIndex ti, const CVType &type) {
|
||||
if (type.kind() != LF_BUILDINFO)
|
||||
return;
|
||||
BuildInfoRecord bi;
|
||||
cantFail(TypeDeserializer::deserializeAs(const_cast<CVType &>(type), bi));
|
||||
|
||||
auto makeAbsoluteRecord =
|
||||
[&](BuildInfoRecord::BuildInfoArg recordType) -> Optional<TypeIndex> {
|
||||
TypeIndex recordTi = bi.getArgs()[recordType];
|
||||
if (recordTi.isNoneType())
|
||||
return None;
|
||||
CVType recordRef = idTable.getType(recordTi);
|
||||
|
||||
StringIdRecord record;
|
||||
cantFail(TypeDeserializer::deserializeAs(recordRef, record));
|
||||
|
||||
SmallString<128> abolutizedPath(record.getString());
|
||||
pdbMakeAbsolute(abolutizedPath);
|
||||
|
||||
if (abolutizedPath == record.getString())
|
||||
return None; // The path is already absolute.
|
||||
|
||||
record.String = abolutizedPath;
|
||||
ArrayRef<uint8_t> recordData = s.serialize(record);
|
||||
|
||||
// Replace the previous LF_STRING_ID record
|
||||
if (!idTable.replaceType(recordTi, CVType(recordData),
|
||||
/*Stabilize=*/true))
|
||||
return recordTi;
|
||||
return None;
|
||||
};
|
||||
|
||||
Optional<TypeIndex> curDirTI =
|
||||
makeAbsoluteRecord(BuildInfoRecord::CurrentDirectory);
|
||||
Optional<TypeIndex> buildToolTI =
|
||||
makeAbsoluteRecord(BuildInfoRecord::BuildTool);
|
||||
|
||||
if (curDirTI || buildToolTI) {
|
||||
// This new record is already there. We don't want duplicates, so
|
||||
// re-serialize the BuildInfoRecord instead.
|
||||
if (curDirTI)
|
||||
bi.ArgIndices[BuildInfoRecord::CurrentDirectory] = *curDirTI;
|
||||
if (buildToolTI)
|
||||
bi.ArgIndices[BuildInfoRecord::BuildTool] = *buildToolTI;
|
||||
|
||||
ArrayRef<uint8_t> biData = s.serialize(bi);
|
||||
bool r = idTable.replaceType(ti, CVType(biData), /*Stabilize=*/true);
|
||||
assert(r && "Didn't expect two build records pointing to the same OBJ!");
|
||||
(void)r;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static bool remapTypeIndex(TypeIndex &ti, ArrayRef<TypeIndex> typeIndexMap) {
|
||||
if (ti.isSimple())
|
||||
return true;
|
||||
|
@ -1054,9 +988,6 @@ void PDBLinker::addObjectsToPDB() {
|
|||
builder.getStringTableBuilder().setStrings(pdbStrTab);
|
||||
t1.stop();
|
||||
|
||||
// Remap the contents of the LF_BUILDINFO record.
|
||||
remapBuildInfo(tMerger.getIDTable());
|
||||
|
||||
// Construct TPI and IPI stream contents.
|
||||
ScopedTimer t2(tpiStreamLayoutTimer);
|
||||
addTypeInfo(builder.getTpiBuilder(), tMerger.getTypeTable());
|
||||
|
|
|
@ -19,7 +19,6 @@ sections:
|
|||
Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
|
||||
Alignment: 4
|
||||
SectionData: ''
|
||||
SizeOfRawData: 0
|
||||
- Name: .xdata
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
|
@ -39,6 +38,7 @@ sections:
|
|||
- Name: '.debug$S'
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
SectionData: 04000000F10000002F0000002D003C1100000000D0000700000000000000581B000000000000636C616E672076657273696F6E20372E302E30200000F1000000300000002A0047110000000000000000000000001B000000000000000000000002100000000000000000006D61696E0002004F11F20000003000000000000000000000001B00000000000000030000002400000000000000020000000C000000030000001100000004000000F400000030000000010000001001EA6429BCE282CCF3F0E3CD93B216EB410000110000001001061EB73ABB642532857A4F1D9CBAC3230000F30000001C000000002E5C7064625F6C696E65735F312E63002E5C666F6F2E6800000000
|
||||
Subsections:
|
||||
- !Symbols
|
||||
Records:
|
||||
|
@ -46,15 +46,15 @@ sections:
|
|||
Compile3Sym:
|
||||
Flags: [ ]
|
||||
Machine: X64
|
||||
FrontendMajor: 11
|
||||
FrontendMajor: 7
|
||||
FrontendMinor: 0
|
||||
FrontendBuild: 0
|
||||
FrontendQFE: 0
|
||||
BackendMajor: 11000
|
||||
BackendMajor: 7000
|
||||
BackendMinor: 0
|
||||
BackendBuild: 0
|
||||
BackendQFE: 0
|
||||
Version: 'clang version 11.0.0 (https://github.com/llvm/llvm-project.git 77dad72eae974338ddc13d74783c012ccbb8c5ac)'
|
||||
Version: 'clang version 7.0.0 '
|
||||
- !Symbols
|
||||
Records:
|
||||
- Kind: S_GPROC32_ID
|
||||
|
@ -65,17 +65,8 @@ sections:
|
|||
FunctionType: 4098
|
||||
Flags: [ ]
|
||||
DisplayName: main
|
||||
- Kind: S_FRAMEPROC
|
||||
FrameProcSym:
|
||||
TotalFrameBytes: 40
|
||||
PaddingFrameBytes: 0
|
||||
OffsetToPadding: 0
|
||||
BytesOfCalleeSavedRegisters: 0
|
||||
OffsetOfExceptionHandler: 0
|
||||
SectionIdOfExceptionHandler: 0
|
||||
Flags: [ ]
|
||||
- Kind: S_PROC_ID_END
|
||||
ScopeEndSym: {}
|
||||
ScopeEndSym:
|
||||
- !Lines
|
||||
CodeSize: 27
|
||||
Flags: [ ]
|
||||
|
@ -96,15 +87,15 @@ sections:
|
|||
LineStart: 4
|
||||
IsStatement: false
|
||||
EndDelta: 0
|
||||
Columns: []
|
||||
Columns:
|
||||
- !FileChecksums
|
||||
Checksums:
|
||||
- FileName: '.\pdb_lines_1.c'
|
||||
Kind: MD5
|
||||
Checksum: 9A64DD4298487888B1D99F825D520C5E
|
||||
Checksum: EA6429BCE282CCF3F0E3CD93B216EB41
|
||||
- FileName: '.\foo.h'
|
||||
Kind: MD5
|
||||
Checksum: A9D05E6DC184DE20A57797E24F8B0E97
|
||||
Checksum: 061EB73ABB642532857A4F1D9CBAC323
|
||||
- !StringTable
|
||||
Strings:
|
||||
- '.\pdb_lines_1.c'
|
||||
|
@ -112,27 +103,23 @@ sections:
|
|||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- !Symbols
|
||||
Records:
|
||||
- Kind: S_BUILDINFO
|
||||
BuildInfoSym:
|
||||
BuildId: 4105
|
||||
Relocations:
|
||||
- VirtualAddress: 184
|
||||
- VirtualAddress: 100
|
||||
SymbolName: main
|
||||
Type: IMAGE_REL_AMD64_SECREL
|
||||
- VirtualAddress: 188
|
||||
- VirtualAddress: 104
|
||||
SymbolName: main
|
||||
Type: IMAGE_REL_AMD64_SECTION
|
||||
- VirtualAddress: 240
|
||||
- VirtualAddress: 124
|
||||
SymbolName: main
|
||||
Type: IMAGE_REL_AMD64_SECREL
|
||||
- VirtualAddress: 244
|
||||
- VirtualAddress: 128
|
||||
SymbolName: main
|
||||
Type: IMAGE_REL_AMD64_SECTION
|
||||
- Name: '.debug$T'
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
SectionData: 0400000006000112000000000E0008107400000000000000001000001200011600000000011000006D61696E00F3F2F10E0008100300000000000000001000000E0001160000000003100000666F6F00
|
||||
Types:
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
|
@ -161,25 +148,6 @@ sections:
|
|||
ParentScope: 0
|
||||
FunctionType: 4099
|
||||
Name: foo
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: .
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: pdb_lines_1.c
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'buildninjaRel\bin\clang-cl.exe'
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: '"-cc1" "-triple" "x86_64-pc-windows-msvc19.26.28806" "-emit-obj" "-mrelax-all" "-mincremental-linker-compatible" "-disable-free" "-main-file-name" "pdb_lines_1.c" "-mrelocation-model" "pic" "-pic-level" "2" "-mthread-model" "posix" "-mframe-pointer=none" "-relaxed-aliasing" "-fmath-errno" "-fno-rounding-math" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-mllvm" "-x86-asm-syntax=intel" "-D_MT" "-flto-visibility-public-std" "--dependent-lib=libcmt" "--dependent-lib=oldnames" "-stack-protector" "2" "-fms-volatile" "-fdiagnostics-format" "msvc" "-gcodeview" "-debug-info-kind=limited" "-resource-dir" "D:\\llvm-project\\buildninjaRel\\lib\\clang\\11.0.0" "-internal-isystem" "D:\\llvm-project\\buildninjaRel\\lib\\clang\\11.0.0\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.26.28801\\ATLMFC\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.26.28801\\include" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\ucrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\shared" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\winrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\cppwinrt" "-fdebug-compilation-dir" "." "-ferror-limit" "19" "-fmessage-length=146" "-fno-use-cxa-atexit" "-fms-extensions" "-fms-compatibility" "-fms-compatibility-version=19.26.28806" "-fdelayed-template-parsing" "-fcolor-diagnostics" "-faddrsig" "-x" "c"'
|
||||
- Kind: LF_BUILDINFO
|
||||
BuildInfo:
|
||||
ArgIndices: [ 4101, 4103, 4102, 0, 4104 ]
|
||||
- Name: .pdata
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
|
@ -192,12 +160,8 @@ sections:
|
|||
SymbolName: main
|
||||
Type: IMAGE_REL_AMD64_ADDR32NB
|
||||
- VirtualAddress: 8
|
||||
SymbolTableIndex: 6
|
||||
SymbolName: .xdata
|
||||
Type: IMAGE_REL_AMD64_ADDR32NB
|
||||
- Name: .llvm_addrsig
|
||||
Characteristics: [ IMAGE_SCN_LNK_REMOVE ]
|
||||
Alignment: 1
|
||||
SectionData: 0A1D
|
||||
- Name: .xdata
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
|
@ -205,6 +169,7 @@ sections:
|
|||
- Name: '.debug$S'
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_LNK_COMDAT, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
SectionData: 04000000F10000002F000000290047110000000000000000000000000F00000000000000000000000410000000000000000000666F6F0002004F1100F20000003000000000000000000000000F000000180000000300000024000000000000000200000004000000030000000900000004000000
|
||||
Subsections:
|
||||
- !Symbols
|
||||
Records:
|
||||
|
@ -216,17 +181,8 @@ sections:
|
|||
FunctionType: 4100
|
||||
Flags: [ ]
|
||||
DisplayName: foo
|
||||
- Kind: S_FRAMEPROC
|
||||
FrameProcSym:
|
||||
TotalFrameBytes: 40
|
||||
PaddingFrameBytes: 0
|
||||
OffsetToPadding: 0
|
||||
BytesOfCalleeSavedRegisters: 0
|
||||
OffsetOfExceptionHandler: 0
|
||||
SectionIdOfExceptionHandler: 0
|
||||
Flags: [ ]
|
||||
- Kind: S_PROC_ID_END
|
||||
ScopeEndSym: {}
|
||||
ScopeEndSym:
|
||||
- !Lines
|
||||
CodeSize: 15
|
||||
Flags: [ ]
|
||||
|
@ -247,7 +203,7 @@ sections:
|
|||
LineStart: 4
|
||||
IsStatement: false
|
||||
EndDelta: 0
|
||||
Columns: []
|
||||
Columns:
|
||||
Relocations:
|
||||
- VirtualAddress: 44
|
||||
SymbolName: foo
|
||||
|
@ -255,10 +211,10 @@ sections:
|
|||
- VirtualAddress: 48
|
||||
SymbolName: foo
|
||||
Type: IMAGE_REL_AMD64_SECTION
|
||||
- VirtualAddress: 100
|
||||
- VirtualAddress: 68
|
||||
SymbolName: foo
|
||||
Type: IMAGE_REL_AMD64_SECREL
|
||||
- VirtualAddress: 104
|
||||
- VirtualAddress: 72
|
||||
SymbolName: foo
|
||||
Type: IMAGE_REL_AMD64_SECTION
|
||||
- Name: .pdata
|
||||
|
@ -273,7 +229,7 @@ sections:
|
|||
SymbolName: foo
|
||||
Type: IMAGE_REL_AMD64_ADDR32NB
|
||||
- VirtualAddress: 8
|
||||
SymbolTableIndex: 11
|
||||
SymbolName: .xdata
|
||||
Type: IMAGE_REL_AMD64_ADDR32NB
|
||||
symbols:
|
||||
- Name: .text
|
||||
|
@ -345,7 +301,7 @@ symbols:
|
|||
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
||||
- Name: .xdata
|
||||
Value: 0
|
||||
SectionNumber: 11
|
||||
SectionNumber: 10
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
|
@ -375,22 +331,22 @@ symbols:
|
|||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 396
|
||||
Length: 264
|
||||
NumberOfRelocations: 4
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 3390249978
|
||||
CheckSum: 2204933783
|
||||
Number: 7
|
||||
- Name: '.debug$S'
|
||||
Value: 0
|
||||
SectionNumber: 12
|
||||
SectionNumber: 11
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 148
|
||||
Length: 116
|
||||
NumberOfRelocations: 4
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 1236081121
|
||||
CheckSum: 2691661839
|
||||
Number: 5
|
||||
Selection: IMAGE_COMDAT_SELECT_ASSOCIATIVE
|
||||
- Name: '.debug$T'
|
||||
|
@ -400,10 +356,10 @@ symbols:
|
|||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 2028
|
||||
Length: 80
|
||||
NumberOfRelocations: 0
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 2043733667
|
||||
CheckSum: 3541780432
|
||||
Number: 8
|
||||
- Name: .pdata
|
||||
Value: 0
|
||||
|
@ -419,7 +375,7 @@ symbols:
|
|||
Number: 9
|
||||
- Name: .pdata
|
||||
Value: 0
|
||||
SectionNumber: 13
|
||||
SectionNumber: 12
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
|
@ -430,24 +386,6 @@ symbols:
|
|||
CheckSum: 3642757804
|
||||
Number: 5
|
||||
Selection: IMAGE_COMDAT_SELECT_ASSOCIATIVE
|
||||
- Name: .llvm_addrsig
|
||||
Value: 0
|
||||
SectionNumber: 10
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 2
|
||||
NumberOfRelocations: 0
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 2582217811
|
||||
Number: 10
|
||||
- Name: '@feat.00'
|
||||
Value: 0
|
||||
SectionNumber: -1
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
- Name: main
|
||||
Value: 0
|
||||
SectionNumber: 1
|
||||
|
@ -460,11 +398,4 @@ symbols:
|
|||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
||||
- Name: .file
|
||||
Value: 0
|
||||
SectionNumber: -2
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_FILE
|
||||
File: pdb_lines_1.c
|
||||
...
|
||||
|
|
|
@ -15,7 +15,6 @@ sections:
|
|||
Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
|
||||
Alignment: 4
|
||||
SectionData: ''
|
||||
SizeOfRawData: 0
|
||||
- Name: .drectve
|
||||
Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
|
||||
Alignment: 1
|
||||
|
@ -23,6 +22,7 @@ sections:
|
|||
- Name: '.debug$S'
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
SectionData: 04000000F10000002F0000002D003C1100000000D0000700000000000000581B000000000000636C616E672076657273696F6E20372E302E30200000F10000002F0000002900471100000000000000000000000001000000000000000000000002100000000000000000006261720002004F1100F2000000200000000000000000000000010000000000000001000000140000000000000002000000F400000018000000010000001001DF91CB3A2B8D917486574BB50CAC4CC70000F300000014000000002E5C7064625F6C696E65735F322E6300000000
|
||||
Subsections:
|
||||
- !Symbols
|
||||
Records:
|
||||
|
@ -30,15 +30,15 @@ sections:
|
|||
Compile3Sym:
|
||||
Flags: [ ]
|
||||
Machine: X64
|
||||
FrontendMajor: 11
|
||||
FrontendMajor: 7
|
||||
FrontendMinor: 0
|
||||
FrontendBuild: 0
|
||||
FrontendQFE: 0
|
||||
BackendMajor: 11000
|
||||
BackendMajor: 7000
|
||||
BackendMinor: 0
|
||||
BackendBuild: 0
|
||||
BackendQFE: 0
|
||||
Version: 'clang version 11.0.0 (https://github.com/llvm/llvm-project.git 77dad72eae974338ddc13d74783c012ccbb8c5ac)'
|
||||
Version: 'clang version 7.0.0 '
|
||||
- !Symbols
|
||||
Records:
|
||||
- Kind: S_GPROC32_ID
|
||||
|
@ -49,17 +49,8 @@ sections:
|
|||
FunctionType: 4098
|
||||
Flags: [ ]
|
||||
DisplayName: bar
|
||||
- Kind: S_FRAMEPROC
|
||||
FrameProcSym:
|
||||
TotalFrameBytes: 0
|
||||
PaddingFrameBytes: 0
|
||||
OffsetToPadding: 0
|
||||
BytesOfCalleeSavedRegisters: 0
|
||||
OffsetOfExceptionHandler: 0
|
||||
SectionIdOfExceptionHandler: 0
|
||||
Flags: [ ]
|
||||
- Kind: S_PROC_ID_END
|
||||
ScopeEndSym: {}
|
||||
ScopeEndSym:
|
||||
- !Lines
|
||||
CodeSize: 1
|
||||
Flags: [ ]
|
||||
|
@ -72,39 +63,35 @@ sections:
|
|||
LineStart: 2
|
||||
IsStatement: false
|
||||
EndDelta: 0
|
||||
Columns: []
|
||||
Columns:
|
||||
- !FileChecksums
|
||||
Checksums:
|
||||
- FileName: '.\pdb_lines_2.c'
|
||||
Kind: MD5
|
||||
Checksum: 4CC58B73BFD5AB52F87CFB3C604BB288
|
||||
Checksum: DF91CB3A2B8D917486574BB50CAC4CC7
|
||||
- !StringTable
|
||||
Strings:
|
||||
- '.\pdb_lines_2.c'
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- !Symbols
|
||||
Records:
|
||||
- Kind: S_BUILDINFO
|
||||
BuildInfoSym:
|
||||
BuildId: 4103
|
||||
Relocations:
|
||||
- VirtualAddress: 184
|
||||
- VirtualAddress: 100
|
||||
SymbolName: bar
|
||||
Type: IMAGE_REL_AMD64_SECREL
|
||||
- VirtualAddress: 188
|
||||
- VirtualAddress: 104
|
||||
SymbolName: bar
|
||||
Type: IMAGE_REL_AMD64_SECTION
|
||||
- VirtualAddress: 240
|
||||
- VirtualAddress: 124
|
||||
SymbolName: bar
|
||||
Type: IMAGE_REL_AMD64_SECREL
|
||||
- VirtualAddress: 244
|
||||
- VirtualAddress: 128
|
||||
SymbolName: bar
|
||||
Type: IMAGE_REL_AMD64_SECTION
|
||||
- Name: '.debug$T'
|
||||
Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
|
||||
Alignment: 4
|
||||
SectionData: 0400000006000112000000000E0008100300000000000000001000000E000116000000000110000062617200
|
||||
Types:
|
||||
- Kind: LF_ARGLIST
|
||||
ArgList:
|
||||
|
@ -121,29 +108,6 @@ sections:
|
|||
ParentScope: 0
|
||||
FunctionType: 4097
|
||||
Name: bar
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: .
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: pdb_lines_2.c
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: 'buildninjaRel\bin\clang-cl.exe'
|
||||
- Kind: LF_STRING_ID
|
||||
StringId:
|
||||
Id: 0
|
||||
String: '"-cc1" "-triple" "x86_64-pc-windows-msvc19.26.28806" "-emit-obj" "-mrelax-all" "-mincremental-linker-compatible" "-disable-free" "-main-file-name" "pdb_lines_2.c" "-mrelocation-model" "pic" "-pic-level" "2" "-mthread-model" "posix" "-mframe-pointer=none" "-relaxed-aliasing" "-fmath-errno" "-fno-rounding-math" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-mllvm" "-x86-asm-syntax=intel" "-D_MT" "-flto-visibility-public-std" "--dependent-lib=libcmt" "--dependent-lib=oldnames" "-stack-protector" "2" "-fms-volatile" "-fdiagnostics-format" "msvc" "-gcodeview" "-debug-info-kind=limited" "-resource-dir" "D:\\llvm-project\\buildninjaRel\\lib\\clang\\11.0.0" "-internal-isystem" "D:\\llvm-project\\buildninjaRel\\lib\\clang\\11.0.0\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.26.28801\\ATLMFC\\include" "-internal-isystem" "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.26.28801\\include" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.8\\include\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\ucrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\shared" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\um" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\winrt" "-internal-isystem" "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.18362.0\\cppwinrt" "-fdebug-compilation-dir" "." "-ferror-limit" "19" "-fmessage-length=146" "-fno-use-cxa-atexit" "-fms-extensions" "-fms-compatibility" "-fms-compatibility-version=19.26.28806" "-fdelayed-template-parsing" "-fcolor-diagnostics" "-faddrsig" "-x" "c"'
|
||||
- Kind: LF_BUILDINFO
|
||||
BuildInfo:
|
||||
ArgIndices: [ 4099, 4101, 4100, 0, 4102 ]
|
||||
- Name: .llvm_addrsig
|
||||
Characteristics: [ IMAGE_SCN_LNK_REMOVE ]
|
||||
Alignment: 1
|
||||
SectionData: ''
|
||||
symbols:
|
||||
- Name: .text
|
||||
Value: 0
|
||||
|
@ -200,10 +164,10 @@ symbols:
|
|||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 348
|
||||
Length: 216
|
||||
NumberOfRelocations: 4
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 2408981505
|
||||
CheckSum: 2383431754
|
||||
Number: 5
|
||||
- Name: '.debug$T'
|
||||
Value: 0
|
||||
|
@ -212,40 +176,15 @@ symbols:
|
|||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 1992
|
||||
Length: 44
|
||||
NumberOfRelocations: 0
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 1158086003
|
||||
CheckSum: 179171995
|
||||
Number: 6
|
||||
- Name: .llvm_addrsig
|
||||
Value: 0
|
||||
SectionNumber: 7
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
SectionDefinition:
|
||||
Length: 0
|
||||
NumberOfRelocations: 0
|
||||
NumberOfLinenumbers: 0
|
||||
CheckSum: 0
|
||||
Number: 7
|
||||
- Name: '@feat.00'
|
||||
Value: 0
|
||||
SectionNumber: -1
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_STATIC
|
||||
- Name: bar
|
||||
Value: 0
|
||||
SectionNumber: 1
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_FUNCTION
|
||||
StorageClass: IMAGE_SYM_CLASS_EXTERNAL
|
||||
- Name: .file
|
||||
Value: 0
|
||||
SectionNumber: -2
|
||||
SimpleType: IMAGE_SYM_TYPE_NULL
|
||||
ComplexType: IMAGE_SYM_DTYPE_NULL
|
||||
StorageClass: IMAGE_SYM_CLASS_FILE
|
||||
File: pdb_lines_2.c
|
||||
...
|
||||
|
|
|
@ -15,9 +15,7 @@ int main(void) {
|
|||
void bar(void) {
|
||||
}
|
||||
|
||||
$ clang-cl -fdebug-compilation-dir . -no-canonical-prefixes -c -Z7 pdb_lines*.c
|
||||
$ obj2yaml pdb_lines_1.obj > pdb_lines_1_relative.yaml
|
||||
$ obj2yaml pdb_lines_2.obj > pdb_lines_2_relative.yaml
|
||||
$ clang-cl -Xclang -fdebug-compilation-dir -Xclang . -c -Z7 pdb_lines*.c
|
||||
|
||||
/pdbsourcepath: only sets the directory that relative paths are considered
|
||||
relative to, so this test needs to pass relative paths to lld-link for:
|
||||
|
@ -35,9 +33,9 @@ RUN: cd %t
|
|||
RUN: yaml2obj %S/Inputs/pdb_lines_1_relative.yaml -o %t/pdb_lines_1_relative.obj
|
||||
RUN: yaml2obj %S/Inputs/pdb_lines_2_relative.yaml -o %t/pdb_lines_2_relative.obj
|
||||
RUN: ./lld-link -debug "-pdbsourcepath:c:\src" -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj
|
||||
RUN: llvm-pdbutil pdb2yaml -ipi-stream -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck %s
|
||||
RUN: llvm-pdbutil pdb2yaml -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck %s
|
||||
RUN: ./lld-link -debug "-pdbsourcepath:/usr/src" -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj
|
||||
RUN: llvm-pdbutil pdb2yaml -ipi-stream -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck --check-prefix=POSIX %s
|
||||
RUN: llvm-pdbutil pdb2yaml -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck --check-prefix=POSIX %s
|
||||
|
||||
CHECK-LABEL: - Module: 'c:\src\pdb_lines_1_relative.obj'
|
||||
CHECK-NEXT: ObjFile: 'c:\src\pdb_lines_1_relative.obj'
|
||||
|
@ -72,20 +70,6 @@ CHECK-NEXT: - 'c:\src\out.pdb'
|
|||
CHECK-NEXT: - cmd
|
||||
CHECK-NEXT: - '-debug -pdbsourcepath:c:\src -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj'
|
||||
|
||||
CHECK-LABEL: IpiStream:
|
||||
|
||||
CHECK: - Kind: LF_STRING_ID
|
||||
CHECK-NEXT: StringId:
|
||||
CHECK-NEXT: Id: 0
|
||||
CHECK-NEXT: String: 'c:\src'
|
||||
CHECK-NEXT: - Kind: LF_STRING_ID
|
||||
CHECK-NEXT: StringId:
|
||||
CHECK-NEXT: Id: 0
|
||||
CHECK-NEXT: String: pdb_lines_1.c
|
||||
CHECK-NEXT: - Kind: LF_STRING_ID
|
||||
CHECK-NEXT: StringId:
|
||||
CHECK-NEXT: Id: 0
|
||||
CHECK-NEXT: String: 'c:\src\buildninjaRel\bin\clang-cl.exe'
|
||||
|
||||
POSIX-LABEL: - Module: '/usr/src/pdb_lines_1_relative.obj'
|
||||
POSIX-NEXT: ObjFile: '/usr/src/pdb_lines_1_relative.obj'
|
||||
|
@ -119,17 +103,3 @@ POSIX-NEXT: - pdb
|
|||
POSIX-NEXT: - '/usr/src/out.pdb'
|
||||
POSIX-NEXT: - cmd
|
||||
POSIX-NEXT: - '-debug -pdbsourcepath:/usr/src -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj'
|
||||
|
||||
POSIX-LABEL: IpiStream:
|
||||
POSIX: - Kind: LF_STRING_ID
|
||||
POSIX-NEXT: StringId:
|
||||
POSIX-NEXT: Id: 0
|
||||
POSIX-NEXT: String: '/usr/src'
|
||||
POSIX-NEXT: - Kind: LF_STRING_ID
|
||||
POSIX-NEXT: StringId:
|
||||
POSIX-NEXT: Id: 0
|
||||
POSIX-NEXT: String: pdb_lines_1.c
|
||||
POSIX-NEXT: - Kind: LF_STRING_ID
|
||||
POSIX-NEXT: StringId:
|
||||
POSIX-NEXT: Id: 0
|
||||
POSIX-NEXT: String: '/usr/src/buildninjaRel/bin/clang-cl.exe'
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
REQUIRES: system-windows
|
||||
|
||||
Test the linker line tables on roughly the following example:
|
||||
|
||||
==> foo.h <==
|
||||
void bar(void);
|
||||
inline void foo(void) {
|
||||
bar();
|
||||
}
|
||||
==> pdb_lines_1.c <==
|
||||
#include "foo.h"
|
||||
int main(void) {
|
||||
foo();
|
||||
return 42;
|
||||
}
|
||||
==> pdb_lines_2.c <==
|
||||
void bar(void) {
|
||||
}
|
||||
|
||||
$ clang-cl -fdebug-compilation-dir . -no-canonical-prefixes -c -Z7 pdb_lines*.c
|
||||
$ obj2yaml pdb_lines_1.obj > pdb_lines_1_relative.yaml
|
||||
$ obj2yaml pdb_lines_2.obj > pdb_lines_2_relative.yaml
|
||||
|
||||
/pdbsourcepath: only sets the directory that relative paths are considered
|
||||
relative to, so this test needs to pass relative paths to lld-link for:
|
||||
1. The input obj files
|
||||
2. The /pdb: switch
|
||||
3. The lld-link invocation itself
|
||||
To achieve this, put all inputs of the lld-link invocation (including lld-link
|
||||
itself) in a temp directory that's cwd and then make sure to only use relative
|
||||
arguments when calling ./lld-link below.
|
||||
RUN: rm -rf %t
|
||||
RUN: mkdir %t
|
||||
RUN: cp lld-link %t/lld-link
|
||||
RUN: cd %t
|
||||
|
||||
Test the convoluted case at the end of remapBuildInfo() in lld/COFF/PDB.cpp
|
||||
The only drawback right now is that this edge case will create LF_BUILDINFO
|
||||
records with front references in the IPI stream. However the Visual Studio
|
||||
debugger takes the .PDB thusly created without any problems.
|
||||
Tested on VS2015, 2017 and 2019.
|
||||
|
||||
RUN: yaml2obj %S/Inputs/pdb_lines_1_relative.yaml -o %t/pdb_lines_1_relative.obj
|
||||
RUN: sed -e "s|String: \.|String: "c:\\\src"|" < %S/Inputs/pdb_lines_2_relative.yaml > %t/pdb_lines_2_relative.yaml
|
||||
RUN: yaml2obj pdb_lines_2_relative.yaml -o %t/pdb_lines_2_relative.obj
|
||||
RUN: ./lld-link -debug "-pdbsourcepath:c:\src" -entry:main -nodefaultlib -out:out.exe -pdb:out.pdb pdb_lines_1_relative.obj pdb_lines_2_relative.obj
|
||||
RUN: llvm-pdbutil pdb2yaml -ipi-stream -modules -module-files -module-syms -subsections=lines,fc %t/out.pdb | FileCheck --check-prefix=EXISTING %s
|
||||
|
||||
EXISTING-LABEL: IpiStream:
|
||||
|
||||
EXISTING: - Kind: LF_STRING_ID
|
||||
EXISTING-NEXT: StringId:
|
||||
EXISTING-NEXT: Id: 0
|
||||
EXISTING-NEXT: String: .
|
||||
EXISTING-NEXT: - Kind: LF_STRING_ID
|
||||
EXISTING-NEXT: StringId:
|
||||
EXISTING-NEXT: Id: 0
|
||||
EXISTING-NEXT: String: pdb_lines_1.c
|
||||
EXISTING: - Kind: LF_STRING_ID
|
||||
EXISTING-NEXT: StringId:
|
||||
EXISTING-NEXT: Id: 0
|
||||
EXISTING-LABEL: String: 'c:\src'
|
||||
EXISTING-NEXT: - Kind: LF_STRING_ID
|
||||
EXISTING-NEXT: StringId:
|
||||
EXISTING-NEXT: Id: 0
|
||||
EXISTING-NEXT: String: pdb_lines_2.c
|
|
@ -68,7 +68,6 @@
|
|||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "llvm/Support/FormatVariadic.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
#include "llvm/Support/Program.h"
|
||||
#include "llvm/Support/SMLoc.h"
|
||||
#include "llvm/Support/ScopedPrinter.h"
|
||||
#include "llvm/Target/TargetLoweringObjectFile.h"
|
||||
|
@ -818,31 +817,6 @@ static TypeIndex getStringIdTypeIdx(GlobalTypeTableBuilder &TypeTable,
|
|||
return TypeTable.writeLeafType(SIR);
|
||||
}
|
||||
|
||||
static std::string flattenCommandLine(ArrayRef<const char *> Args,
|
||||
StringRef MainFilename) {
|
||||
std::string FlatCmdLine;
|
||||
raw_string_ostream OS(FlatCmdLine);
|
||||
StringRef LastArg;
|
||||
for (StringRef Arg : Args) {
|
||||
if (Arg.empty())
|
||||
continue;
|
||||
// The command-line shall not contain the file to compile.
|
||||
if (Arg == MainFilename && LastArg != "-main-file-name")
|
||||
continue;
|
||||
// Also remove the output file.
|
||||
if (Arg == "-o" || LastArg == "-o") {
|
||||
LastArg = Arg;
|
||||
continue;
|
||||
}
|
||||
if (!LastArg.empty())
|
||||
OS << " ";
|
||||
llvm::sys::printArg(OS, Arg, /*Quote=*/true);
|
||||
LastArg = Arg;
|
||||
}
|
||||
OS.flush();
|
||||
return FlatCmdLine;
|
||||
}
|
||||
|
||||
void CodeViewDebug::emitBuildInfo() {
|
||||
// First, make LF_BUILDINFO. It's a sequence of strings with various bits of
|
||||
// build info. The known prefix is:
|
||||
|
@ -863,16 +837,8 @@ void CodeViewDebug::emitBuildInfo() {
|
|||
getStringIdTypeIdx(TypeTable, MainSourceFile->getDirectory());
|
||||
BuildInfoArgs[BuildInfoRecord::SourceFile] =
|
||||
getStringIdTypeIdx(TypeTable, MainSourceFile->getFilename());
|
||||
// FIXME: PDB is intentionally blank unless we implement /Zi type servers.
|
||||
BuildInfoArgs[BuildInfoRecord::TypeServerPDB] =
|
||||
getStringIdTypeIdx(TypeTable, "");
|
||||
if (Asm->TM.Options.MCOptions.Argv0 != nullptr) {
|
||||
BuildInfoArgs[BuildInfoRecord::BuildTool] =
|
||||
getStringIdTypeIdx(TypeTable, Asm->TM.Options.MCOptions.Argv0);
|
||||
BuildInfoArgs[BuildInfoRecord::CommandLine] = getStringIdTypeIdx(
|
||||
TypeTable, flattenCommandLine(Asm->TM.Options.MCOptions.CommandLineArgs,
|
||||
MainSourceFile->getFilename()));
|
||||
}
|
||||
// FIXME: Path to compiler and command line. PDB is intentionally blank unless
|
||||
// we implement /Zi type servers.
|
||||
BuildInfoRecord BIR(BuildInfoArgs);
|
||||
TypeIndex BuildInfoIndex = TypeTable.writeLeafType(BIR);
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
; CHECK-NEXT: 0x{{.*}}: `D:\src\scopes\clang`
|
||||
; CHECK-NEXT: <no type>: ``
|
||||
; CHECK-NEXT: 0x{{.*}}: `D:\src\scopes\foo.cpp`
|
||||
; CHECK-NEXT: 0x{{.*}}: ``
|
||||
; CHECK-NEXT: <no type>: ``
|
||||
; CHECK-NEXT: <no type>: ``
|
||||
|
||||
; CHECK: {{.*}} | S_BUILDINFO [size = 8] BuildId = `[[INFO_IDX]]`
|
||||
|
|
|
@ -295,8 +295,7 @@ attributes #2 = { noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-ma
|
|||
; YAML: - 4470750F2E319329
|
||||
; YAML: - 0FB556FD1FAB66D7
|
||||
; YAML: - 5970EFB4874D0F3F
|
||||
; YAML: - D8EF11198C33843F
|
||||
; YAML: - D81F744D7366282B
|
||||
; YAML: - EDB1D74C120CF44A
|
||||
; ...
|
||||
|
||||
|
||||
|
|
|
@ -511,22 +511,14 @@
|
|||
; ASM: .asciz "t.cpp" # StringData
|
||||
; ASM: .byte 242
|
||||
; ASM: .byte 241
|
||||
; ASM: # StringId (0x1015)
|
||||
; ASM: .short 0xa # Record length
|
||||
; ASM: .short 0x1605 # Record kind: LF_STRING_ID
|
||||
; ASM: .long 0x0 # Id
|
||||
; ASM: .byte 0 # StringData
|
||||
; ASM: .byte 243
|
||||
; ASM: .byte 242
|
||||
; ASM: .byte 241
|
||||
; ASM: # BuildInfo (0x1016)
|
||||
; ASM: # BuildInfo (0x1015)
|
||||
; ASM: .short 0x1a # Record length
|
||||
; ASM: .short 0x1603 # Record kind: LF_BUILDINFO
|
||||
; ASM: .short 0x5 # NumArgs
|
||||
; ASM: .long 0x1013 # Argument: D:\src\llvm\build
|
||||
; ASM: .long 0x0 # Argument
|
||||
; ASM: .long 0x1014 # Argument: t.cpp
|
||||
; ASM: .long 0x1015 # Argument
|
||||
; ASM: .long 0x0 # Argument
|
||||
; ASM: .long 0x0 # Argument
|
||||
; ASM: .byte 242
|
||||
; ASM: .byte 241
|
||||
|
|
|
@ -727,22 +727,14 @@
|
|||
; ASM: .asciz "t.cpp" # StringData
|
||||
; ASM: .byte 242
|
||||
; ASM: .byte 241
|
||||
; ASM: # StringId (0x1022)
|
||||
; ASM: .short 0xa # Record length
|
||||
; ASM: .short 0x1605 # Record kind: LF_STRING_ID
|
||||
; ASM: .long 0x0 # Id
|
||||
; ASM: .byte 0 # StringData
|
||||
; ASM: .byte 243
|
||||
; ASM: .byte 242
|
||||
; ASM: .byte 241
|
||||
; ASM: # BuildInfo (0x1023)
|
||||
; ASM: # BuildInfo (0x1022)
|
||||
; ASM: .short 0x1a # Record length
|
||||
; ASM: .short 0x1603 # Record kind: LF_BUILDINFO
|
||||
; ASM: .short 0x5 # NumArgs
|
||||
; ASM: .long 0x1020 # Argument: D:\src\llvm\build
|
||||
; ASM: .long 0x0 # Argument
|
||||
; ASM: .long 0x1021 # Argument: t.cpp
|
||||
; ASM: .long 0x1022 # Argument
|
||||
; ASM: .long 0x0 # Argument
|
||||
; ASM: .long 0x0 # Argument
|
||||
; ASM: .byte 242
|
||||
; ASM: .byte 241
|
||||
|
|
Loading…
Reference in a new issue