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