Peter Collingbourne | 396943a | 2017-07-31 22:35:33 +0000 | [diff] [blame] | 1 | // Only output llvm.assume(llvm.type.test()) if cfi-vcall is disabled and whole-program-vtables is enabled |
| 2 | // RUN: %clang_cc1 -flto -fvisibility hidden -fsanitize=cfi-vcall -fwhole-program-vtables -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=CFI %s |
| 3 | // RUN: %clang_cc1 -flto -fvisibility hidden -fwhole-program-vtables -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=NOCFI %s |
| 4 | |
| 5 | struct S1 { |
| 6 | virtual void f(); |
| 7 | }; |
| 8 | |
| 9 | // CHECK: define{{.*}}s1f |
| 10 | // CHECK: llvm.type.test |
| 11 | // CFI-NOT: llvm.assume |
| 12 | // NOCFI: llvm.assume |
| 13 | void s1f(S1 *s1) { |
| 14 | s1->f(); |
| 15 | } |