diff options
| -rw-r--r-- | lld/COFF/PDB.cpp | 10 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp | 1 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/frameproc-flags.ll | 38 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/multifunction.ll | 32 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/simple.ll | 12 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/thunk.ll | 2 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/types-cvarargs.ll | 2 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/udts-complete.ll | 2 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/udts.ll | 16 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/COFF/vframe-fpo.ll | 6 |
10 files changed, 71 insertions, 50 deletions
diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp index 9c3ff4e7f89..3c99d1f8da8 100644 --- a/lld/COFF/PDB.cpp +++ b/lld/COFF/PDB.cpp @@ -1014,11 +1014,13 @@ void PDBLinker::mergeSymbolRecords(ObjFile *File, const CVIndexMap &IndexMap, // Iterate every symbol to check if any need to be realigned, and if so, how // much space we need to allocate for them. bool NeedsRealignment = false; - unsigned RealignedSize = 0; + unsigned TotalRealignedSize = 0; auto EC = forEachCodeViewRecord<CVSymbol>( SymsBuffer, [&](CVSymbol Sym) -> llvm::Error { - RealignedSize += alignTo(Sym.length(), alignOf(CodeViewContainer::Pdb)); + unsigned RealignedSize = + alignTo(Sym.length(), alignOf(CodeViewContainer::Pdb)); NeedsRealignment |= RealignedSize != Sym.length(); + TotalRealignedSize += RealignedSize; return Error::success(); }); @@ -1036,9 +1038,9 @@ void PDBLinker::mergeSymbolRecords(ObjFile *File, const CVIndexMap &IndexMap, MutableArrayRef<uint8_t> AlignedSymbolMem; if (NeedsRealignment) { void *AlignedData = - Alloc.Allocate(RealignedSize, alignOf(CodeViewContainer::Pdb)); + Alloc.Allocate(TotalRealignedSize, alignOf(CodeViewContainer::Pdb)); AlignedSymbolMem = makeMutableArrayRef( - reinterpret_cast<uint8_t *>(AlignedData), RealignedSize); + reinterpret_cast<uint8_t *>(AlignedData), TotalRealignedSize); } // Iterate again, this time doing the real work. diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp index 93b76997c07..78e5f5d215b 100644 --- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp @@ -2833,6 +2833,7 @@ MCSymbol *CodeViewDebug::beginSymbolRecord(SymbolKind SymKind) { void CodeViewDebug::endSymbolRecord(MCSymbol *SymEnd) { // Symbol records in object files are not aligned, although we are considering // it for linker performance reasons. + OS.EmitValueToAlignment(4); OS.EmitLabel(SymEnd); } diff --git a/llvm/test/DebugInfo/COFF/frameproc-flags.ll b/llvm/test/DebugInfo/COFF/frameproc-flags.ll index a9d0fe067da..b2a1ef97cfb 100644 --- a/llvm/test/DebugInfo/COFF/frameproc-flags.ll +++ b/llvm/test/DebugInfo/COFF/frameproc-flags.ll @@ -62,44 +62,44 @@ ; } ; } -; CHECK-LABEL: S_GPROC32_ID [size = 50] `use_alloca` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 52] `use_alloca` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = VFRAME, param fp reg = EBP ; CHECK: flags = has alloca | secure checks | opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 51] `call_setjmp` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 52] `call_setjmp` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = NONE, param fp reg = NONE ; CHECK: flags = has setjmp | opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 53] `use_inlineasm` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 56] `use_inlineasm` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = NONE, param fp reg = NONE ; CHECK: flags = has inline asm | opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 46] `cpp_eh` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 48] `cpp_eh` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = EBP, param fp reg = EBP ; CHECK: flags = has eh | opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 50] `use_inline` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 52] `use_inline` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = NONE, param fp reg = NONE ; CHECK: flags = opt speed ; CHECK-LABEL: S_LPROC32_ID [size = 56] `is_marked_inline` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = NONE, param fp reg = NONE ; CHECK: flags = marked inline | opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 43] `seh` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 44] `seh` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = EBP, param fp reg = EBP ; CHECK: flags = has seh | opt speed -; CHECK-LABEL: S_LPROC32_ID [size = 55] `?filt$0@0@seh@@` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_LPROC32_ID [size = 56] `?filt$0@0@seh@@` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = EBP, param fp reg = EBP ; CHECK: flags = opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 49] `use_naked` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 52] `use_naked` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = NONE, param fp reg = NONE ; CHECK: flags = has inline asm | naked | opt speed -; CHECK-LABEL: S_GPROC32_ID [size = 51] `stack_guard` -; CHECK: S_FRAMEPROC [size = 30] +; CHECK-LABEL: S_GPROC32_ID [size = 52] `stack_guard` +; CHECK: S_FRAMEPROC [size = 32] ; CHECK: local fp reg = VFRAME, param fp reg = EBP ; CHECK: flags = secure checks | opt speed diff --git a/llvm/test/DebugInfo/COFF/multifunction.ll b/llvm/test/DebugInfo/COFF/multifunction.ll index c74b332d8b8..1c19b34ab93 100644 --- a/llvm/test/DebugInfo/COFF/multifunction.ll +++ b/llvm/test/DebugInfo/COFF/multifunction.ll @@ -80,6 +80,7 @@ ; X86-NEXT: .secidx _x ; X86-NEXT: .byte 0 ; X86-NEXT: .asciz "x" +; X86-NEXT: .p2align 2 ; X86-NEXT: [[PROC_SEGMENT_END]]: ; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X86-NEXT: [[FPROC_BEG]]: @@ -91,6 +92,7 @@ ; X86-NEXT: .long 0 # Exception handler offset ; X86-NEXT: .short 0 # Exception handler section ; X86-NEXT: .long 0 # Flags (defines frame register) +; X86-NEXT: .p2align 2 ; X86-NEXT: [[FPROC_END]]: ; X86-NEXT: .short 2 ; X86-NEXT: .short 4431 @@ -117,6 +119,7 @@ ; X86-NEXT: .secidx _y ; X86-NEXT: .byte 0 ; X86-NEXT: .asciz "y" +; X86-NEXT: .p2align 2 ; X86-NEXT: [[PROC_SEGMENT_END]]: ; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X86-NEXT: [[FPROC_BEG]]: @@ -128,6 +131,7 @@ ; X86-NEXT: .long 0 # Exception handler offset ; X86-NEXT: .short 0 # Exception handler section ; X86-NEXT: .long 0 # Flags (defines frame register) +; X86-NEXT: .p2align 2 ; X86-NEXT: [[FPROC_END]]: ; X86-NEXT: .short 2 ; X86-NEXT: .short 4431 @@ -154,6 +158,7 @@ ; X86-NEXT: .secidx _f ; X86-NEXT: .byte 0 ; X86-NEXT: .asciz "f" +; X86-NEXT: .p2align 2 ; X86-NEXT: [[PROC_SEGMENT_END]]: ; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X86-NEXT: [[FPROC_BEG]]: @@ -165,6 +170,7 @@ ; X86-NEXT: .long 0 # Exception handler offset ; X86-NEXT: .short 0 # Exception handler section ; X86-NEXT: .long 0 # Flags (defines frame register) +; X86-NEXT: .p2align 2 ; X86-NEXT: [[FPROC_END]]: ; X86-NEXT: .short 2 ; X86-NEXT: .short 4431 @@ -386,6 +392,7 @@ ; X64-NEXT: .secidx x ; X64-NEXT: .byte 0 ; X64-NEXT: .asciz "x" +; X64-NEXT: .p2align 2 ; X64-NEXT: [[PROC_SEGMENT_END]]: ; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X64-NEXT: [[FPROC_BEG]]: @@ -397,6 +404,7 @@ ; X64-NEXT: .long 0 # Exception handler offset ; X64-NEXT: .short 0 # Exception handler section ; X64-NEXT: .long 81920 # Flags (defines frame register) +; X64-NEXT: .p2align 2 ; X64-NEXT: [[FPROC_END]]: ; X64-NEXT: .short 2 ; X64-NEXT: .short 4431 @@ -422,6 +430,7 @@ ; X64-NEXT: .secidx y ; X64-NEXT: .byte 0 ; X64-NEXT: .asciz "y" +; X64-NEXT: .p2align 2 ; X64-NEXT: [[PROC_SEGMENT_END]]: ; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X64-NEXT: [[FPROC_BEG]]: @@ -433,6 +442,7 @@ ; X64-NEXT: .long 0 # Exception handler offset ; X64-NEXT: .short 0 # Exception handler section ; X64-NEXT: .long 81920 # Flags (defines frame register) +; X64-NEXT: .p2align 2 ; X64-NEXT: [[FPROC_END]]: ; X64-NEXT: .short 2 ; X64-NEXT: .short 4431 @@ -458,6 +468,7 @@ ; X64-NEXT: .secidx f ; X64-NEXT: .byte 0 ; X64-NEXT: .asciz "f" +; X64-NEXT: .p2align 2 ; X64-NEXT: [[PROC_SEGMENT_END]]: ; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X64-NEXT: [[FPROC_BEG]]: @@ -469,6 +480,7 @@ ; X64-NEXT: .long 0 # Exception handler offset ; X64-NEXT: .short 0 # Exception handler section ; X64-NEXT: .long 81920 # Flags (defines frame register) +; X64-NEXT: .p2align 2 ; X64-NEXT: [[FPROC_END]]: ; X64-NEXT: .short 2 ; X64-NEXT: .short 4431 @@ -488,16 +500,16 @@ ; OBJ64: Relocations [ ; OBJ64-NEXT: 0x64 IMAGE_REL_AMD64_SECREL x ; OBJ64-NEXT: 0x68 IMAGE_REL_AMD64_SECTION x -; OBJ64-NEXT: 0x98 IMAGE_REL_AMD64_SECREL x -; OBJ64-NEXT: 0x9C IMAGE_REL_AMD64_SECTION x -; OBJ64-NEXT: 0xFC IMAGE_REL_AMD64_SECREL y -; OBJ64-NEXT: 0x100 IMAGE_REL_AMD64_SECTION y -; OBJ64-NEXT: 0x130 IMAGE_REL_AMD64_SECREL y -; OBJ64-NEXT: 0x134 IMAGE_REL_AMD64_SECTION y -; OBJ64-NEXT: 0x194 IMAGE_REL_AMD64_SECREL f -; OBJ64-NEXT: 0x198 IMAGE_REL_AMD64_SECTION f -; OBJ64-NEXT: 0x1C8 IMAGE_REL_AMD64_SECREL f -; OBJ64-NEXT: 0x1CC IMAGE_REL_AMD64_SECTION f +; OBJ64-NEXT: 0x9C IMAGE_REL_AMD64_SECREL x +; OBJ64-NEXT: 0xA0 IMAGE_REL_AMD64_SECTION x +; OBJ64-NEXT: 0x100 IMAGE_REL_AMD64_SECREL y +; OBJ64-NEXT: 0x104 IMAGE_REL_AMD64_SECTION y +; OBJ64-NEXT: 0x138 IMAGE_REL_AMD64_SECREL y +; OBJ64-NEXT: 0x13C IMAGE_REL_AMD64_SECTION y +; OBJ64-NEXT: 0x19C IMAGE_REL_AMD64_SECREL f +; OBJ64-NEXT: 0x1A0 IMAGE_REL_AMD64_SECTION f +; OBJ64-NEXT: 0x1D4 IMAGE_REL_AMD64_SECREL f +; OBJ64-NEXT: 0x1D8 IMAGE_REL_AMD64_SECTION f ; OBJ64-NEXT: ] ; OBJ64: Subsection [ ; OBJ64-NEXT: SubSectionType: Symbols (0xF1) diff --git a/llvm/test/DebugInfo/COFF/simple.ll b/llvm/test/DebugInfo/COFF/simple.ll index 3c495a33b8a..58d0f42a67a 100644 --- a/llvm/test/DebugInfo/COFF/simple.ll +++ b/llvm/test/DebugInfo/COFF/simple.ll @@ -58,6 +58,7 @@ ; X86-NEXT: .secidx _f ; X86-NEXT: .byte 0 ; X86-NEXT: .asciz "f" +; X86-NEXT: .p2align 2 ; X86-NEXT: [[PROC_SEGMENT_END]]: ; X86-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X86-NEXT: [[FPROC_BEG]]: @@ -69,6 +70,7 @@ ; X86-NEXT: .long 0 # Exception handler offset ; X86-NEXT: .short 0 # Exception handler section ; X86-NEXT: .long 0 # Flags (defines frame register) +; X86-NEXT: .p2align 2 ; X86-NEXT: [[FPROC_END]]: ; X86-NEXT: .short 2 ; X86-NEXT: .short 4431 @@ -89,8 +91,8 @@ ; OBJ32-NEXT: 0x44 IMAGE_REL_I386_DIR32NB _f ; OBJ32-NEXT: 0x90 IMAGE_REL_I386_SECREL _f ; OBJ32-NEXT: 0x94 IMAGE_REL_I386_SECTION _f -; OBJ32-NEXT: 0xC4 IMAGE_REL_I386_SECREL _f -; OBJ32-NEXT: 0xC8 IMAGE_REL_I386_SECTION _f +; OBJ32-NEXT: 0xC8 IMAGE_REL_I386_SECREL _f +; OBJ32-NEXT: 0xCC IMAGE_REL_I386_SECTION _f ; OBJ32-NEXT: ] ; OBJ32: Subsection [ ; OBJ32-NEXT: SubSectionType: Symbols (0xF1) @@ -184,6 +186,7 @@ ; X64-NEXT: .secidx f ; X64-NEXT: .byte 0 ; X64-NEXT: .asciz "f" +; X64-NEXT: .p2align 2 ; X64-NEXT: [[PROC_SEGMENT_END]]: ; X64-NEXT: .short [[FPROC_END:[^ ]*]]-[[FPROC_BEG:[^ ]*]] # Record length ; X64-NEXT: [[FPROC_BEG]]: @@ -195,6 +198,7 @@ ; X64-NEXT: .long 0 # Exception handler offset ; X64-NEXT: .short 0 # Exception handler section ; X64-NEXT: .long 81920 # Flags (defines frame register) +; X64-NEXT: .p2align 2 ; X64-NEXT: [[FPROC_END]]: ; X64-NEXT: .short 2 ; X64-NEXT: .short 4431 @@ -214,8 +218,8 @@ ; OBJ64: Relocations [ ; OBJ64-NEXT: 0x64 IMAGE_REL_AMD64_SECREL f ; OBJ64-NEXT: 0x68 IMAGE_REL_AMD64_SECTION f -; OBJ64-NEXT: 0x98 IMAGE_REL_AMD64_SECREL f -; OBJ64-NEXT: 0x9C IMAGE_REL_AMD64_SECTION f +; OBJ64-NEXT: 0x9C IMAGE_REL_AMD64_SECREL f +; OBJ64-NEXT: 0xA0 IMAGE_REL_AMD64_SECTION f ; OBJ64-NEXT: ] ; OBJ64: Subsection [ ; OBJ64-NEXT: SubSectionType: Symbols (0xF1) diff --git a/llvm/test/DebugInfo/COFF/thunk.ll b/llvm/test/DebugInfo/COFF/thunk.ll index eac48ba1284..c8f5c5ad436 100644 --- a/llvm/test/DebugInfo/COFF/thunk.ll +++ b/llvm/test/DebugInfo/COFF/thunk.ll @@ -70,6 +70,7 @@ ; ASM-NEXT: .short Lfunc_end{{.*}}-"[[NAME1]]" # Code size ; ASM-NEXT: .byte 0 # Ordinal ; ASM-NEXT: .asciz "[[NAME1]]" # Function name +; ASM-NEXT: .p2align 2 ; ASM-NEXT: [[END1]]: ; ASM-NEXT: .short 2 # Record length ; ASM-NEXT: .short 4431 # Record kind: S_PROC_ID_END @@ -88,6 +89,7 @@ ; ASM-NEXT: .short Lfunc_end{{.*}}-"[[NAME2]]" # Code size ; ASM-NEXT: .byte 0 # Ordinal ; ASM-NEXT: .asciz "[[NAME2]]" # Function name +; ASM-NEXT: .p2align 2 ; ASM-NEXT: [[END2]]: ; ASM-NEXT: .short 2 # Record length ; ASM-NEXT: .short 4431 # Record kind: S_PROC_ID_END diff --git a/llvm/test/DebugInfo/COFF/types-cvarargs.ll b/llvm/test/DebugInfo/COFF/types-cvarargs.ll index deb3e6e3652..5e366f0e981 100644 --- a/llvm/test/DebugInfo/COFF/types-cvarargs.ll +++ b/llvm/test/DebugInfo/COFF/types-cvarargs.ll @@ -25,7 +25,7 @@ ; CHECK: } ; CHECK: Subsection [ ; CHECK: SubSectionType: Symbols (0xF1) -; CHECK: SubSectionSize: 0x2A +; CHECK: SubSectionSize: ; CHECK: UDTSym { ; CHECK: Kind: S_UDT (0x1108) ; CHECK: Type: MemberTest::A (0x1008) diff --git a/llvm/test/DebugInfo/COFF/udts-complete.ll b/llvm/test/DebugInfo/COFF/udts-complete.ll index 1683ceabd50..ace86ee4e66 100644 --- a/llvm/test/DebugInfo/COFF/udts-complete.ll +++ b/llvm/test/DebugInfo/COFF/udts-complete.ll @@ -31,7 +31,7 @@ ; CHECK: Symbols ; CHECK: ============================================================ ; CHECK: Mod 0000 | `.debug$S`: -; CHECK: 0 | S_GDATA32 [size = 17] `gv` +; CHECK: 0 | S_GDATA32 [size = 20] `gv` ; CHECK: type = 0x1002 (Foo), addr = 0000:0000 ; CHECK: 0 | S_UDT [size = 12] `Bar` ; CHECK: original type = 0x1002 diff --git a/llvm/test/DebugInfo/COFF/udts.ll b/llvm/test/DebugInfo/COFF/udts.ll index 114e11a70e8..d17f5cd4921 100644 --- a/llvm/test/DebugInfo/COFF/udts.ll +++ b/llvm/test/DebugInfo/COFF/udts.ll @@ -79,13 +79,13 @@ ; PDBUTIL: Symbols ; PDBUTIL-NEXT: ============================================================ ; PDBUTIL-NOT: S_UDT {{.*}} `A::C` -; PDBUTIL: S_UDT [size = 15] `f::FOO` -; PDBUTIL: S_UDT [size = 15] `g::pun` -; PDBUTIL: S_UDT [size = 10] `S` -; PDBUTIL: S_UDT [size = 10] `A` -; PDBUTIL: S_UDT [size = 13] `A::D` -; PDBUTIL: S_UDT [size = 10] `U` -; PDBUTIL: S_UDT [size = 10] `U` +; PDBUTIL: S_UDT [size = 16] `f::FOO` +; PDBUTIL: S_UDT [size = 16] `g::pun` +; PDBUTIL: S_UDT [size = 12] `S` +; PDBUTIL: S_UDT [size = 12] `A` +; PDBUTIL: S_UDT [size = 16] `A::D` +; PDBUTIL: S_UDT [size = 12] `U` +; PDBUTIL: S_UDT [size = 12] `U` source_filename = "test/DebugInfo/COFF/udts.ll" target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128" @@ -190,4 +190,4 @@ attributes #1 = { nounwind readnone speculatable } !53 = !DILocation(line: 9, column: 5, scope: !38) !54 = !DILocation(line: 9, column: 7, scope: !38) !55 = !DILocation(line: 10, column: 12, scope: !38) -!56 = !DILocation(line: 10, column: 3, scope: !38)
\ No newline at end of file +!56 = !DILocation(line: 10, column: 3, scope: !38) diff --git a/llvm/test/DebugInfo/COFF/vframe-fpo.ll b/llvm/test/DebugInfo/COFF/vframe-fpo.ll index b3b71530214..27273cd5c00 100644 --- a/llvm/test/DebugInfo/COFF/vframe-fpo.ll +++ b/llvm/test/DebugInfo/COFF/vframe-fpo.ll @@ -64,14 +64,14 @@ ; CODEVIEW-NEXT: Magic: 0x4 ; CODEVIEW-NEXT: Subsection [ ; CODEVIEW-NEXT: SubSectionType: Symbols (0xF1) -; CODEVIEW-NEXT: SubSectionSize: 0x2F +; CODEVIEW-NEXT: SubSectionSize: ; CODEVIEW-NEXT: Compile3Sym { ; CODEVIEW-NEXT: Kind: S_COMPILE3 (0x113C) ; CODEVIEW: } ; CODEVIEW: ] ; CODEVIEW: Subsection [ ; CODEVIEW-NEXT: SubSectionType: FrameData (0xF5) -; CODEVIEW-NEXT: SubSectionSize: 0xA4 +; CODEVIEW-NEXT: SubSectionSize: ; CODEVIEW-NEXT: LinkageName: _main ; CODEVIEW: FrameData { ; CODEVIEW: } @@ -109,7 +109,7 @@ ; CODEVIEW: Subsection [ ; CODEVIEW-NEXT: SubSectionType: Symbols (0xF1) -; CODEVIEW-NEXT: SubSectionSize: 0xA2 +; CODEVIEW-NEXT: SubSectionSize: ; CODEVIEW-NEXT: GlobalProcIdSym { ; CODEVIEW-NEXT: Kind: S_GPROC32_ID (0x1147) ; CODEVIEW: DisplayName: main |

