61 lines · plain
1REQUIRES: x86-registered-target2RUN: sancov -print-coverage-pcs %p/Inputs/test-linux_x86_64 | FileCheck %s --check-prefix=LINUX3RUN: llvm-objdump -d %p/Inputs/test-windows_x86_64 | FileCheck %s --check-prefix=DISAS_WIN4RUN: sancov -print-coverage-pcs %p/Inputs/test-windows_x86_64 | FileCheck %s --check-prefix=WINDOWS5RUN: sancov -print-coverage-pcs %p/Inputs/test-darwin_x86_64 | FileCheck %s --check-prefix=DARWIN6 7LINUX: 0x4e132b8LINUX: 0x4e14729LINUX: 0x4e14c210LINUX: 0x4e152011LINUX: 0x4e155312LINUX: 0x4e158613LINUX: 0x4e163514LINUX: 0x4e169015LINUX: 0x4e178c16 17The coverage PCs should be equal to the return address of the call minus one. A18direct call is five bytes, so the coverage PCs should be call PC plus four.19 20DISAS_WIN: 14000103f: {{.*}} callq {{.*}} <__sanitizer_cov>21WINDOWS: 0x14000104322DISAS_WIN: 140001074: {{.*}} callq {{.*}} <__sanitizer_cov>23WINDOWS: 0x14000107824DISAS_WIN: 1400011df: {{.*}} callq {{.*}} <__sanitizer_cov>25WINDOWS: 0x1400011e326DISAS_WIN: 140001227: {{.*}} callq {{.*}} <__sanitizer_cov>27WINDOWS: 0x14000122b28DISAS_WIN: 14000147e: {{.*}} callq {{.*}} <__sanitizer_cov>29WINDOWS: 0x14000148230DISAS_WIN: 1400015b6: {{.*}} callq {{.*}} <__sanitizer_cov>31WINDOWS: 0x1400015ba32DISAS_WIN: 140001629: {{.*}} callq {{.*}} <__sanitizer_cov>33WINDOWS: 0x14000162d34DISAS_WIN: 140001664: {{.*}} callq {{.*}} <__sanitizer_cov>35WINDOWS: 0x14000166836DISAS_WIN: 1400016f2: {{.*}} callq {{.*}} <__sanitizer_cov>37WINDOWS: 0x1400016f638 39CHECK: 0x4e132b40CHECK: 0x4e147241CHECK: 0x4e14c242CHECK: 0x4e152043CHECK: 0x4e155344CHECK: 0x4e158645CHECK: 0x4e163546CHECK: 0x4e169047CHECK: 0x4e178c48 49DARWIN: 0x10000152750DARWIN: 0x10000166851DARWIN: 0x1000016b752DARWIN: 0x1000016dd53DARWIN: 0x10000179d54DARWIN: 0x1000017cc55DARWIN: 0x10000189d56DARWIN: 0x1000018e057DARWIN: 0x10000190658DARWIN: 0x1000019dc59DARWIN: 0x100001a2860 61