summaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/member-function-pointers.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-10-03 15:43:24 +0000
committerAnders Carlsson <andersca@mac.com>2009-10-03 15:43:24 +0000
commita024d17048cd7fb71bfaee3876993ef2c27057be (patch)
treedf83b3e40839fd0238fb89613368ab4e3773269a /test/CodeGenCXX/member-function-pointers.cpp
parent2c51f092e4d75550f51b4dd6f831aa5e5e6ae928 (diff)
downloadclang-a024d17048cd7fb71bfaee3876993ef2c27057be.tar.gz
Teach AggExprEmitter about pointers to member functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83266 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/member-function-pointers.cpp')
-rw-r--r--test/CodeGenCXX/member-function-pointers.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/CodeGenCXX/member-function-pointers.cpp b/test/CodeGenCXX/member-function-pointers.cpp
index 138ba173a3..57e2e7f2d6 100644
--- a/test/CodeGenCXX/member-function-pointers.cpp
+++ b/test/CodeGenCXX/member-function-pointers.cpp
@@ -31,7 +31,21 @@ void f() {
vpa = 0;
// CHECK: store i64 %0, i64* getelementptr inbounds (%0* @pc, i32 0, i32 0)
- // CHECK: [[ADJ:%[a-zA-Z0-9]+]] = add i64 %1, 16
+ // CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = add i64 %1, 16
// CHECK: store i64 [[ADJ]], i64* getelementptr inbounds (%0* @pc, i32 0, i32 1)
pc = pa;
}
+
+void f2() {
+ // CHECK: [[pa2ptr:%[a-zA-Z0-9\.]+]] = getelementptr inbounds %0* %pa2, i32 0, i32 0
+ // CHECK: store i64 ptrtoint (void ()* @_ZN1A1fEv to i64), i64* [[pa2ptr]]
+ // CHECK: [[pa2adj:%[a-zA-Z0-9\.]+]] = getelementptr inbounds %0* %pa2, i32 0, i32 1
+ // CHECK: store i64 0, i64* [[pa2adj]]
+ void (A::*pa2)() = &A::f;
+
+ // CHECK: [[pa3ptr:%[a-zA-Z0-9\.]+]] = getelementptr inbounds %0* %pa3, i32 0, i32 0
+ // CHECK: store i64 1, i64* [[pa3ptr]]
+ // CHECK: [[pa3adj:%[a-zA-Z0-9\.]+]] = getelementptr inbounds %0* %pa3, i32 0, i32 1
+ // CHECK: store i64 0, i64* [[pa2adj]]
+ void (A::*pa3)() = &A::vf;
+}