1 // FIXME: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - -std=c++11 %s | FileCheck %s
2 // RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - -std=c++11 %s | FileCheck -check-prefix=CHECK-ASSIGN %s
3 // RUN: %clang_cc1 -emit-llvm -triple %itanium_abi_triple -o - -std=c++11 %s | FileCheck -check-prefix=CHECK-CTOR %s
29 // CHECK: call void @_ZN1HC1EOS_
30 H
t(static_cast<H
&&>(s
));
56 // CHECK: call {{.*}} @_ZN1DaSEOS_
65 // CHECK: define void @_Z1hv() nounwind {
68 // CHECK: call void @llvm.memcpy.
70 // CHECK-NEXT: ret void
75 struct VirtualWithEmptyBase
: Empty
{
79 // CHECK: define void @_Z25move_VirtualWithEmptyBaseR20VirtualWithEmptyBaseS0_
80 void move_VirtualWithEmptyBase(VirtualWithEmptyBase
&x
, VirtualWithEmptyBase
&y
) {
81 // CHECK: call {{.*}} @_ZN20VirtualWithEmptyBaseaSEOS_
82 x
= static_cast<VirtualWithEmptyBase
&&>(y
);
83 // CHECK-NEXT: ret void
86 // move assignment ops
88 // CHECK-ASSIGN: define linkonce_odr {{.*}} @_ZN1DaSEOS_
89 // CHECK-ASSIGN: call {{.*}} @_ZN1CaSEOS_
90 // CHECK-ASSIGN: call {{.*}} @_ZN1AaSEOS_
91 // CHECK-ASSIGN: call {{.*}} @_ZN1BaSEOS_
93 // CHECK-ASSIGN: br i1
94 // CHECK-ASSIGN: call {{.*}} @_ZN1AaSEOS_
96 // VirtualWithEmptyBase move assignment operatpr
97 // CHECK-ASSIGN: define linkonce_odr {{.*}} @_ZN20VirtualWithEmptyBaseaSEOS_
98 // CHECK-ASSIGN: store
99 // CHECK-ASSIGN-NEXT: store
100 // CHECK-ASSIGN-NOT: call
103 // CHECK-ASSIGN: define linkonce_odr {{.*}} @_ZN1CaSEOS_
104 // CHECK-ASSIGN: call {{.*}} @_ZN1AaSEOS_
108 // CHECK-CTOR: define linkonce_odr {{.*}} @_ZN1HC2EOS_
109 // CHECK-CTOR: call {{.*}} @_ZN1GC2EOS_
110 // CHECK-CTOR: call {{.*}} @_ZN1FC1EOS_
111 // CHECK-CTOR: call {{.*}} @_ZN1EC1EOS_
113 // CHECK-CTOR: call {{.*}} @_ZN1FC1EOS_
116 // CHECK-CTOR: define linkonce_odr {{.*}} @_ZN1GC2EOS_
117 // CHECK-CTOR: call {{.*}} @_ZN1EC1EOS_