if (F.hasPersonalityFn())
Per = classifyEHPersonality(F.getPersonalityFn()->stripPointerCasts());
- // Emit an UNWIND_INFO struct describing the prologue.
- Asm->OutStreamer->EmitWinEHHandlerData();
-
if (Per == EHPersonality::MSVC_CXX && shouldEmitPersonality &&
!CurrentFuncletEntry->isCleanupFuncletEntry()) {
+ // Emit an UNWIND_INFO struct describing the prologue.
+ Asm->OutStreamer->EmitWinEHHandlerData();
+
// If this is a C++ catch funclet (or the parent function),
// emit a reference to the LSDA for the parent function.
StringRef FuncLinkageName = GlobalValue::dropLLVMManglingEscape(F.getName());
Asm->OutStreamer->emitValue(create32bitRef(FuncInfoXData), 4);
} else if (Per == EHPersonality::MSVC_Win64SEH && MF->hasEHFunclets() &&
!CurrentFuncletEntry->isEHFuncletEntry()) {
+ // Emit an UNWIND_INFO struct describing the prologue.
+ Asm->OutStreamer->EmitWinEHHandlerData();
+
// If this is the parent function in Win64 SEH, emit the LSDA immediately
// following .seh_handlerdata.
emitCSpecificHandlerTable(MF);
+ } else if (shouldEmitPersonality || shouldEmitLSDA) {
+ // Emit an UNWIND_INFO struct describing the prologue.
+ Asm->OutStreamer->EmitWinEHHandlerData();
+ // In these cases, no further info is written to the .xdata section
+ // right here, but is written by e.g. emitExceptionTable in endFunction()
+ // above.
+ } else {
+ // No need to emit the EH handler data right here if nothing needs
+ // writing to the .xdata section; it will be emitted for all
+ // functions that need it in the end anyway.
}
// Switch back to the funclet start .text section now that we are done
; CHECK: .word .LBB0_3-.Ltmp0
; CHECK: .word .LBB0_4-.Ltmp0
; CHECK: .word .LBB0_5-.Ltmp0
-; CHECK: .seh_handlerdata
-; CHECK: .text
; CHECK: .seh_endproc
; Check that we can emit an object file with correct unwind info.
# ASM: .seh_endepilogue
# ASM: .seh_endfunclet
-# ASM: .seh_handlerdata
-# ASM: .text
# ASM: .seh_endproc
...
; WIN64-KNL-NEXT: nop
; WIN64-KNL-NEXT: addq $40, %rsp
; WIN64-KNL-NEXT: retq
-; WIN64-KNL-NEXT: .seh_handlerdata
-; WIN64-KNL-NEXT: .text
; WIN64-KNL-NEXT: .seh_endproc
;
; WIN64-SKX-LABEL: testf16_inp_mask:
; WIN64-SKX-NEXT: nop
; WIN64-SKX-NEXT: addq $40, %rsp
; WIN64-SKX-NEXT: retq
-; WIN64-SKX-NEXT: .seh_handlerdata
-; WIN64-SKX-NEXT: .text
; WIN64-SKX-NEXT: .seh_endproc
;
; X64-KNL-LABEL: testf16_inp_mask:
; WIN64-NEXT: popq %r14
; WIN64-NEXT: popq %r15
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_argv64i1:
; WIN64-NEXT: popq %rdi
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_retv64i1:
; WIN64-NEXT: popq %r11
; WIN64-NEXT: popq %rbp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_argv32i1:
; WIN64-NEXT: popq %rdi
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_argv32i1:
; WIN64-NEXT: popq %rdi
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_retv32i1:
; WIN64-NEXT: popq %r10
; WIN64-NEXT: popq %r11
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_argv16i1:
; WIN64-NEXT: popq %rdi
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_argv16i1:
; WIN64-NEXT: popq %rdi
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_retv16i1:
; WIN64-NEXT: popq %r10
; WIN64-NEXT: popq %r11
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_argv8i1:
; WIN64-NEXT: popq %rdi
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_argv8i1:
; WIN64-NEXT: popq %rsi
; WIN64-NEXT: vzeroupper
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: caller_retv8i1:
; WIN64-NEXT: incb %al
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargReti1:
; WIN64-NEXT: incb %al
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargReti8:
; WIN64-NEXT: # kill: def $ax killed $ax killed $eax
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargReti16:
; WIN64-NEXT: incl %eax
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargReti32:
; WIN64-NEXT: incq %rax
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargReti64:
; WIN64-NEXT: addq $16, %rsp
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRetFloat:
; WIN64-NEXT: addq $16, %rsp
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRetDouble:
; WIN64-NEXT: fadd %st, %st(0)
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRetf80:
; WIN64-NEXT: vaddsd %xmm0, %xmm0, %xmm0
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargParamf80:
; WIN64-NEXT: incl %eax
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRetPointer:
; WIN64-NEXT: addq $32, %rsp
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRet128Vector:
; WIN64-NEXT: addq $80, %rsp
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRet256Vector:
; WIN64-NEXT: addq $176, %rsp
; WIN64-NEXT: popq %rsp
; WIN64-NEXT: retq
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
;
; LINUXOSX64-LABEL: test_CallargRet512Vector:
; SSE-WIN-NEXT: addq $160, %rsp
; SSE-WIN-NEXT: popq %rsi
; SSE-WIN-NEXT: retq
-; SSE-WIN-NEXT: .seh_handlerdata
-; SSE-WIN-NEXT: .text
; SSE-WIN-NEXT: .seh_endproc
;
; AVX-LABEL: loopdep3:
; AVX-NEXT: addq $160, %rsp
; AVX-NEXT: popq %rsi
; AVX-NEXT: retq
-; AVX-NEXT: .seh_handlerdata
-; AVX-NEXT: .text
; AVX-NEXT: .seh_endproc
entry:
br label %for.cond1.preheader
; SSE-WIN-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; SSE-WIN-NEXT: addq $168, %rsp
; SSE-WIN-NEXT: retq
-; SSE-WIN-NEXT: .seh_handlerdata
-; SSE-WIN-NEXT: .text
; SSE-WIN-NEXT: .seh_endproc
;
; AVX-LABEL: inlineasmdep:
; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; AVX-NEXT: addq $168, %rsp
; AVX-NEXT: retq
-; AVX-NEXT: .seh_handlerdata
-; AVX-NEXT: .text
; AVX-NEXT: .seh_endproc
top:
tail call void asm sideeffect "", "~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{dirflag},~{fpsr},~{flags}"()
; SSE-WIN-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; SSE-WIN-NEXT: addq $184, %rsp
; SSE-WIN-NEXT: retq
-; SSE-WIN-NEXT: .seh_handlerdata
-; SSE-WIN-NEXT: .text
; SSE-WIN-NEXT: .seh_endproc
;
; AVX-LABEL: truedeps:
; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; AVX-NEXT: addq $184, %rsp
; AVX-NEXT: retq
-; AVX-NEXT: .seh_handlerdata
-; AVX-NEXT: .text
; AVX-NEXT: .seh_endproc
top:
tail call void asm sideeffect "", "~{xmm6},~{dirflag},~{fpsr},~{flags}"()
; SSE-WIN-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; SSE-WIN-NEXT: addq $168, %rsp
; SSE-WIN-NEXT: retq
-; SSE-WIN-NEXT: .seh_handlerdata
-; SSE-WIN-NEXT: .text
; SSE-WIN-NEXT: .seh_endproc
;
; AVX-LABEL: clearence:
; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; AVX-NEXT: addq $168, %rsp
; AVX-NEXT: retq
-; AVX-NEXT: .seh_handlerdata
-; AVX-NEXT: .text
; AVX-NEXT: .seh_endproc
top:
tail call void asm sideeffect "", "~{xmm6},~{dirflag},~{fpsr},~{flags}"()
; SSE-WIN-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; SSE-WIN-NEXT: addq $152, %rsp
; SSE-WIN-NEXT: retq
-; SSE-WIN-NEXT: .seh_handlerdata
-; SSE-WIN-NEXT: .text
; SSE-WIN-NEXT: .seh_endproc
;
; AVX1-LABEL: loopclearance2:
; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; AVX1-NEXT: addq $152, %rsp
; AVX1-NEXT: retq
-; AVX1-NEXT: .seh_handlerdata
-; AVX1-NEXT: .text
; AVX1-NEXT: .seh_endproc
;
; AVX512VL-LABEL: loopclearance2:
; AVX512VL-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
; AVX512VL-NEXT: addq $152, %rsp
; AVX512VL-NEXT: retq
-; AVX512VL-NEXT: .seh_handlerdata
-; AVX512VL-NEXT: .text
; AVX512VL-NEXT: .seh_endproc
entry:
tail call void asm sideeffect "", "~{xmm7},~{dirflag},~{fpsr},~{flags}"()
; WIN64-NEXT: jmp bar # TAILCALL
; WIN64-NEXT: # encoding: [0xeb,A]
; WIN64-NEXT: # fixup A - offset: 1, value: bar-1, kind: FK_PCRel_1
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
entry:
; Force %ebx to be spilled on the stack, turning this into
; WIN64-NEXT: jmp bar # TAILCALL
; WIN64-NEXT: # encoding: [0xeb,A]
; WIN64-NEXT: # fixup A - offset: 1, value: bar-1, kind: FK_PCRel_1
-; WIN64-NEXT: .seh_handlerdata
-; WIN64-NEXT: .text
; WIN64-NEXT: .seh_endproc
entry:
; Force %ebx to be spilled on the stack, turning this into
; CHECK: .seh_proc use_gxx_seh
; CHECK-NOT: .seh_handler __gxx_personality_seh0
; CHECK: callq throwit
-; CHECK: .seh_handlerdata
; CHECK: .seh_endproc
define void @use_gcc_seh()
; CHECK: .seh_proc use_gcc_seh
; CHECK-NOT: .seh_handler __gcc_personality_seh0
; CHECK: callq throwit
-; CHECK: .seh_handlerdata
; CHECK: .seh_endproc
; Make sure the assembler puts the .xdata and .pdata in sections with the right
; names.
; GNUOBJ: .text$_Z3fooi
-; GNUOBJ: .xdata$_Z3fooi
; GNUOBJ: .data$gv
+; GNUOBJ: .xdata$_Z3fooi
; GNUOBJ: .pdata$_Z3fooi
declare dso_local i32 @_Z3bari(i32)
; ALL-NEXT: nop
; ALL-NEXT: addq $40, %rsp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
entry:
call void @test_noop1(%struct.Foo* %f, i32 addrspace(270)* null)
; WINDOWS-NEXT: popq %rsi
; WINDOWS-NEXT: popq %r14
; WINDOWS-NEXT: rex64 jmpq *%rax # TAILCALL
-; WINDOWS-NEXT: .seh_handlerdata
-; WINDOWS-NEXT: .text
; WINDOWS-NEXT: .seh_endproc
;
; X86-NOSSE-LABEL: f_thunk:
; CHECK-NEXT: nop
; CHECK-NEXT: addq $40, %rsp
; CHECK-NEXT: retq
-; CHECK-NEXT: .seh_handlerdata
-; CHECK-NEXT: .text
; CHECK-NEXT: .seh_endproc
%v = load double, double* %p
call void @take_double(double %v)
; CHECK-NEXT: nop
; CHECK-NEXT: addq $40, %rsp
; CHECK-NEXT: retq
-; CHECK-NEXT: .seh_handlerdata
-; CHECK-NEXT: .text
; CHECK-NEXT: .seh_endproc
%v = load float, float* %p
call void @take_float(float %v)
; CHECK-NEXT: addq $32, %rsp
; CHECK-NEXT: popq %rsi
; CHECK-NEXT: retq
-; CHECK-NEXT: .seh_handlerdata
-; CHECK-NEXT: .text
; CHECK-NEXT: .seh_endproc
%v = call double @produce_double()
store double %v, double* %p
; CHECK-NEXT: addq $32, %rsp
; CHECK-NEXT: popq %rsi
; CHECK-NEXT: retq
-; CHECK-NEXT: .seh_handlerdata
-; CHECK-NEXT: .text
; CHECK-NEXT: .seh_endproc
%v = call float @produce_float()
store float %v, float* %p
; CHECK: .quad .LBB0_
; CHECK: .quad .LBB0_
; CHECK: .quad .LBB0_
-; CHECK: .seh_handlerdata
; It's important that we switch back to .text here, not .rdata.
; CHECK: .text
; ALL-NEXT: movl 48(%rbp), %eax
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
ret i32 %p5
}
; ALL-NEXT: addq $8, %rsp
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%ap = alloca i8, align 8
call void @llvm.va_start(i8* %ap)
; ALL-NEXT: movq 8(%rbp), %rax
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%ra = call i8* @llvm.returnaddress(i32 0)
ret i8* %ra
; ALL-NEXT: addq $304, %rsp # imm = 0x130
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
alloca [300 x i8]
%ra = call i8* @llvm.returnaddress(i32 0)
; ALL-NEXT: addq $336, %rsp # imm = 0x150
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%a = alloca [300 x i8]
%gep = getelementptr [300 x i8], [300 x i8]* %a, i32 0, i32 0
; ALL-NEXT: addq $336, %rsp # imm = 0x150
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%a = alloca [300 x i8]
%gep = getelementptr [300 x i8], [300 x i8]* %a, i32 0, i32 0
; ALL-NEXT: leaq 176(%rbp), %rsp
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
alloca [300 x i8], align 64
ret i32 %e
; ALL-NEXT: popq %rsi
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%alloca = alloca [300 x i8], align 64
alloca i32, i32 %a
; ALL-NEXT: popq %rax
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
entry:
%call = call i64 @llvm.x86.flags.read.u64()
; ALL-NEXT: popq %rbx
; ALL-NEXT: popq %rsi
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%cx = cmpxchg i64* %foo, i64 %bar, i64 %baz seq_cst seq_cst
%v = extractvalue { i64, i1 } %cx, 0
; ALL-NEXT: leaq 8(%rbp), %rax
; ALL-NEXT: popq %rbp
; ALL-NEXT: retq
-; ALL-NEXT: .seh_handlerdata
-; ALL-NEXT: .text
; ALL-NEXT: .seh_endproc
%aora = call i8* @llvm.addressofreturnaddress()
ret i8* %aora
; $ clang t.cpp -S -emit-llvm -g -gcodeview -o t.ll
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (6)
+; CHECK: Section: .debug$T (5)
; CHECK: Magic: 0x4
; CHECK: Struct (0x1000) {
; CHECK: TypeLeafKind: LF_STRUCTURE (0x1505)
; CHECK: Arch: x86_64
; CHECK: AddressSize: 64bit
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (6)
+; CHECK: Section: .debug$T (5)
; CHECK: Magic: 0x4
; CHECK: Enum ({{.*}}) {
; CHECK: TypeLeafKind: LF_ENUM (0x1507)
;
; CHECK: CodeViewDebugInfo [
-; CHECK: Section: .debug$S (9)
+; CHECK: Section: .debug$S (8)
; CHECK: Subsection [
; CHECK: SubSectionType: Symbols (0xF1)
; CHECK: ]
; CHECK: ]
; CHECK: CodeViewDebugInfo [
-; CHECK: Section: .debug$S (16)
+; CHECK: Section: .debug$S (12)
; CHECK: Subsection [
; CHECK: SubSectionType: Symbols (0xF1)
; CHECK: GlobalData {
; CHECK: ]
; CHECK: ]
; CHECK: CodeViewDebugInfo [
-; CHECK: Section: .debug$S (17)
+; CHECK: Section: .debug$S (15)
; CHECK: Subsection [
; CHECK: SubSectionType: Symbols (0xF1)
; CHECK: GlobalData {
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (7)
+; CHECK: Section: .debug$T (6)
; CHECK: Magic: 0x4
; CHECK: Modifier (0x1000) {
; CHECK: TypeLeafKind: LF_MODIFIER (0x1001)
; CHECK: ]
; CHECK-LABEL: CodeViewDebugInfo [
-; CHECK-NEXT: Section: .debug$S (6)
+; CHECK-NEXT: Section: .debug$S (5)
; CHECK: Subsection [
; CHECK: SubSectionType: Symbols (0xF1)
; CHECK: GlobalProcIdSym {
; $ clang t.cpp -S -emit-llvm -g -gcodeview -o t.ll
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (6)
+; CHECK: Section: .debug$T (5)
; CHECK: Magic: 0x4
; CHECK: ArgList (0x1000) {
; CHECK: TypeLeafKind: LF_ARGLIST (0x1201)
; $ clang t.cpp -S -emit-llvm -g -gcodeview -o t.ll
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (8)
+; CHECK: Section: .debug$T (7)
; CHECK: Magic: 0x4
; CHECK: ArgList (0x1000) {
; CHECK: TypeLeafKind: LF_ARGLIST (0x1201)
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (7)
+; CHECK: Section: .debug$T (6)
; CHECK: Magic: 0x4
; CHECK: Pointer (0x1005) {
; CHECK: TypeLeafKind: LF_POINTER (0x1002)
; $ clang t.cpp -S -emit-llvm -g -gcodeview -o t.ll
; CHECK: CodeViewTypes [
-; CHECK: Section: .debug$T (6)
+; CHECK: Section: .debug$T (5)
; CHECK: Magic: 0x4
; CHECK: ArgList (0x1000) {
; CHECK: TypeLeafKind: LF_ARGLIST (0x1201)