diff options
author | Julian Lettner <jlettner@apple.com> | 2019-02-12 00:37:40 +0000 |
---|---|---|
committer | Julian Lettner <jlettner@apple.com> | 2019-02-12 00:37:40 +0000 |
commit | 5ca1ab061abf9c1e77900e2d1aa0584e15bf6127 (patch) | |
tree | cab81ed8acc3b6132bcf1f988061d711432a4505 | |
parent | 1376a8e27636c44b56fdc9893431778b7563dd25 (diff) | |
download | compiler-rt-5ca1ab061abf9c1e77900e2d1aa0584e15bf6127.tar.gz |
[libFuzzer] Make coverage.test work on ARM64
Summary:
This test instruments the following code with coverage, runs the fuzzer
once, and asserts that there are uncovered PCs. The ARM64 backend
optimizes this code using the `csel` (Conditional select) instruction,
which removes all branching from the resulting machine code. The test
then fails because we do not have any uncovered PCs. The easiest
solution for now is to turn off optimization for the DSOs used in this
test.
```
int DSO1(int a) {
if (a < 123456)
return 0;
return 1;
}
```
rdar://47646400
Reviewers: kcc
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D58087
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@353780 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | test/fuzzer/coverage.test | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/test/fuzzer/coverage.test b/test/fuzzer/coverage.test index 08c0c825a..db15c7a66 100644 --- a/test/fuzzer/coverage.test +++ b/test/fuzzer/coverage.test @@ -1,8 +1,8 @@ # FIXME: Disabled on Windows because -fPIC cannot be used to compile for Windows. UNSUPPORTED: windows RUN: %cpp_compiler -mllvm -use-unknown-locations=Disable %S/NullDerefTest.cpp -o %t-NullDerefTest -RUN: %cpp_compiler -mllvm -use-unknown-locations=Disable %S/DSO1.cpp -fPIC %ld_flags_rpath_so1 -shared -o %dynamiclib1 -RUN: %cpp_compiler -mllvm -use-unknown-locations=Disable %S/DSO2.cpp -fPIC %ld_flags_rpath_so2 -shared -o %dynamiclib2 +RUN: %cpp_compiler -mllvm -use-unknown-locations=Disable %S/DSO1.cpp -fPIC %ld_flags_rpath_so1 -O0 -shared -o %dynamiclib1 +RUN: %cpp_compiler -mllvm -use-unknown-locations=Disable %S/DSO2.cpp -fPIC %ld_flags_rpath_so2 -O0 -shared -o %dynamiclib2 RUN: %cpp_compiler -mllvm -use-unknown-locations=Disable %S/DSOTestMain.cpp %S/DSOTestExtra.cpp %ld_flags_rpath_exe1 %ld_flags_rpath_exe2 -o %t-DSOTest CHECK: COVERAGE: @@ -11,10 +11,10 @@ RUN: not %run %t-NullDerefTest -print_coverage=1 2>&1 | FileCheck %s RUN: %run %t-DSOTest -print_coverage=1 -runs=0 2>&1 | FileCheck %s --check-prefix=DSO DSO: COVERAGE: -DSO-DAG: COVERED_FUNC:{{.*}}1{{.*}} -DSO-DAG: COVERED_FUNC:{{.*}}2{{.*}} +DSO-DAG: COVERED_FUNC:{{.*}}DSO1 +DSO-DAG: COVERED_FUNC:{{.*}}DSO2 DSO-DAG: COVERED_FUNC:{{.*}}LLVMFuzzerTestOneInput{{.*}}DSOTestMain -DSO-DAG: UNCOVERED_PC:{{.*}}1 -DSO-DAG: UNCOVERED_PC:{{.*}}2 +DSO-DAG: UNCOVERED_PC:{{.*}}DSO1 +DSO-DAG: UNCOVERED_PC:{{.*}}DSO2 DSO-DAG: UNCOVERED_PC:{{.*}}DSOTestMain DSO-DAG: UNCOVERED_FUNC:{{.*}}Uncovered1 |