forked from OSchip/llvm-project
parent
7eb0ccaa58
commit
2adc9abd51
|
@ -34,6 +34,11 @@ void f() {
|
|||
// CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = add i64 {{.*}}, 16
|
||||
// CHECK: store i64 [[ADJ]], i64* getelementptr inbounds (%0* @pc, i32 0, i32 1)
|
||||
pc = pa;
|
||||
|
||||
// CHECK: store i64 {{.*}}, i64* getelementptr inbounds (%0* @pa, i32 0, i32 0)
|
||||
// CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = sub i64 {{.*}}, 16
|
||||
// CHECK: store i64 [[ADJ]], i64* getelementptr inbounds (%0* @pa, i32 0, i32 1)
|
||||
pa = static_cast<void (A::*)()>(pc);
|
||||
}
|
||||
|
||||
void f2() {
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
// RUN: clang-cc %s -emit-llvm -o - -triple=x86_64-apple-darwin9 | FileCheck %s
|
||||
|
||||
struct A { int a; };
|
||||
struct B { int b; };
|
||||
struct C : B, A { };
|
||||
|
||||
int A::*pa;
|
||||
int C::*pc;
|
||||
|
||||
void f() {
|
||||
// CHECK: store i64 -1, i64* @pa
|
||||
pa = 0;
|
||||
|
||||
// CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = add i64 {{.*}}, 4
|
||||
// CHECK: store i64 [[ADJ]], i64* @pc
|
||||
pc = pa;
|
||||
|
||||
// CHECK: [[ADJ:%[a-zA-Z0-9\.]+]] = sub i64 {{.*}}, 4
|
||||
// CHECK: store i64 [[ADJ]], i64* @pa
|
||||
pa = static_cast<int A::*>(pc);
|
||||
}
|
Loading…
Reference in New Issue