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: ret i32 1 13 int g1() { 14 A a; 15 return f(&a, &A::vf1); 16 } 17 18 // CHECK: define i32 @_Z2g2v() 19 // CHECK: ret i32 2 20 int g2() { 21 A a; 22 return f(&a, &A::vf2); 23 } 24