1 // RUN: %clang_cc1 -triple %itanium_abi_triple -fvisibility hidden -fms-extensions -fsanitize=cfi-vcall -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=NOBL %s 2 // RUN: echo "type:std::*" > %t.txt 3 // RUN: %clang_cc1 -triple %itanium_abi_triple -fvisibility hidden -fms-extensions -fsanitize=cfi-vcall -fsanitize-blacklist=%t.txt -emit-llvm -o - %s | FileCheck --check-prefix=CHECK --check-prefix=NOSTD %s 4 5 struct S1 { 6 virtual void f(); 7 }; 8 9 namespace std { 10 11 struct S2 { 12 virtual void f(); 13 }; 14 15 } 16 17 // CHECK: define{{.*}}s1f 18 // NOBL: llvm.type.test 19 // NOSTD: llvm.type.test 20 void s1f(S1 *s1) { 21 s1->f(); 22 } 23 24 // CHECK: define{{.*}}s2f 25 // NOBL: llvm.type.test 26 // NOSTD-NOT: llvm.type.test 27 void s2f(std::S2 *s2) { 28 s2->f(); 29 } 30