xref: /llvm-project/lld/test/COFF/pgo-pubs.s (revision 12dd8df38b5da0e7bbbcc842308a251ce11800d5)
1# REQUIRES: x86
2# RUN: llvm-mc -triple=x86_64-windows-msvc -filetype=obj -o %t.obj %s
3# RUN: lld-link %t.obj -out:%t.exe -pdb:%t.pdb -debug -entry:main -subsystem:console
4# RUN: llvm-pdbutil dump -publics %t.pdb | FileCheck %s
5
6# Check that there are no __prof[dc] or __covrec public symbols.
7
8# CHECK-NOT: __profd
9# CHECK-NOT: __profc
10# CHECK-NOT: __covrec
11# CHECK: S_PUB32 {{.*}} `main`
12# CHECK-NOT: __profd
13# CHECK-NOT: __profc
14# CHECK-NOT: __covrec
15
16
17# The following assembly is simplified from this C code:
18# int main() {
19#   return 0;
20# }
21
22# Compiled like so:
23# clang-cl -c pgo-pubs.c -fprofile-instr-generate -fcoverage-mapping -clang:-save-temps
24
25
26	.text
27	.intel_syntax noprefix
28	.globl	main                            # -- Begin function main
29main:                                   # @main
30# %bb.0:                                # %entry
31	xor	eax, eax
32	ret
33
34	.section	.lcovfun$M,"dr",discard,__covrec_DB956436E78DD5FAu
35	.globl	__covrec_DB956436E78DD5FAu      # @__covrec_DB956436E78DD5FAu
36	.p2align	3
37__covrec_DB956436E78DD5FAu:
38	.quad	-2624081020897602054            # 0xdb956436e78dd5fa
39	.long	9                               # 0x9
40	.quad	24                              # 0x18
41	.quad	2164039332547799183             # 0x1e08364eb07c288f
42	.ascii	"\001\001\000\001\001\b\f\002\002"
43
44	.section	.lcovmap$M,"dr"
45	.p2align	3                               # @__llvm_coverage_mapping
46.L__llvm_coverage_mapping:
47	.long	0                               # 0x0
48	.long	40                              # 0x28
49	.long	0                               # 0x0
50	.long	5                               # 0x5
51	.ascii	"\002%\000\031C:\\src\\llvm-project\\build\npgo-pubs.i"
52
53	.section	.lprfc$M,"dw"
54	.p2align	3                               # @__profc_main
55__profc_main:
56	.zero	8
57
58	.section	.lprfd$M,"dw"
59	.p2align	3                               # @__profd_main
60__profd_main:
61	.quad	-2624081020897602054            # 0xdb956436e78dd5fa
62	.quad	24                              # 0x18
63	.quad	__profc_main
64	.quad	main
65	.quad	0
66	.long	1                               # 0x1
67	.zero	4
68
69	.section	.lprfn$M,"dr"
70.L__llvm_prf_nm:                        # @__llvm_prf_nm
71	.ascii	"\004\000main"
72