diff options
author | John McCall <rjmccall@apple.com> | 2010-08-23 01:21:21 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-08-23 01:21:21 +0000 |
commit | 0bab0cdab751248ca389a5592bcb70eac5d39260 (patch) | |
tree | c94ff2becd4c318148c7ece7e236a6482de526a7 /test/CodeGenCXX/member-function-pointers.cpp | |
parent | 5172ed92b42f0bc6a022542a08f7b18af821bcb3 (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.cpp | 4 |
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); |