llvm-project
60 строк · 1.8 Кб
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 0x1FF
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 0x1FF # 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