Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -O3 -o - | FileCheck %s
      2 struct A {
      3   virtual int vf1() { return 1; }
      4   virtual int vf2() { return 2; }
      5 };
      6 
      7 int f(A* a, int (A::*fp)()) {
      8   return (a->*fp)();
      9 }
     10 
     11 // CHECK: define i32 @_Z2g1v()
     12 // CHECK-NEXT: {{.*}}:
     13 // CHECK-NEXT: ret i32 1
     14 int g1() {
     15   A a;
     16   return f(&a, &A::vf1);
     17 }
     18 
     19 // CHECK: define i32 @_Z2g2v()
     20 // CHECK-NEXT: {{.*}}:
     21 // CHECK-NEXT: ret i32 2
     22 int g2() {
     23   A a;
     24   return f(&a, &A::vf2);
     25 }
     26