1# Check that unknown symbol subsections are ignored with a warning, and a PDB 2# is produced anyway. 3 4# REQUIRES: x86 5# RUN: llvm-mc -triple=i386-pc-win32 -filetype=obj -o %t.obj %s 6# RUN: lld-link -safeseh:no -subsystem:console -debug -nodefaultlib -entry:foo -out:%t.exe -pdb:%t.pdb %t.obj 2>&1 | FileCheck %s --check-prefix=WARNING 7# RUN: llvm-pdbutil dump -symbols %t.pdb | FileCheck %s 8 9# WARNING-NOT: ignoring unknown 10# WARNING: ignoring unknown debug$S subsection kind 0xFF 11# WARNING-NOT: ignoring unknown 12 13# CHECK: Symbols 14# CHECK: 4 | S_COMPILE3 [size = 52] 15# CHECK: machine = intel x86-x64, Ver = clang version SENTINEL, language = c 16 17.text 18_foo: 19ret 20 21.global _foo 22 23.section .debug$S,"dr" 24 .p2align 2 25 .long 4 # Debug section magic 26 .long 0xF1 # Symbol subsection 27 .long .Ltmp6-.Ltmp5 # Subsection size 28.Ltmp5: 29 .short .Ltmp8-.Ltmp7 # Record length 30.Ltmp7: 31 .short 4412 # Record kind: S_COMPILE3 32 .long 0 # Flags and language 33 .short 208 # CPUType 34 .short 9 # Frontend version 35 .short 0 36 .short 0 37 .short 0 38 .short 9000 # Backend version 39 .short 0 40 .short 0 41 .short 0 42 .asciz "clang version SENTINEL" # Null-terminated compiler version string 43 .p2align 2 44.Ltmp8: 45.Ltmp6: 46 .long 0xFF # Unknown subsection kind 47 .long 4 # Subsection size 48 .long 0 49 .long 0x800000F1 # Unknown subsection kind 50 .long 4 # Subsection size 51 .long 0 52 .long 0x800000F2 # Unknown subsection kind 53 .long 4 # Subsection size 54 .long 0 55 .long 0x800000F3 # Unknown subsection kind 56 .long 4 # Subsection size 57 .long 0 58 .long 0x800000F4 # Unknown subsection kind 59 .long 4 # Subsection size 60 .long 0 61