Home | History | Annotate | Download | only in CodeGenCXX
      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