| Daniel Dunbar | 8fbe78f | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 %s -emit-llvm -o - -triple=x86_64-apple-darwin9 | FileCheck %s |
| Eli Friedman | 2adc9ab | 2009-11-27 04:56:40 +0000 | [diff] [blame] | 2 | |
| 3 | struct A { int a; }; |
| 4 | struct B { int b; }; |
| 5 | struct C : B, A { }; |
| 6 | |
| 7 | int A::*pa; |
| 8 | int C::*pc; |
| 9 | |
| 10 | void f() { |
| 11 | // CHECK: store i64 -1, i64* @pa |
| 12 | pa = 0; |
| 13 | |
| 14 | // CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = add i64 {{.*}}, 4 |
| 15 | // CHECK: store i64 [[ADJ]], i64* @pc |
| 16 | pc = pa; |
| 17 | |
| 18 | // CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = sub i64 {{.*}}, 4 |
| 19 | // CHECK: store i64 [[ADJ]], i64* @pa |
| 20 | pa = static_cast<int A::*>(pc); |
| 21 | } |