• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -O3 -o - | FileCheck %s
2 struct A {
vf1A3   virtual int vf1() { return 1; }
vf2A4   virtual int vf2() { return 2; }
5 };
6 
f(A * a,int (A::* fp)())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
g1()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
g2()22 int g2() {
23   A a;
24   return f(&a, &A::vf2);
25 }
26