| # 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" |