2014-01-15 03:35:09 +08:00
|
|
|
// RUN: %clang_cc1 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
|
2011-01-29 11:18:56 +08:00
|
|
|
|
|
|
|
struct A { int i; };
|
2011-04-18 05:49:47 +08:00
|
|
|
struct B { char j; };
|
2011-01-29 11:18:56 +08:00
|
|
|
struct C : A, B { int k; };
|
|
|
|
|
|
|
|
struct D final : virtual C {
|
|
|
|
D();
|
|
|
|
virtual void f();
|
|
|
|
};
|
|
|
|
|
2015-06-30 01:29:50 +08:00
|
|
|
// CHECK-LABEL: define {{.*}}dereferenceable({{[0-9]+}}) %struct.B* @_Z1fR1D
|
2011-01-29 11:18:56 +08:00
|
|
|
B &f(D &d) {
|
2015-02-28 05:19:58 +08:00
|
|
|
// CHECK-NOT: load i8*, i8**
|
2011-01-29 11:18:56 +08:00
|
|
|
return d;
|
|
|
|
}
|