llvm/lld/test/COFF/pgo-pubs.s

# REQUIRES: x86
# RUN: llvm-mc -triple=x86_64-windows-msvc -filetype=obj -o %t.obj %s
# RUN: lld-link %t.obj -out:%t.exe -pdb:%t.pdb -debug -entry:main -subsystem:console
# RUN: llvm-pdbutil dump -publics %t.pdb | FileCheck %s

# Check that there are no __prof[dc] or __covrec public symbols.

# CHECK-NOT: __profd
# CHECK-NOT: __profc
# CHECK-NOT: __covrec
# CHECK: S_PUB32 {{.*}} `main`
# CHECK-NOT: __profd
# CHECK-NOT: __profc
# CHECK-NOT: __covrec


# The following assembly is simplified from this C code:
# int main() {
#   return 0;
# }

# Compiled like so:
# clang-cl -c pgo-pubs.c -fprofile-instr-generate -fcoverage-mapping -clang:-save-temps


	.text
	.intel_syntax noprefix
	.globl	main                            # -- Begin function main
main:                                   # @main
# %bb.0:                                # %entry
	xor	eax, eax
	ret

	.section	.lcovfun$M,"dr",discard,__covrec_DB956436E78DD5FAu
	.globl	__covrec_DB956436E78DD5FAu      # @__covrec_DB956436E78DD5FAu
	.p2align	3
__covrec_DB956436E78DD5FAu:
	.quad	-2624081020897602054            # 0xdb956436e78dd5fa
	.long	9                               # 0x9
	.quad	24                              # 0x18
	.quad	2164039332547799183             # 0x1e08364eb07c288f
	.ascii	"\001\001\000\001\001\b\f\002\002"

	.section	.lcovmap$M,"dr"
	.p2align	3                               # @__llvm_coverage_mapping
.L__llvm_coverage_mapping:
	.long	0                               # 0x0
	.long	40                              # 0x28
	.long	0                               # 0x0
	.long	5                               # 0x5
	.ascii	"\002%\000\031C:\\src\\llvm-project\\build\npgo-pubs.i"

	.section	.lprfc$M,"dw"
	.p2align	3                               # @__profc_main
__profc_main:
	.zero	8

	.section	.lprfd$M,"dw"
	.p2align	3                               # @__profd_main
__profd_main:
	.quad	-2624081020897602054            # 0xdb956436e78dd5fa
	.quad	24                              # 0x18
	.quad	__profc_main
	.quad	main
	.quad	0
	.long	1                               # 0x1
	.zero	4

	.section	.lprfn$M,"dr"
.L__llvm_prf_nm:                        # @__llvm_prf_nm
	.ascii	"\004\000main"