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
s1f(S1 * s1)13 void s1f(S1 *s1) {
14   s1->f();
15 }
16