aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/member-function-pointers.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-23 01:21:21 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-23 01:21:21 +0000
commit0bab0cdab751248ca389a5592bcb70eac5d39260 (patch)
treec94ff2becd4c318148c7ece7e236a6482de526a7 /test/CodeGenCXX/member-function-pointers.cpp
parent5172ed92b42f0bc6a022542a08f7b18af821bcb3 (diff)
Abstract out everything having to do with member pointers into the ABI
class; they should just be completely opaque throughout IR gen now, although I haven't really audited that. Fix a bug apparently inherited from gcc-4.2 where we failed to null-check member data pointers when performing derived-to-base or base-to-derived conversions on them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/member-function-pointers.cpp')
-rw-r--r--test/CodeGenCXX/member-function-pointers.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/CodeGenCXX/member-function-pointers.cpp b/test/CodeGenCXX/member-function-pointers.cpp
index 3e95f39a42..78a571e196 100644
--- a/test/CodeGenCXX/member-function-pointers.cpp
+++ b/test/CodeGenCXX/member-function-pointers.cpp
@@ -38,14 +38,14 @@ void f() {
// CHECK: [[TMP:%.*]] = load %0* @pa, align 8
// CHECK: [[TMPADJ:%.*]] = extractvalue %0 [[TMP]], 1
- // CHECK: [[ADJ:%.*]] = add i64 [[TMPADJ]], 16
+ // CHECK: [[ADJ:%.*]] = add nsw i64 [[TMPADJ]], 16
// CHECK: [[RES:%.*]] = insertvalue %0 [[TMP]], i64 [[ADJ]], 1
// CHECK: store %0 [[RES]], %0* @pc, align 8
pc = pa;
// CHECK: [[TMP:%.*]] = load %0* @pc, align 8
// CHECK: [[TMPADJ:%.*]] = extractvalue %0 [[TMP]], 1
- // CHECK: [[ADJ:%.*]] = sub i64 [[TMPADJ]], 16
+ // CHECK: [[ADJ:%.*]] = sub nsw i64 [[TMPADJ]], 16
// CHECK: [[RES:%.*]] = insertvalue %0 [[TMP]], i64 [[ADJ]], 1
// CHECK: store %0 [[RES]], %0* @pa, align 8
pa = static_cast<void (A::*)()>(pc);