forked from OSchip/llvm-project
Add 'nonnull' parameter or return attribute when producing an llvm pointer type in a function type where the C++ type is a reference. Update the tests.
llvm-svn: 209723
This commit is contained in:
parent
a09b70579a
commit
9b46eb8112
|
@ -1200,6 +1200,9 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI,
|
|||
llvm_unreachable("Invalid ABI kind for return argument");
|
||||
}
|
||||
|
||||
if (RetTy->isReferenceType())
|
||||
RetAttrs.addAttribute(llvm::Attribute::NonNull);
|
||||
|
||||
if (RetAttrs.hasAttributes())
|
||||
PAL.push_back(llvm::
|
||||
AttributeSet::get(getLLVMContext(),
|
||||
|
@ -1288,6 +1291,9 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI,
|
|||
}
|
||||
}
|
||||
|
||||
if (ParamType->isReferenceType())
|
||||
Attrs.addAttribute(llvm::Attribute::NonNull);
|
||||
|
||||
if (Attrs.hasAttributes())
|
||||
PAL.push_back(llvm::AttributeSet::get(getLLVMContext(), Index, Attrs));
|
||||
++Index;
|
||||
|
|
|
@ -26,12 +26,12 @@ struct X4 {
|
|||
struct X5 : X0, X4 { };
|
||||
|
||||
void test(X2 x2, X3 x3, X5 x5) {
|
||||
// CHECK: define linkonce_odr void @_ZN2X2C1ERKS_(%struct.X2* %this, %struct.X2*) unnamed_addr
|
||||
// CHECK: define linkonce_odr void @_ZN2X2C1ERKS_(%struct.X2* %this, %struct.X2* nonnull) unnamed_addr
|
||||
// CHECK: call void @_ZN2X2C2ERKS_({{.*}}) [[NUW:#[0-9]+]]
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
X2 x2a(x2);
|
||||
// CHECK: define linkonce_odr void @_ZN2X3C1ERKS_(%struct.X3* %this, %struct.X3*) unnamed_addr
|
||||
// CHECK: define linkonce_odr void @_ZN2X3C1ERKS_(%struct.X3* %this, %struct.X3* nonnull) unnamed_addr
|
||||
// CHECK: call void @_ZN2X3C2ERKS_({{.*}}) [[NUW]]
|
||||
// CHECK-NEXT: ret void
|
||||
// CHECK-NEXT: }
|
||||
|
|
|
@ -106,7 +106,7 @@ namespace test_block_in_lambda {
|
|||
// CHECK: [[TO_DESTROY:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5
|
||||
// CHECK: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5
|
||||
// CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[LAMBDA_T]]* [[THIS]], i32 0, i32 0
|
||||
// CHECK-NEXT: call void @_ZN20test_block_in_lambda1AC1ERKS0_({{.*}}* [[T0]], {{.*}}* [[T1]])
|
||||
// CHECK-NEXT: call void @_ZN20test_block_in_lambda1AC1ERKS0_({{.*}}* [[T0]], {{.*}}* nonnull [[T1]])
|
||||
// CHECK-NEXT: [[T0:%.*]] = bitcast [[BLOCK_T]]* [[BLOCK]] to void ()*
|
||||
// CHECK-NEXT: call void @_ZN20test_block_in_lambda9takeBlockEU13block_pointerFvvE(void ()* [[T0]])
|
||||
// CHECK-NEXT: call void @_ZN20test_block_in_lambda1AD1Ev({{.*}}* [[TO_DESTROY]])
|
||||
|
|
|
@ -164,7 +164,7 @@ namespace test5 {
|
|||
|
||||
// CHECK-NOT: br
|
||||
// CHECK: [[CAPTURE:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5
|
||||
// CHECK-NEXT: call void @_ZN5test51AC1ERKS0_([[A]]* [[CAPTURE]], [[A]]* [[X]])
|
||||
// CHECK-NEXT: call void @_ZN5test51AC1ERKS0_([[A]]* [[CAPTURE]], [[A]]* nonnull [[X]])
|
||||
// CHECK-NEXT: store i1 true, i1* [[CLEANUP_ACTIVE]]
|
||||
// CHECK-NEXT: bitcast [[BLOCK_T]]* [[BLOCK]] to void ()*
|
||||
// CHECK-NEXT: br label
|
||||
|
|
|
@ -357,7 +357,7 @@ void downcast_pointer(B *b) {
|
|||
// CHECK-NEXT: br i1 [[AND]]
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define void @_Z18downcast_referenceR1B(%class.B* %b)
|
||||
// CHECK-LABEL: define void @_Z18downcast_referenceR1B(%class.B* nonnull %b)
|
||||
void downcast_reference(B &b) {
|
||||
(void) static_cast<C&>(b);
|
||||
// Alignment check from EmitTypeCheck(TCK_DowncastReference, ...)
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace test3 {
|
|||
// CHECK-NEXT: [[T0:%.*]] = load [[B]]** [[X]]
|
||||
// CHECK-NEXT: [[BOOL:%.*]] = call zeroext i1 @_ZN5test31BcvbEv([[B]]* [[T0]])
|
||||
// CHECK-NEXT: br i1 [[BOOL]]
|
||||
// CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* [[RESULT:%.*]], [[B]]* [[T0]])
|
||||
// CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* [[RESULT:%.*]], [[B]]* nonnull [[T0]])
|
||||
// CHECK-NEXT: br label
|
||||
// CHECK: call void @_ZN5test31BC1Ev([[B]]* [[RESULT]])
|
||||
// CHECK-NEXT: br label
|
||||
|
@ -97,7 +97,7 @@ namespace test3 {
|
|||
// CHECK-NEXT: call void @_ZN5test312test1_helperEv([[B]]* sret [[TEMP]])
|
||||
// CHECK-NEXT: [[BOOL:%.*]] = call zeroext i1 @_ZN5test31BcvbEv([[B]]* [[TEMP]])
|
||||
// CHECK-NEXT: br i1 [[BOOL]]
|
||||
// CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* [[RESULT:%.*]], [[B]]* [[TEMP]])
|
||||
// CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* [[RESULT:%.*]], [[B]]* nonnull [[TEMP]])
|
||||
// CHECK-NEXT: br label
|
||||
// CHECK: call void @_ZN5test31BC1Ev([[B]]* [[RESULT]])
|
||||
// CHECK-NEXT: br label
|
||||
|
|
|
@ -532,10 +532,10 @@ namespace InitFromConst {
|
|||
// CHECK: call void @_ZN13InitFromConst7consumeIdEEvT_(double 4.300000e+00)
|
||||
consume(d);
|
||||
|
||||
// CHECK: call void @_ZN13InitFromConst7consumeIRKNS_1SEEEvT_(%"struct.InitFromConst::S"* @_ZN13InitFromConstL1sE)
|
||||
// CHECK: call void @_ZN13InitFromConst7consumeIRKNS_1SEEEvT_(%"struct.InitFromConst::S"* nonnull @_ZN13InitFromConstL1sE)
|
||||
consume<const S&>(s);
|
||||
|
||||
// CHECK: call void @_ZN13InitFromConst7consumeIRKNS_1SEEEvT_(%"struct.InitFromConst::S"* @_ZN13InitFromConstL1sE)
|
||||
// CHECK: call void @_ZN13InitFromConst7consumeIRKNS_1SEEEvT_(%"struct.InitFromConst::S"* nonnull @_ZN13InitFromConstL1sE)
|
||||
consume<const S&>(r);
|
||||
|
||||
// CHECK: call void @_ZN13InitFromConst7consumeIPKNS_1SEEEvT_(%"struct.InitFromConst::S"* @_ZN13InitFromConstL1sE)
|
||||
|
|
|
@ -54,7 +54,6 @@ void f3() {
|
|||
// CHECK-NEXT: call x86_thiscallcc void @_ZN5Test3C1Ev(%class.Test3* %var)
|
||||
var.Test3::Test3();
|
||||
|
||||
// CHECK-NEXT: call x86_thiscallcc void @_ZN5Test3C1ERKS_(%class.Test3* %var, %class.Test3* %var2)
|
||||
// CHECK-NEXT: call x86_thiscallcc void @_ZN5Test3C1ERKS_(%class.Test3* %var, %class.Test3* nonnull %var2)
|
||||
var.Test3::Test3(var2);
|
||||
}
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ template<typename T> struct X;
|
|||
|
||||
// Make sure that the instantiated constructor initializes start and
|
||||
// end properly.
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1XIiEC2ERKS0_(%struct.X* %this, %struct.X* %other) unnamed_addr
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1XIiEC2ERKS0_(%struct.X* %this, %struct.X* nonnull %other) unnamed_addr
|
||||
// CHECK: {{store.*null}}
|
||||
// CHECK: {{store.*null}}
|
||||
// CHECK: ret
|
||||
|
|
|
@ -21,10 +21,10 @@ struct A {
|
|||
A::A(struct Undeclared &ref) : mem(0) {}
|
||||
|
||||
// Check that delegation works.
|
||||
// CHECK-LABEL: define void @_ZN1AC2ER10Undeclared(%struct.A* %this, %struct.Undeclared* %ref) unnamed_addr
|
||||
// CHECK-LABEL: define void @_ZN1AC2ER10Undeclared(%struct.A* %this, %struct.Undeclared* nonnull %ref) unnamed_addr
|
||||
// CHECK: call void @_ZN6MemberC1Ei(
|
||||
|
||||
// CHECK-LABEL: define void @_ZN1AC1ER10Undeclared(%struct.A* %this, %struct.Undeclared* %ref) unnamed_addr
|
||||
// CHECK-LABEL: define void @_ZN1AC1ER10Undeclared(%struct.A* %this, %struct.Undeclared* nonnull %ref) unnamed_addr
|
||||
// CHECK: call void @_ZN1AC2ER10Undeclared(
|
||||
|
||||
A::A(ValueClass v) : mem(v.y - v.x) {}
|
||||
|
@ -43,11 +43,11 @@ struct B : A {
|
|||
|
||||
B::B(struct Undeclared &ref) : A(ref), mem(1) {}
|
||||
|
||||
// CHECK-LABEL: define void @_ZN1BC2ER10Undeclared(%struct.B* %this, %struct.Undeclared* %ref) unnamed_addr
|
||||
// CHECK-LABEL: define void @_ZN1BC2ER10Undeclared(%struct.B* %this, %struct.Undeclared* nonnull %ref) unnamed_addr
|
||||
// CHECK: call void @_ZN1AC2ER10Undeclared(
|
||||
// CHECK: call void @_ZN6MemberC1Ei(
|
||||
|
||||
// CHECK-LABEL: define void @_ZN1BC1ER10Undeclared(%struct.B* %this, %struct.Undeclared* %ref) unnamed_addr
|
||||
// CHECK-LABEL: define void @_ZN1BC1ER10Undeclared(%struct.B* %this, %struct.Undeclared* nonnull %ref) unnamed_addr
|
||||
// CHECK: call void @_ZN1BC2ER10Undeclared(
|
||||
|
||||
|
||||
|
|
|
@ -39,4 +39,4 @@ int main()
|
|||
}
|
||||
|
||||
// CHECK: call i32 (i32)* (%struct.A*)* @_ZN1AcvPFiiEEv
|
||||
// CHECK: call i32 (i32)* (%struct.B*)* @_ZN1BcvRFiiEEv
|
||||
// CHECK: call nonnull i32 (i32)* (%struct.B*)* @_ZN1BcvRFiiEEv
|
||||
|
|
|
@ -93,5 +93,4 @@ int main() {
|
|||
dstY.pr();
|
||||
}
|
||||
|
||||
// CHECK: define linkonce_odr %struct.X* @_ZN1XaSERKS_
|
||||
|
||||
// CHECK: define linkonce_odr nonnull %struct.X* @_ZN1XaSERKS_
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace no_elide_base {
|
|||
Derived(const Other &O);
|
||||
};
|
||||
|
||||
// CHECK: define {{.*}} @_ZN13no_elide_base7DerivedC1ERKNS_5OtherE(%"struct.no_elide_base::Derived"* returned %this, %"struct.no_elide_base::Other"* %O) unnamed_addr
|
||||
// CHECK: define {{.*}} @_ZN13no_elide_base7DerivedC1ERKNS_5OtherE(%"struct.no_elide_base::Derived"* returned %this, %"struct.no_elide_base::Other"* nonnull %O) unnamed_addr
|
||||
Derived::Derived(const Other &O)
|
||||
// CHECK: call {{.*}} @_ZNK13no_elide_base5OthercvNS_4BaseEEv
|
||||
// CHECK: call {{.*}} @_ZN13no_elide_base4BaseC2ERKS0_
|
||||
|
@ -74,4 +74,3 @@ namespace PR12139 {
|
|||
return a.value;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
struct A { virtual void a(); };
|
||||
A x(A& y) { return y; }
|
||||
|
||||
// CHECK: define linkonce_odr {{.*}} @_ZN1AC1ERKS_(%struct.A* {{.*}}%this, %struct.A*) unnamed_addr
|
||||
// CHECK: define linkonce_odr {{.*}} @_ZN1AC1ERKS_(%struct.A* {{.*}}%this, %struct.A* nonnull) unnamed_addr
|
||||
// CHECK: store i8** getelementptr inbounds ([3 x i8*]* @_ZTV1A, i64 0, i64 2)
|
||||
|
|
|
@ -21,7 +21,7 @@ struct P {
|
|||
};
|
||||
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1XC1ERKS_(%struct.X* %this, %struct.X*) unnamed_addr
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1XC1ERKS_(%struct.X* %this, %struct.X* nonnull) unnamed_addr
|
||||
struct X : M, N, P { // ...
|
||||
X() : f1(1.0), d1(2.0), i1(3), name("HELLO"), bf1(0xff), bf2(0xabcd),
|
||||
au_i1(1234), au1_4("MASKED") {}
|
||||
|
@ -136,7 +136,7 @@ void f(B b1) {
|
|||
B b2 = b1;
|
||||
}
|
||||
|
||||
// CHECK: define linkonce_odr [[A:%.*]]* @_ZN12rdar138169401AaSERKS0_(
|
||||
// CHECK: define linkonce_odr nonnull [[A:%.*]]* @_ZN12rdar138169401AaSERKS0_(
|
||||
// CHECK: [[THIS:%.*]] = load [[A]]**
|
||||
// CHECK-NEXT: [[T0:%.*]] = getelementptr inbounds [[A]]* [[THIS]], i32 0, i32 1
|
||||
// CHECK-NEXT: [[OTHER:%.*]] = load [[A]]**
|
||||
|
@ -158,7 +158,7 @@ void f(B b1) {
|
|||
// CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* [[T4]], i8* [[T5]], i64 8, i32 8, i1 false)
|
||||
// CHECK-NEXT: ret void
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN6PR66281BC2ERKS0_(%"struct.PR6628::B"* %this, %"struct.PR6628::B"*) unnamed_addr
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN6PR66281BC2ERKS0_(%"struct.PR6628::B"* %this, %"struct.PR6628::B"* nonnull) unnamed_addr
|
||||
// CHECK: call void @_ZN6PR66281TC1Ev
|
||||
// CHECK: call void @_ZN6PR66281TC1Ev
|
||||
// CHECK: call void @_ZN6PR66281AC2ERKS0_RKNS_1TES5_
|
||||
|
|
|
@ -20,6 +20,6 @@ int &fn2(int &v) {
|
|||
// CHECK: %[[INITLIST2:.*]] = alloca %struct.B, align 8
|
||||
// CHECK: %[[R:.*]] = getelementptr inbounds %struct.B* %[[INITLIST2:.*]], i32 0, i32 0
|
||||
// CHECK: store i32* %{{.*}}, i32** %[[R]], align 8
|
||||
// CHECK: call i32* @_ZN1B1fEv(%struct.B* %[[INITLIST2:.*]])
|
||||
// CHECK: call nonnull i32* @_ZN1B1fEv(%struct.B* %[[INITLIST2:.*]])
|
||||
return B{v}.f();
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@ thread_local int &r = f();
|
|||
int &g() { return r; }
|
||||
|
||||
// CHECK: define {{.*}} @[[R_INIT:.*]]()
|
||||
// CHECK: call i32* @_Z1fv()
|
||||
// CHECK: call nonnull i32* @_Z1fv()
|
||||
// CHECK: store i32* %{{.*}}, i32** @r, align 8
|
||||
|
||||
// CHECK-LABEL: define i32* @_Z1gv()
|
||||
// CHECK-LABEL: define nonnull i32* @_Z1gv()
|
||||
// CHECK: call i32* @_ZTW1r()
|
||||
// CHECK: ret i32* %{{.*}}
|
||||
|
||||
|
|
|
@ -23,5 +23,5 @@ int main() {
|
|||
const A& rca2 = d();
|
||||
}
|
||||
|
||||
// CHECK: call %struct.A* @_ZN1BcvR1AEv
|
||||
// CHECK: call %struct.A* @_ZN1BcvR1AEv
|
||||
// CHECK: call nonnull %struct.A* @_ZN1BcvR1AEv
|
||||
// CHECK: call nonnull %struct.A* @_ZN1BcvR1AEv
|
||||
|
|
|
@ -16,12 +16,12 @@ public:
|
|||
// CHECK-LABEL: define void @_Z1gv()
|
||||
void g() {
|
||||
// CHECK: call void @_ZN1TC1Ev([[T:%.*]]* [[AGG1:%.*]])
|
||||
// CHECK-NEXT: call void @_Z1fRK1T([[T]]* [[AGG1]])
|
||||
// CHECK-NEXT: call void @_Z1fRK1T([[T]]* nonnull [[AGG1]])
|
||||
// CHECK-NEXT: call void @_ZN1TD1Ev([[T]]* [[AGG1]])
|
||||
f();
|
||||
|
||||
// CHECK-NEXT: call void @_ZN1TC1Ev([[T:%.*]]* [[AGG2:%.*]])
|
||||
// CHECK-NEXT: call void @_Z1fRK1T([[T]]* [[AGG2]])
|
||||
// CHECK-NEXT: call void @_Z1fRK1T([[T]]* nonnull [[AGG2]])
|
||||
// CHECK-NEXT: call void @_ZN1TD1Ev([[T]]* [[AGG2]])
|
||||
f();
|
||||
|
||||
|
|
|
@ -33,9 +33,9 @@ void test0(X x) {
|
|||
test0_helper(x);
|
||||
// CHECK-LABEL: define void @_Z5test01X(
|
||||
// CHECK: [[TMP:%.*]] = alloca [[A:%.*]], align
|
||||
// CHECK-NEXT: [[T0:%.*]] = call [[B:%.*]]* @_ZN1XcvR1BEv(
|
||||
// CHECK-NEXT: [[T0:%.*]] = call nonnull [[B:%.*]]* @_ZN1XcvR1BEv(
|
||||
// CHECK-NEXT: [[T1:%.*]] = bitcast [[B]]* [[T0]] to [[A]]*
|
||||
// CHECK-NEXT: call void @_ZN1AC1ERKS_([[A]]* [[TMP]], [[A]]* [[T1]])
|
||||
// CHECK-NEXT: call void @_ZN1AC1ERKS_([[A]]* [[TMP]], [[A]]* nonnull [[T1]])
|
||||
// CHECK-NEXT: call void @_Z12test0_helper1A([[A]]* [[TMP]])
|
||||
// CHECK-NEXT: call void @_ZN1AD1Ev([[A]]* [[TMP]])
|
||||
// CHECK-NEXT: ret void
|
||||
|
|
|
@ -9,7 +9,7 @@ struct D final : virtual C {
|
|||
virtual void f();
|
||||
};
|
||||
|
||||
// CHECK-LABEL: define %struct.B* @_Z1fR1D
|
||||
// CHECK-LABEL: define nonnull %struct.B* @_Z1fR1D
|
||||
B &f(D &d) {
|
||||
// CHECK-NOT: load i8**
|
||||
return d;
|
||||
|
|
|
@ -298,32 +298,32 @@ struct ExportSpecials {
|
|||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsD2Ev(%struct.ExportSpecials* %this)
|
||||
__declspec(dllexport) ~ExportSpecials();
|
||||
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE@ABU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials*)
|
||||
// M64-DAG: define dllexport %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA@AEBU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC1ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC2ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE@ABU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* nonnull)
|
||||
// M64-DAG: define dllexport %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA@AEBU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC1ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC2ERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
__declspec(dllexport) ExportSpecials(const ExportSpecials&);
|
||||
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??4ExportSpecials@@QAEAAU0@ABU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// M64-DAG: define dllexport %struct.ExportSpecials* @"\01??4ExportSpecials@@QEAAAEAU0@AEBU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @_ZN14ExportSpecialsaSERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G64-DAG: define dllexport %struct.ExportSpecials* @_ZN14ExportSpecialsaSERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// M32-DAG: define dllexport x86_thiscallcc nonnull %struct.ExportSpecials* @"\01??4ExportSpecials@@QAEAAU0@ABU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// M64-DAG: define dllexport nonnull %struct.ExportSpecials* @"\01??4ExportSpecials@@QEAAAEAU0@AEBU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc nonnull %struct.ExportSpecials* @_ZN14ExportSpecialsaSERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G64-DAG: define dllexport nonnull %struct.ExportSpecials* @_ZN14ExportSpecialsaSERKS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
__declspec(dllexport) ExportSpecials& operator=(const ExportSpecials&);
|
||||
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE@$$QAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials*)
|
||||
// M64-DAG: define dllexport %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC1EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC2EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??0ExportSpecials@@QAE@$$QAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* nonnull)
|
||||
// M64-DAG: define dllexport %struct.ExportSpecials* @"\01??0ExportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ExportSpecials* returned %this, %struct.ExportSpecials* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC1EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC1EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN14ExportSpecialsC2EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G64-DAG: define dllexport void @_ZN14ExportSpecialsC2EOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
__declspec(dllexport) ExportSpecials(ExportSpecials&&);
|
||||
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @"\01??4ExportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// M64-DAG: define dllexport %struct.ExportSpecials* @"\01??4ExportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc %struct.ExportSpecials* @_ZN14ExportSpecialsaSEOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// G64-DAG: define dllexport %struct.ExportSpecials* @_ZN14ExportSpecialsaSEOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials*)
|
||||
// M32-DAG: define dllexport x86_thiscallcc nonnull %struct.ExportSpecials* @"\01??4ExportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// M64-DAG: define dllexport nonnull %struct.ExportSpecials* @"\01??4ExportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc nonnull %struct.ExportSpecials* @_ZN14ExportSpecialsaSEOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
// G64-DAG: define dllexport nonnull %struct.ExportSpecials* @_ZN14ExportSpecialsaSEOS_(%struct.ExportSpecials* %this, %struct.ExportSpecials* nonnull)
|
||||
__declspec(dllexport) ExportSpecials& operator=(ExportSpecials&&);
|
||||
};
|
||||
ExportSpecials::ExportSpecials() {}
|
||||
|
@ -354,10 +354,10 @@ struct ExportInlineSpecials {
|
|||
// G64-DAG: define weak_odr dllexport void @_ZN20ExportInlineSpecialsC1ERKS_(
|
||||
__declspec(dllexport) inline ExportInlineSpecials(const ExportInlineSpecials&);
|
||||
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QAEAAU0@ABU0@@Z"(
|
||||
// M64-DAG: define weak_odr dllexport %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QEAAAEAU0@AEBU0@@Z"(
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSERKS_(
|
||||
// G64-DAG: define weak_odr dllexport %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSERKS_(
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc nonnull %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QAEAAU0@ABU0@@Z"(
|
||||
// M64-DAG: define weak_odr dllexport nonnull %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QEAAAEAU0@AEBU0@@Z"(
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc nonnull %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSERKS_(
|
||||
// G64-DAG: define weak_odr dllexport nonnull %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSERKS_(
|
||||
__declspec(dllexport) ExportInlineSpecials& operator=(const ExportInlineSpecials&);
|
||||
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"\01??0ExportInlineSpecials@@QAE@$$QAU0@@Z"(
|
||||
|
@ -366,10 +366,10 @@ struct ExportInlineSpecials {
|
|||
// G64-DAG: define weak_odr dllexport void @_ZN20ExportInlineSpecialsC1EOS_(
|
||||
__declspec(dllexport) ExportInlineSpecials(ExportInlineSpecials&&) {}
|
||||
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
|
||||
// M64-DAG: define weak_odr dllexport %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSEOS_(
|
||||
// G64-DAG: define weak_odr dllexport %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSEOS_(
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc nonnull %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
|
||||
// M64-DAG: define weak_odr dllexport nonnull %struct.ExportInlineSpecials* @"\01??4ExportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc nonnull %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSEOS_(
|
||||
// G64-DAG: define weak_odr dllexport nonnull %struct.ExportInlineSpecials* @_ZN20ExportInlineSpecialsaSEOS_(
|
||||
__declspec(dllexport) ExportInlineSpecials& operator=(ExportInlineSpecials&&) { return *this; }
|
||||
};
|
||||
ExportInlineSpecials::ExportInlineSpecials(const ExportInlineSpecials&) {}
|
||||
|
@ -402,32 +402,32 @@ __declspec(dllexport) ExportDefaultedDefs::ExportDefaultedDefs() = default;
|
|||
// G64-DAG: define dllexport void @_ZN19ExportDefaultedDefsD2Ev(%struct.ExportDefaultedDefs* %this)
|
||||
ExportDefaultedDefs::~ExportDefaultedDefs() = default;
|
||||
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE@ABU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs*)
|
||||
// M64-DAG: define weak_odr dllexport %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA@AEBU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs*)
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G64-DAG: define weak_odr dllexport void @_ZN19ExportDefaultedDefsC1ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G64-DAG: define weak_odr dllexport void @_ZN19ExportDefaultedDefsC2ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE@ABU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// M64-DAG: define weak_odr dllexport %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA@AEBU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define weak_odr dllexport void @_ZN19ExportDefaultedDefsC1ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define weak_odr dllexport void @_ZN19ExportDefaultedDefsC2ERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
__declspec(dllexport) ExportDefaultedDefs::ExportDefaultedDefs(const ExportDefaultedDefs&) = default;
|
||||
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QAEAAU0@ABU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// M64-DAG: define weak_odr dllexport %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QEAAAEAU0@AEBU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G64-DAG: define weak_odr dllexport %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// M32-DAG: define weak_odr dllexport x86_thiscallcc nonnull %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QAEAAU0@ABU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// M64-DAG: define weak_odr dllexport nonnull %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QEAAAEAU0@AEBU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define weak_odr dllexport x86_thiscallcc nonnull %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define weak_odr dllexport nonnull %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSERKS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
inline ExportDefaultedDefs& ExportDefaultedDefs::operator=(const ExportDefaultedDefs&) = default;
|
||||
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs*)
|
||||
// M64-DAG: define dllexport %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G64-DAG: define dllexport void @_ZN19ExportDefaultedDefsC1EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G64-DAG: define dllexport void @_ZN19ExportDefaultedDefsC2EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// M64-DAG: define dllexport %struct.ExportDefaultedDefs* @"\01??0ExportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* returned %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC1EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define dllexport void @_ZN19ExportDefaultedDefsC1EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc void @_ZN19ExportDefaultedDefsC2EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define dllexport void @_ZN19ExportDefaultedDefsC2EOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
__declspec(dllexport) ExportDefaultedDefs::ExportDefaultedDefs(ExportDefaultedDefs&&) = default;
|
||||
|
||||
// M32-DAG: define dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// M64-DAG: define dllexport %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G32-DAG: define dllexport x86_thiscallcc %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSEOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// G64-DAG: define dllexport %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSEOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs*)
|
||||
// M32-DAG: define dllexport x86_thiscallcc nonnull %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// M64-DAG: define dllexport nonnull %struct.ExportDefaultedDefs* @"\01??4ExportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define dllexport x86_thiscallcc nonnull %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSEOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define dllexport nonnull %struct.ExportDefaultedDefs* @_ZN19ExportDefaultedDefsaSEOS_(%struct.ExportDefaultedDefs* %this, %struct.ExportDefaultedDefs* nonnull)
|
||||
ExportDefaultedDefs& ExportDefaultedDefs::operator=(ExportDefaultedDefs&&) = default;
|
||||
|
||||
|
||||
|
|
|
@ -428,28 +428,28 @@ struct ImportSpecials {
|
|||
// G64-DAG: declare dllimport void @_ZN14ImportSpecialsD1Ev(%struct.ImportSpecials*)
|
||||
__declspec(dllimport) ~ImportSpecials() {}
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE@ABU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA@AEBU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN14ImportSpecialsC1ERKS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// G64-DAG: declare dllimport void @_ZN14ImportSpecialsC1ERKS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE@ABU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA@AEBU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN14ImportSpecialsC1ERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN14ImportSpecialsC1ERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
__declspec(dllimport) ImportSpecials(const ImportSpecials&);
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??4ImportSpecials@@QAEAAU0@ABU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportSpecials* @"\01??4ImportSpecials@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @_ZN14ImportSpecialsaSERKS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// G64-DAG: declare dllimport %struct.ImportSpecials* @_ZN14ImportSpecialsaSERKS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportSpecials* @"\01??4ImportSpecials@@QAEAAU0@ABU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportSpecials* @"\01??4ImportSpecials@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportSpecials* @_ZN14ImportSpecialsaSERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportSpecials* @_ZN14ImportSpecialsaSERKS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
__declspec(dllimport) ImportSpecials& operator=(const ImportSpecials&);
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE@$$QAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN14ImportSpecialsC1EOS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// G64-DAG: declare dllimport void @_ZN14ImportSpecialsC1EOS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??0ImportSpecials@@QAE@$$QAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportSpecials* @"\01??0ImportSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportSpecials* returned, %struct.ImportSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN14ImportSpecialsC1EOS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN14ImportSpecialsC1EOS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
__declspec(dllimport) ImportSpecials(ImportSpecials&&);
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @"\01??4ImportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportSpecials* @"\01??4ImportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportSpecials* @_ZN14ImportSpecialsaSEOS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// G64-DAG: declare dllimport %struct.ImportSpecials* @_ZN14ImportSpecialsaSEOS_(%struct.ImportSpecials*, %struct.ImportSpecials*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportSpecials* @"\01??4ImportSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportSpecials* @"\01??4ImportSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportSpecials* @_ZN14ImportSpecialsaSEOS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportSpecials* @_ZN14ImportSpecialsaSEOS_(%struct.ImportSpecials*, %struct.ImportSpecials* nonnull)
|
||||
__declspec(dllimport) ImportSpecials& operator=(ImportSpecials&&);
|
||||
};
|
||||
USESPECIALS(ImportSpecials)
|
||||
|
@ -473,36 +473,36 @@ struct ImportInlineSpecials {
|
|||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsD1Ev(
|
||||
__declspec(dllimport) ~ImportInlineSpecials() {}
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@ABU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA@AEBU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsC1ERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// G64-DAG: declare dllimport void @_ZN20ImportInlineSpecialsC1ERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@ABU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA@AEBU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsC1ERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN20ImportInlineSpecialsC1ERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@ABU0@@Z"(
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsC1ERKS_(
|
||||
__declspec(dllimport) inline ImportInlineSpecials(const ImportInlineSpecials&);
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@ABU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// G64-DAG: declare dllimport %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@ABU0@@Z"(
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@ABU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@ABU0@@Z"(
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSERKS_(
|
||||
__declspec(dllimport) ImportInlineSpecials& operator=(const ImportInlineSpecials&);
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsC1EOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// G64-DAG: declare dllimport void @_ZN20ImportInlineSpecialsC1EOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QEAA@$$QEAU0@@Z"(%struct.ImportInlineSpecials* returned, %struct.ImportInlineSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsC1EOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN20ImportInlineSpecialsC1EOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??0ImportInlineSpecials@@QAE@$$QAU0@@Z"(
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN20ImportInlineSpecialsC1EOS_(
|
||||
__declspec(dllimport) ImportInlineSpecials(ImportInlineSpecials&&) {}
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// M64-DAG: declare dllimport %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// G64-DAG: declare dllimport %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials*)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(%struct.ImportInlineSpecials*, %struct.ImportInlineSpecials* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @"\01??4ImportInlineSpecials@@QAEAAU0@$$QAU0@@Z"(
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportInlineSpecials* @_ZN20ImportInlineSpecialsaSEOS_(
|
||||
__declspec(dllimport) ImportInlineSpecials& operator=(ImportInlineSpecials&&) { return *this; }
|
||||
};
|
||||
ImportInlineSpecials::ImportInlineSpecials(const ImportInlineSpecials&) {}
|
||||
|
@ -528,36 +528,36 @@ struct ImportDefaulted {
|
|||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN15ImportDefaultedD1Ev(%struct.ImportDefaulted* %this)
|
||||
__declspec(dllimport) ~ImportDefaulted() = default;
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@ABU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted*)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA@AEBU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// G64-DAG: declare dllimport void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@ABU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted*)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@ABU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA@AEBU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@ABU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted* nonnull)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1ERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* nonnull)
|
||||
__declspec(dllimport) ImportDefaulted(const ImportDefaulted&) = default;
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@ABU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// G64-DAG: declare dllimport %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@ABU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted*)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@ABU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@ABU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* nonnull)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @_ZN15ImportDefaultedaSERKS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* nonnull)
|
||||
__declspec(dllimport) ImportDefaulted& operator=(const ImportDefaulted&) = default;
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted*)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// G64-DAG: declare dllimport void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted*)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaulted* returned, %struct.ImportDefaulted* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??0ImportDefaulted@@QAE@$$QAU0@@Z"(%struct.ImportDefaulted* returned %this, %struct.ImportDefaulted* nonnull)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc void @_ZN15ImportDefaultedC1EOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* nonnull)
|
||||
__declspec(dllimport) ImportDefaulted(ImportDefaulted&&) = default;
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// G64-DAG: declare dllimport %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted*)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted*)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted*, %struct.ImportDefaulted* nonnull)
|
||||
// MO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @"\01??4ImportDefaulted@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* nonnull)
|
||||
// GO1-DAG: define available_externally dllimport x86_thiscallcc nonnull %struct.ImportDefaulted* @_ZN15ImportDefaultedaSEOS_(%struct.ImportDefaulted* %this, %struct.ImportDefaulted* nonnull)
|
||||
__declspec(dllimport) ImportDefaulted& operator=(ImportDefaulted&&) = default;
|
||||
|
||||
ForceNonTrivial v; // ensure special members are non-trivial
|
||||
|
@ -589,30 +589,30 @@ __declspec(dllimport) ImportDefaultedDefs::ImportDefaultedDefs() = default;
|
|||
// G64-DAG: declare dllimport void @_ZN19ImportDefaultedDefsD1Ev(%struct.ImportDefaultedDefs*)
|
||||
__declspec(dllimport) ImportDefaultedDefs::~ImportDefaultedDefs() = default;
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE@ABU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs*)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA@AEBU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN19ImportDefaultedDefsC1ERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs*)
|
||||
// G64-DAG: declare dllimport void @_ZN19ImportDefaultedDefsC1ERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE@ABU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs* nonnull)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA@AEBU0@@Z"(%struct.ImportDefaultedDefs* returned, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc void @_ZN19ImportDefaultedDefsC1ERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G64-DAG: declare dllimport void @_ZN19ImportDefaultedDefsC1ERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* nonnull)
|
||||
inline ImportDefaultedDefs::ImportDefaultedDefs(const ImportDefaultedDefs&) = default;
|
||||
|
||||
// M32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QAEAAU0@ABU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs*)
|
||||
// M64-DAG: declare dllimport %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs*)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs*)
|
||||
// G64-DAG: declare dllimport %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs*)
|
||||
// M32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QAEAAU0@ABU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* nonnull)
|
||||
// M64-DAG: declare dllimport nonnull %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QEAAAEAU0@AEBU0@@Z"(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G32-DAG: declare dllimport x86_thiscallcc nonnull %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G64-DAG: declare dllimport nonnull %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSERKS_(%struct.ImportDefaultedDefs*, %struct.ImportDefaultedDefs* nonnull)
|
||||
inline ImportDefaultedDefs& ImportDefaultedDefs::operator=(const ImportDefaultedDefs&) = default;
|
||||
|
||||
// M32-DAG: define x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs*)
|
||||
// M64-DAG: define %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs*)
|
||||
// G32-DAG: define x86_thiscallcc void @_ZN19ImportDefaultedDefsC1EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// G64-DAG: define void @_ZN19ImportDefaultedDefsC1EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// G32-DAG: define x86_thiscallcc void @_ZN19ImportDefaultedDefsC2EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// G64-DAG: define void @_ZN19ImportDefaultedDefsC2EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// M32-DAG: define x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QAE@$$QAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// M64-DAG: define %struct.ImportDefaultedDefs* @"\01??0ImportDefaultedDefs@@QEAA@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* returned %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define x86_thiscallcc void @_ZN19ImportDefaultedDefsC1EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define void @_ZN19ImportDefaultedDefsC1EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define x86_thiscallcc void @_ZN19ImportDefaultedDefsC2EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define void @_ZN19ImportDefaultedDefsC2EOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
ImportDefaultedDefs::ImportDefaultedDefs(ImportDefaultedDefs&&) = default; // dllimport ignored
|
||||
|
||||
// M32-DAG: define x86_thiscallcc %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// M64-DAG: define %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// G32-DAG: define x86_thiscallcc %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSEOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// G64-DAG: define %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSEOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs*)
|
||||
// M32-DAG: define x86_thiscallcc nonnull %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QAEAAU0@$$QAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// M64-DAG: define nonnull %struct.ImportDefaultedDefs* @"\01??4ImportDefaultedDefs@@QEAAAEAU0@$$QEAU0@@Z"(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G32-DAG: define x86_thiscallcc nonnull %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSEOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
// G64-DAG: define nonnull %struct.ImportDefaultedDefs* @_ZN19ImportDefaultedDefsaSEOS_(%struct.ImportDefaultedDefs* %this, %struct.ImportDefaultedDefs* nonnull)
|
||||
ImportDefaultedDefs& ImportDefaultedDefs::operator=(ImportDefaultedDefs&&) = default; // dllimport ignored
|
||||
|
||||
USESPECIALS(ImportDefaultedDefs)
|
||||
|
|
|
@ -34,7 +34,7 @@ void test2() {
|
|||
// CHECK-NEXT: [[SELECTORVAR:%.*]] = alloca i32
|
||||
// CHECK-NEXT: [[EXNOBJ:%.*]] = call i8* @__cxa_allocate_exception(i64 16)
|
||||
// CHECK-NEXT: [[EXN:%.*]] = bitcast i8* [[EXNOBJ]] to [[DSTAR:%[^*]*\*]]
|
||||
// CHECK-NEXT: invoke void @_ZN7test2_DC1ERKS_([[DSTAR]] [[EXN]], [[DSTAR]] @d2)
|
||||
// CHECK-NEXT: invoke void @_ZN7test2_DC1ERKS_([[DSTAR]] [[EXN]], [[DSTAR]] nonnull @d2)
|
||||
// CHECK-NEXT: to label %[[CONT:.*]] unwind label %{{.*}}
|
||||
// : [[CONT]]: (can't check this in Release-Asserts builds)
|
||||
// CHECK: call void @__cxa_throw(i8* [[EXNOBJ]], i8* bitcast ({{.*}}* @_ZTI7test2_D to i8*), i8* null) [[NR]]
|
||||
|
@ -428,7 +428,7 @@ namespace test16 {
|
|||
// CHECK-NEXT: [[T0:%.*]] = bitcast i8* [[EXN]] to [[B:%.*]]*
|
||||
// CHECK-NEXT: invoke void @_ZN6test161AC1Ev([[A]]* [[TEMP]])
|
||||
// CHECK: store i1 true, i1* [[TEMP_ACTIVE]]
|
||||
// CHECK-NEXT: invoke void @_ZN6test161BC1ERKNS_1AE([[B]]* [[T0]], [[A]]* [[TEMP]])
|
||||
// CHECK-NEXT: invoke void @_ZN6test161BC1ERKNS_1AE([[B]]* [[T0]], [[A]]* nonnull [[TEMP]])
|
||||
// CHECK: store i1 false, i1* [[EXN_ACTIVE]]
|
||||
// CHECK-NEXT: invoke void @__cxa_throw(i8* [[EXN]],
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ bool foo(Empty e) {
|
|||
}
|
||||
|
||||
void caller(Empty &e) {
|
||||
// CHECK: @_Z6callerR5Empty(%struct.Empty* %e)
|
||||
// CHECK: @_Z6callerR5Empty(%struct.Empty* nonnull %e)
|
||||
// CHECK: call {{.*}} @_ZN5EmptyC1ERKS_(%struct.Empty* [[NEWTMP:%.*]], %struct.Empty*
|
||||
// CHECK: call {{.*}} @_Z3foo5Empty(%struct.Empty* [[NEWTMP]])
|
||||
foo(e);
|
||||
|
|
|
@ -279,7 +279,7 @@ namespace test5 {
|
|||
// CHECK-NEXT: [[ADJ:%.*]] = call i8* @__cxa_get_exception_ptr(i8* [[EXN]])
|
||||
// CHECK-NEXT: [[SRC:%.*]] = bitcast i8* [[ADJ]] to [[A_T]]*
|
||||
// CHECK-NEXT: invoke void @_ZN5test51TC1Ev([[T_T]]* [[T]])
|
||||
// CHECK: invoke void @_ZN5test51AC1ERKS0_RKNS_1TE([[A_T]]* [[A]], [[A_T]]* [[SRC]], [[T_T]]* [[T]])
|
||||
// CHECK: invoke void @_ZN5test51AC1ERKS0_RKNS_1TE([[A_T]]* [[A]], [[A_T]]* nonnull [[SRC]], [[T_T]]* nonnull [[T]])
|
||||
// CHECK: invoke void @_ZN5test51TD1Ev([[T_T]]* [[T]])
|
||||
// CHECK: call i8* @__cxa_begin_catch(i8* [[EXN]]) [[NUW]]
|
||||
// CHECK-NEXT: invoke void @_ZN5test51AD1Ev([[A_T]]* [[A]])
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
void __attribute__((fastcall)) foo1(int &y);
|
||||
void bar1(int &y) {
|
||||
// CHECK-LABEL: define void @_Z4bar1Ri
|
||||
// CHECK: call x86_fastcallcc void @_Z4foo1Ri(i32* inreg %
|
||||
// CHECK: call x86_fastcallcc void @_Z4foo1Ri(i32* inreg nonnull %
|
||||
foo1(y);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace test0 {
|
|||
// CHECK: store i1 true, i1* [[CLEANUPACTIVE]]
|
||||
// CHECK: [[NEWCAST:%.*]] = bitcast i8* [[NEW]] to [[V]]*
|
||||
// CHECK-NEXT: invoke void @_ZN5test01AC1Ev([[A]]* [[TMP]])
|
||||
// CHECK: invoke void @_ZN5test01VC1ERKNS_1AE([[V]]* [[NEWCAST]], [[A]]* [[TMP]])
|
||||
// CHECK: invoke void @_ZN5test01VC1ERKNS_1AE([[V]]* [[NEWCAST]], [[A]]* nonnull [[TMP]])
|
||||
// CHECK: store i1 false, i1* [[CLEANUPACTIVE]]
|
||||
// CHECK-NEXT: invoke void @_ZN5test01AD1Ev([[A]]* [[TMP]])
|
||||
A y;
|
||||
|
|
|
@ -40,7 +40,7 @@ void test_D(D d1, D d2) {
|
|||
d1 = d2;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr %struct.D* @_ZN1DaSERS_
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.D* @_ZN1DaSERS_
|
||||
// CHECK: {{call.*_ZN1AaSERS_}}
|
||||
// CHECK: {{call.*_ZN1BaSERS_}}
|
||||
// CHECK: {{call.*_ZN1CaSERKS_}}
|
||||
|
@ -53,4 +53,3 @@ void test_D(D d1, D d2) {
|
|||
// CHECK: call void @_ZN11CopyByValueC1ERKS_
|
||||
// CHECK: {{call.*_ZN11CopyByValueaSES_}}
|
||||
// CHECK: ret
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ void f(D d) {
|
|||
D d2(d);
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1DC1ERS_(%struct.D* %this, %struct.D*) unnamed_addr
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1DC1ERS_(%struct.D* %this, %struct.D* nonnull) unnamed_addr
|
||||
// CHECK: call void @_ZN1AC1Ev
|
||||
// CHECK: call void @_ZN1CC2ERS_1A
|
||||
// CHECK: call void @_ZN1AD1Ev
|
||||
|
|
|
@ -192,7 +192,7 @@ namespace PR12123 {
|
|||
};
|
||||
void B::h() { f(); }
|
||||
}
|
||||
// CHECK-LABEL: define linkonce_odr %"struct.PR12123::A"* @_ZZN7PR121231B1fERKSt9type_infoEd_NKUlvE_clEv
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %"struct.PR12123::A"* @_ZZN7PR121231B1fERKSt9type_infoEd_NKUlvE_clEv
|
||||
|
||||
namespace PR12808 {
|
||||
template <typename> struct B {
|
||||
|
|
|
@ -280,13 +280,13 @@ struct Ops {
|
|||
void *v;
|
||||
};
|
||||
|
||||
// CHECK-LABEL: define %struct.Ops* @_ZN3OpsplERKS_
|
||||
// CHECK-LABEL: define nonnull %struct.Ops* @_ZN3OpsplERKS_
|
||||
Ops& Ops::operator+(const Ops&) { return *this; }
|
||||
// CHECK-LABEL: define %struct.Ops* @_ZN3OpsmiERKS_
|
||||
// CHECK-LABEL: define nonnull %struct.Ops* @_ZN3OpsmiERKS_
|
||||
Ops& Ops::operator-(const Ops&) { return *this; }
|
||||
// CHECK-LABEL: define %struct.Ops* @_ZN3OpsanERKS_
|
||||
// CHECK-LABEL: define nonnull %struct.Ops* @_ZN3OpsanERKS_
|
||||
Ops& Ops::operator&(const Ops&) { return *this; }
|
||||
// CHECK-LABEL: define %struct.Ops* @_ZN3OpsmlERKS_
|
||||
// CHECK-LABEL: define nonnull %struct.Ops* @_ZN3OpsmlERKS_
|
||||
Ops& Ops::operator*(const Ops&) { return *this; }
|
||||
|
||||
// PR5861
|
||||
|
@ -899,7 +899,7 @@ namespace test39 {
|
|||
}
|
||||
|
||||
namespace test40 {
|
||||
// CHECK: i32* @_ZZN6test401fEvE1a_0
|
||||
// CHECK: i32* {{.*}} @_ZZN6test401fEvE1a_0
|
||||
void h(int&);
|
||||
inline void f() {
|
||||
if (0) {
|
||||
|
|
|
@ -137,10 +137,10 @@ void call_small_arg_with_dtor() {
|
|||
|
||||
// Test that references aren't destroyed in the callee.
|
||||
void ref_small_arg_with_dtor(const SmallWithDtor &s) { }
|
||||
// WIN32: define void @"\01?ref_small_arg_with_dtor@@YAXABUSmallWithDtor@@@Z"(%struct.SmallWithDtor* %s) {{.*}} {
|
||||
// WIN32: define void @"\01?ref_small_arg_with_dtor@@YAXABUSmallWithDtor@@@Z"(%struct.SmallWithDtor* nonnull %s) {{.*}} {
|
||||
// WIN32-NOT: call x86_thiscallcc void @"\01??1SmallWithDtor@@QAE@XZ"
|
||||
// WIN32: }
|
||||
// WIN64-LABEL: define void @"\01?ref_small_arg_with_dtor@@YAXAEBUSmallWithDtor@@@Z"(%struct.SmallWithDtor* %s)
|
||||
// WIN64-LABEL: define void @"\01?ref_small_arg_with_dtor@@YAXAEBUSmallWithDtor@@@Z"(%struct.SmallWithDtor* nonnull %s)
|
||||
|
||||
void big_arg_with_dtor(BigWithDtor s) {}
|
||||
// WIN64-LABEL: define void @"\01?big_arg_with_dtor@@YAXUBigWithDtor@@@Z"(%struct.BigWithDtor* %s)
|
||||
|
|
|
@ -119,7 +119,7 @@ inline S &UnreachableStatic() {
|
|||
return s;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr %struct.S* @"\01?UnreachableStatic@@YAAAUS@@XZ"()
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.S* @"\01?UnreachableStatic@@YAAAUS@@XZ"()
|
||||
// CHECK: and i32 {{.*}}, 2
|
||||
// CHECK: or i32 {{.*}}, 2
|
||||
// CHECK: ret
|
||||
|
@ -129,7 +129,7 @@ inline S &getS() {
|
|||
return TheS;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr %struct.S* @"\01?getS@@YAAAUS@@XZ"
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.S* @"\01?getS@@YAAAUS@@XZ"
|
||||
// CHECK: load i32* @"\01??_B?1??getS@@YAAAUS@@XZ@51"
|
||||
// CHECK: and i32 {{.*}}, 1
|
||||
// CHECK: icmp ne i32 {{.*}}, 0
|
||||
|
|
|
@ -169,7 +169,7 @@ X test6() {
|
|||
return a;
|
||||
// CHECK: [[A:%.*]] = alloca [[X:%.*]], align 8
|
||||
// CHECK-NEXT: call {{.*}} @_ZN1XC1Ev([[X]]* [[A]])
|
||||
// CHECK-NEXT: call {{.*}} @_ZN1XC1ERKS_([[X]]* {{%.*}}, [[X]]* [[A]])
|
||||
// CHECK-NEXT: call {{.*}} @_ZN1XC1ERKS_([[X]]* {{%.*}}, [[X]]* nonnull [[A]])
|
||||
// CHECK-NEXT: call {{.*}} @_ZN1XD1Ev([[X]]* [[A]])
|
||||
// CHECK-NEXT: ret void
|
||||
}
|
||||
|
|
|
@ -108,59 +108,59 @@ CALL_AO(InnerClassMember)
|
|||
CALL_AO(PackedMembers)
|
||||
|
||||
// Basic copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.Basic* @_ZN5BasicaSERKS_(%struct.Basic* %this, %struct.Basic*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.Basic* @_ZN5BasicaSERKS_(%struct.Basic* %this, %struct.Basic* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret %struct.Basic*
|
||||
|
||||
// PODMember copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.PODMember* @_ZN9PODMemberaSERKS_(%struct.PODMember* %this, %struct.PODMember*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.PODMember* @_ZN9PODMemberaSERKS_(%struct.PODMember* %this, %struct.PODMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 32, i32 4{{.*}})
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret %struct.PODMember*
|
||||
|
||||
// PODLikeMember copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.PODLikeMember* @_ZN13PODLikeMemberaSERKS_(%struct.PODLikeMember* %this, %struct.PODLikeMember*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.PODLikeMember* @_ZN13PODLikeMemberaSERKS_(%struct.PODLikeMember* %this, %struct.PODLikeMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 32, i32 4{{.*}})
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret %struct.PODLikeMember*
|
||||
|
||||
// ArrayMember copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.ArrayMember* @_ZN11ArrayMemberaSERKS_(%struct.ArrayMember* %this, %struct.ArrayMember*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.ArrayMember* @_ZN11ArrayMemberaSERKS_(%struct.ArrayMember* %this, %struct.ArrayMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 64, i32 4{{.*}})
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 64, i32 4{{.*}})
|
||||
// CHECK: ret %struct.ArrayMember*
|
||||
|
||||
// VolatileMember copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.VolatileMember* @_ZN14VolatileMemberaSERKS_(%struct.VolatileMember* %this, %struct.VolatileMember*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.VolatileMember* @_ZN14VolatileMemberaSERKS_(%struct.VolatileMember* %this, %struct.VolatileMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: load volatile i32* {{.*}}, align 4
|
||||
// CHECK: store volatile i32 {{.*}}, align 4
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret %struct.VolatileMember*
|
||||
|
||||
// BitfieldMember copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.BitfieldMember* @_ZN14BitfieldMemberaSERKS_(%struct.BitfieldMember* %this, %struct.BitfieldMember*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.BitfieldMember* @_ZN14BitfieldMemberaSERKS_(%struct.BitfieldMember* %this, %struct.BitfieldMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 3, i32 1{{.*}})
|
||||
// CHECK: ret %struct.BitfieldMember*
|
||||
|
||||
// InnerClass copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.InnerClassMember* @_ZN16InnerClassMemberaSERKS_(%struct.InnerClassMember* %this, %struct.InnerClassMember*)
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.InnerClassMember* @_ZN16InnerClassMemberaSERKS_(%struct.InnerClassMember* %this, %struct.InnerClassMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 32, i32 4{{.*}})
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret %struct.InnerClassMember*
|
||||
|
||||
// PackedMembers copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr %struct.PackedMembers* @_ZN13PackedMembersaSERKS_(%struct.PackedMembers* %this, %struct.PackedMembers*)
|
||||
// CHECK: call %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK-LABEL: define linkonce_odr nonnull %struct.PackedMembers* @_ZN13PackedMembersaSERKS_(%struct.PackedMembers* %this, %struct.PackedMembers* nonnull)
|
||||
// CHECK: call nonnull %struct.NonPOD* @_ZN6NonPODaSERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 1{{.*}})
|
||||
// CHECK: ret %struct.PackedMembers*
|
||||
|
||||
|
@ -184,21 +184,21 @@ CALL_CC(PODMember)
|
|||
CALL_CC(Basic)
|
||||
|
||||
// Basic copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN5BasicC2ERKS_(%struct.Basic* %this, %struct.Basic*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN5BasicC2ERKS_(%struct.Basic* %this, %struct.Basic* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret void
|
||||
|
||||
// PODMember copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN9PODMemberC2ERKS_(%struct.PODMember* %this, %struct.PODMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN9PODMemberC2ERKS_(%struct.PODMember* %this, %struct.PODMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 32, i32 4{{.*}})
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret void
|
||||
|
||||
// PODLikeMember copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN13PODLikeMemberC2ERKS_(%struct.PODLikeMember* %this, %struct.PODLikeMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN13PODLikeMemberC2ERKS_(%struct.PODLikeMember* %this, %struct.PODLikeMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 32, i32 4{{.*}})
|
||||
// CHECK: invoke void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
|
@ -207,14 +207,14 @@ CALL_CC(Basic)
|
|||
// CHECK: invoke void @_ZN7PODLikeD1Ev
|
||||
|
||||
// ArrayMember copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN11ArrayMemberC2ERKS_(%struct.ArrayMember* %this, %struct.ArrayMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN11ArrayMemberC2ERKS_(%struct.ArrayMember* %this, %struct.ArrayMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 64, i32 4{{.*}})
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 64, i32 4{{.*}})
|
||||
// CHECK: ret void
|
||||
|
||||
// VolatileMember copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN14VolatileMemberC2ERKS_(%struct.VolatileMember* %this, %struct.VolatileMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN14VolatileMemberC2ERKS_(%struct.VolatileMember* %this, %struct.VolatileMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: load volatile i32* {{.*}}, align 4
|
||||
// CHECK: store volatile i32 {{.*}}, align 4
|
||||
|
@ -223,34 +223,34 @@ CALL_CC(Basic)
|
|||
// CHECK: ret void
|
||||
|
||||
// BitfieldMember copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN14BitfieldMemberC2ERKS_(%struct.BitfieldMember* %this, %struct.BitfieldMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN14BitfieldMemberC2ERKS_(%struct.BitfieldMember* %this, %struct.BitfieldMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 3, i32 1{{.*}})
|
||||
// CHECK: ret void
|
||||
|
||||
// InnerClass copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN16InnerClassMemberC2ERKS_(%struct.InnerClassMember* %this, %struct.InnerClassMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN16InnerClassMemberC2ERKS_(%struct.InnerClassMember* %this, %struct.InnerClassMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 32, i32 4{{.*}})
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4{{.*}})
|
||||
// CHECK: ret void
|
||||
|
||||
// ReferenceMember copy-constructor:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN15ReferenceMemberC2ERKS_(%struct.ReferenceMember* %this, %struct.ReferenceMember*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN15ReferenceMemberC2ERKS_(%struct.ReferenceMember* %this, %struct.ReferenceMember* nonnull)
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 8{{.*}})
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 8{{.*}})
|
||||
// CHECK: ret void
|
||||
|
||||
// BitfieldMember2 copy-constructor:
|
||||
// CHECK-2-LABEL: define linkonce_odr void @_ZN15BitfieldMember2C2ERKS_(%struct.BitfieldMember2* %this, %struct.BitfieldMember2*)
|
||||
// CHECK-2-LABEL: define linkonce_odr void @_ZN15BitfieldMember2C2ERKS_(%struct.BitfieldMember2* %this, %struct.BitfieldMember2* nonnull)
|
||||
// CHECK-2: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 4, i1 false)
|
||||
// CHECK-2: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK-2: ret void
|
||||
|
||||
// PackedMembers copy-assignment:
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN13PackedMembersC2ERKS_(%struct.PackedMembers* %this, %struct.PackedMembers*)
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN13PackedMembersC2ERKS_(%struct.PackedMembers* %this, %struct.PackedMembers* nonnull)
|
||||
// CHECK: call void @_ZN6NonPODC1ERKS_
|
||||
// CHECK: call void @llvm.memcpy.p0i8.p0i8.i64({{.*}}i64 16, i32 1{{.*}})
|
||||
// CHECK: ret void
|
||||
|
|
|
@ -202,7 +202,7 @@ namespace BoolPtrToMember {
|
|||
bool member;
|
||||
};
|
||||
|
||||
// CHECK-LABEL: define i8* @_ZN15BoolPtrToMember1fERNS_1XEMS0_b
|
||||
// CHECK-LABEL: define nonnull i8* @_ZN15BoolPtrToMember1fERNS_1XEMS0_b
|
||||
bool &f(X &x, bool X::*member) {
|
||||
// CHECK: {{bitcast.* to i8\*}}
|
||||
// CHECK-NEXT: getelementptr inbounds i8*
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// PR6024
|
||||
extern int i;
|
||||
|
||||
// CHECK: define i32* @_Z16lvalue_noop_castv() [[NUW:#[0-9]+]]
|
||||
// CHECK: define nonnull i32* @_Z16lvalue_noop_castv() [[NUW:#[0-9]+]]
|
||||
const int &lvalue_noop_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: store i32 17, i32*
|
||||
|
@ -15,7 +15,7 @@ const int &lvalue_noop_cast() {
|
|||
return 17;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define i16* @_Z20lvalue_integral_castv()
|
||||
// CHECK-LABEL: define nonnull i16* @_Z20lvalue_integral_castv()
|
||||
const short &lvalue_integral_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: store i16 17, i16*
|
||||
|
@ -27,7 +27,7 @@ const short &lvalue_integral_cast() {
|
|||
return 17;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define i16* @_Z29lvalue_floating_integral_castv()
|
||||
// CHECK-LABEL: define nonnull i16* @_Z29lvalue_floating_integral_castv()
|
||||
const short &lvalue_floating_integral_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: store i16 17, i16*
|
||||
|
@ -39,7 +39,7 @@ const short &lvalue_floating_integral_cast() {
|
|||
return 17.5;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define float* @_Z29lvalue_integral_floating_castv()
|
||||
// CHECK-LABEL: define nonnull float* @_Z29lvalue_integral_floating_castv()
|
||||
const float &lvalue_integral_floating_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: store float 1.700000e+{{0*}}1, float*
|
||||
|
@ -51,7 +51,7 @@ const float &lvalue_integral_floating_cast() {
|
|||
return 17;
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define float* @_Z20lvalue_floating_castv()
|
||||
// CHECK-LABEL: define nonnull float* @_Z20lvalue_floating_castv()
|
||||
const float &lvalue_floating_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: store float 1.700000e+{{0*}}1, float*
|
||||
|
@ -65,7 +65,7 @@ const float &lvalue_floating_cast() {
|
|||
|
||||
int get_int();
|
||||
|
||||
// CHECK-LABEL: define i8* @_Z24lvalue_integer_bool_castv()
|
||||
// CHECK-LABEL: define nonnull i8* @_Z24lvalue_integer_bool_castv()
|
||||
const bool &lvalue_integer_bool_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: call i32 @_Z7get_intv()
|
||||
|
@ -82,7 +82,7 @@ const bool &lvalue_integer_bool_cast() {
|
|||
|
||||
float get_float();
|
||||
|
||||
// CHECK-LABEL: define i8* @_Z25lvalue_floating_bool_castv()
|
||||
// CHECK-LABEL: define nonnull i8* @_Z25lvalue_floating_bool_castv()
|
||||
const bool &lvalue_floating_bool_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: call float @_Z9get_floatv()
|
||||
|
@ -107,7 +107,7 @@ typedef int (X::*pmf)(int);
|
|||
pm get_pointer_to_member_data();
|
||||
pmf get_pointer_to_member_function();
|
||||
|
||||
// CHECK-LABEL: define i8* @_Z26lvalue_ptrmem_to_bool_castv()
|
||||
// CHECK-LABEL: define nonnull i8* @_Z26lvalue_ptrmem_to_bool_castv()
|
||||
const bool &lvalue_ptrmem_to_bool_cast() {
|
||||
if (i == 0)
|
||||
// CHECK: call i64 @_Z26get_pointer_to_member_datav()
|
||||
|
@ -125,7 +125,7 @@ const bool &lvalue_ptrmem_to_bool_cast() {
|
|||
return get_pointer_to_member_data();
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define i8* @_Z27lvalue_ptrmem_to_bool_cast2v
|
||||
// CHECK-LABEL: define nonnull i8* @_Z27lvalue_ptrmem_to_bool_cast2v
|
||||
const bool &lvalue_ptrmem_to_bool_cast2() {
|
||||
if (i == 0)
|
||||
// CHECK: {{call.*_Z30get_pointer_to_member_functionv}}
|
||||
|
|
|
@ -7,8 +7,8 @@ struct B : Spacer, A { };
|
|||
|
||||
B &getB();
|
||||
|
||||
// CHECK-LABEL: define %struct.A* @_Z4getAv()
|
||||
// CHECK: call %struct.B* @_Z4getBv()
|
||||
// CHECK-LABEL: define nonnull %struct.A* @_Z4getAv()
|
||||
// CHECK: call nonnull %struct.B* @_Z4getBv()
|
||||
// CHECK-NEXT: bitcast %struct.B*
|
||||
// CHECK-NEXT: getelementptr inbounds i8*
|
||||
// CHECK-NEXT: bitcast i8* {{.*}} to %struct.A*
|
||||
|
@ -19,17 +19,17 @@ int &getIntLValue();
|
|||
int &&getIntXValue();
|
||||
int getIntPRValue();
|
||||
|
||||
// CHECK-LABEL: define i32* @_Z2f0v()
|
||||
// CHECK: call i32* @_Z12getIntLValuev()
|
||||
// CHECK-LABEL: define nonnull i32* @_Z2f0v()
|
||||
// CHECK: call nonnull i32* @_Z12getIntLValuev()
|
||||
// CHECK-NEXT: ret i32*
|
||||
int &&f0() { return static_cast<int&&>(getIntLValue()); }
|
||||
|
||||
// CHECK-LABEL: define i32* @_Z2f1v()
|
||||
// CHECK: call i32* @_Z12getIntXValuev()
|
||||
// CHECK-LABEL: define nonnull i32* @_Z2f1v()
|
||||
// CHECK: call nonnull i32* @_Z12getIntXValuev()
|
||||
// CHECK-NEXT: ret i32*
|
||||
int &&f1() { return static_cast<int&&>(getIntXValue()); }
|
||||
|
||||
// CHECK-LABEL: define i32* @_Z2f2v
|
||||
// CHECK-LABEL: define nonnull i32* @_Z2f2v
|
||||
// CHECK: call i32 @_Z13getIntPRValuev()
|
||||
// CHECK-NEXT: store i32 {{.*}}, i32*
|
||||
// CHECK-NEXT: ret i32*
|
||||
|
@ -95,7 +95,7 @@ namespace test1 {
|
|||
};
|
||||
|
||||
// CHECK-LABEL: define void @_ZN5test11BC2Ei(
|
||||
// CHECK: [[T0:%.*]] = call i32* @_ZN5test14moveERi(
|
||||
// CHECK: [[T0:%.*]] = call nonnull i32* @_ZN5test14moveERi(
|
||||
// CHECK-NEXT: [[T1:%.*]] = load i32* [[T0]]
|
||||
// CHECK-NEXT: call void @_ZN5test11AC1Ei({{.*}}, i32 [[T1]])
|
||||
// CHECK-NEXT: ret void
|
||||
|
|
|
@ -310,7 +310,7 @@ int& f(int);
|
|||
void g() {
|
||||
// CHECK: call void @_ZN3T121AC1Ev
|
||||
// CHECK-NEXT: call i32 @_ZN3T121A1fEv(
|
||||
// CHECK-NEXT: call i32* @_ZN3T121fEi(
|
||||
// CHECK-NEXT: call nonnull i32* @_ZN3T121fEi(
|
||||
// CHECK-NEXT: call void @_ZN3T121AD1Ev(
|
||||
int& i = f(A().f());
|
||||
}
|
||||
|
@ -325,7 +325,7 @@ namespace PR6648 {
|
|||
struct D;
|
||||
D& zed(B);
|
||||
void foobar() {
|
||||
// CHECK: call %"struct.PR6648::D"* @_ZN6PR66483zedENS_1BE
|
||||
// CHECK: call nonnull %"struct.PR6648::D"* @_ZN6PR66483zedENS_1BE
|
||||
zed(foo);
|
||||
}
|
||||
}
|
||||
|
@ -412,10 +412,10 @@ namespace Elision {
|
|||
// CHECK-NEXT: [[J:%.*]] = alloca [[A]], align 8
|
||||
|
||||
// CHECK: call void @_ZN7Elision1AC1Ev([[A]]* [[I]])
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[I]], [[A]]* [[X:%.*]])
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[I]], [[A]]* nonnull [[X:%.*]])
|
||||
A i = (c ? A() : x);
|
||||
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[J]], [[A]]* [[X]])
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[J]], [[A]]* nonnull [[X]])
|
||||
// CHECK: call void @_ZN7Elision1AC1Ev([[A]]* [[J]])
|
||||
A j = (c ? x : A());
|
||||
|
||||
|
@ -435,10 +435,10 @@ namespace Elision {
|
|||
A test3(int v, A x) {
|
||||
if (v < 5)
|
||||
// CHECK: call void @_ZN7Elision1AC1Ev([[A]]* [[RET:%.*]])
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[RET]], [[A]]* [[X:%.*]])
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[RET]], [[A]]* nonnull [[X:%.*]])
|
||||
return (v < 0 ? A() : x);
|
||||
else
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[RET]], [[A]]* [[X]])
|
||||
// CHECK: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[RET]], [[A]]* nonnull [[X]])
|
||||
// CHECK: call void @_ZN7Elision1AC1Ev([[A]]* [[RET]])
|
||||
return (v > 10 ? x : A());
|
||||
|
||||
|
@ -456,7 +456,7 @@ namespace Elision {
|
|||
// CHECK-NEXT: [[XS0:%.*]] = getelementptr inbounds [2 x [[A]]]* [[XS]], i64 0, i64 0
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1Ev([[A]]* [[XS0]])
|
||||
// CHECK-NEXT: [[XS1:%.*]] = getelementptr inbounds [[A]]* [[XS0]], i64 1
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[XS1]], [[A]]* [[X]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[XS1]], [[A]]* nonnull [[X]])
|
||||
A xs[] = { A(), x };
|
||||
|
||||
// CHECK-NEXT: [[BEGIN:%.*]] = getelementptr inbounds [2 x [[A]]]* [[XS]], i32 0, i32 0
|
||||
|
@ -483,7 +483,7 @@ namespace Elision {
|
|||
|
||||
// CHECK: call void @_ZN7Elision1BC1Ev([[B]]* [[BT0]])
|
||||
// CHECK-NEXT: [[AM:%.*]] = getelementptr inbounds [[B]]* [[BT0]], i32 0, i32 0
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[AT0]], [[A]]* [[AM]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[AT0]], [[A]]* nonnull [[AM]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision5takeAENS_1AE([[A]]* [[AT0]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AD1Ev([[A]]* [[AT0]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1BD1Ev([[B]]* [[BT0]])
|
||||
|
@ -491,13 +491,13 @@ namespace Elision {
|
|||
|
||||
// CHECK-NEXT: call void @_ZN7Elision1BC1Ev([[B]]* [[BT1]])
|
||||
// CHECK-NEXT: [[AM:%.*]] = getelementptr inbounds [[B]]* [[BT1]], i32 0, i32 0
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[X]], [[A]]* [[AM]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[X]], [[A]]* nonnull [[AM]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1BD1Ev([[B]]* [[BT1]])
|
||||
A x = B().a;
|
||||
|
||||
// CHECK-NEXT: call void @_ZN7Elision1BC1Ev([[B]]* [[BT2]])
|
||||
// CHECK-NEXT: [[AM:%.*]] = getelementptr inbounds [[B]]* [[BT2]], i32 0, i32 0
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[RET:%.*]], [[A]]* [[AM]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1AC1ERKS0_([[A]]* [[RET:%.*]], [[A]]* nonnull [[AM]])
|
||||
// CHECK-NEXT: call void @_ZN7Elision1BD1Ev([[B]]* [[BT2]])
|
||||
return B().a;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace test0 {
|
|||
void test(A t) {
|
||||
// CHECK: [[ARR:%.*]] = load [[A:%.*]]** @_ZN5test05arrayE, align 8
|
||||
// CHECK-NEXT: [[IDX:%.*]] = getelementptr inbounds [[A]]* [[ARR]], i64 0
|
||||
// CHECK-NEXT: [[TMP:%.*]] = call [[A]]* @_ZNV5test01AaSERVKS0_([[A]]* [[IDX]], [[A]]* [[T:%.*]])
|
||||
// CHECK-NEXT: [[TMP:%.*]] = call nonnull [[A]]* @_ZNV5test01AaSERVKS0_([[A]]* [[IDX]], [[A]]* nonnull [[T:%.*]])
|
||||
// CHECK-NEXT: ret void
|
||||
array[0] = t;
|
||||
}
|
||||
|
|
|
@ -15,5 +15,5 @@ void call_once() {
|
|||
f();
|
||||
f1();
|
||||
}
|
||||
// CHECK: call %0* @_Z1fv()
|
||||
// CHECK: call %0* @_Z2f1v()
|
||||
// CHECK: call nonnull %0* @_Z1fv()
|
||||
// CHECK: call nonnull %0* @_Z2f1v()
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace test0 {
|
|||
// CHECK-NEXT: load
|
||||
// CHECK-NEXT: [[T2:%.*]] = bitcast i8* {{.*}} to [[BYREF_A]]*
|
||||
// CHECK-NEXT: [[T3:%.*]] = getelementptr inbounds [[BYREF_A]]* [[T2]], i32 0, i32 7
|
||||
// CHECK-NEXT: call void @_ZN5test01AC1ERKS0_([[A]]* [[T1]], [[A]]* [[T3]])
|
||||
// CHECK-NEXT: call void @_ZN5test01AC1ERKS0_([[A]]* [[T1]], [[A]]* nonnull [[T3]])
|
||||
// CHECK-NEXT: ret void
|
||||
|
||||
// CHECK: define internal void [[DISPOSE_HELPER]](
|
||||
|
|
|
@ -33,7 +33,7 @@ typename remove_reference<T>::type&& move(T &&x) {
|
|||
|
||||
// CHECK-LABEL: define void @_Z12library_moveRU8__strongP11objc_objectS2_
|
||||
void library_move(__strong id &x, __strong id &y) {
|
||||
// CHECK: call i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
|
||||
// CHECK: call nonnull i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
|
||||
// CHECK: load i8**
|
||||
// CHECK: store i8* null, i8**
|
||||
// CHECK: load i8***
|
||||
|
@ -46,7 +46,7 @@ void library_move(__strong id &x, __strong id &y) {
|
|||
|
||||
// CHECK-LABEL: define void @_Z12library_moveRU8__strongP11objc_object
|
||||
void library_move(__strong id &y) {
|
||||
// CHECK: [[Y:%[a-zA-Z0-9]+]] = call i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
|
||||
// CHECK: [[Y:%[a-zA-Z0-9]+]] = call nonnull i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_
|
||||
// Load the object
|
||||
// CHECK-NEXT: [[OBJ:%[a-zA-Z0-9]+]] = load i8** [[Y]]
|
||||
// Null out y
|
||||
|
@ -65,7 +65,7 @@ void library_move(__strong id &y) {
|
|||
// CHECK-LABEL: define void @_Z10const_moveRKU8__strongP11objc_object(
|
||||
void const_move(const __strong id &x) {
|
||||
// CHECK: [[Y:%.*]] = alloca i8*,
|
||||
// CHECK: [[X:%.*]] = call i8** @_Z4moveIRKU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_(
|
||||
// CHECK: [[X:%.*]] = call nonnull i8** @_Z4moveIRKU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_(
|
||||
// CHECK-NEXT: [[T0:%.*]] = load i8** [[X]]
|
||||
// CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
|
||||
// CHECK-NEXT: store i8* [[T1]], i8** [[Y]]
|
||||
|
|
|
@ -91,7 +91,7 @@ void test_ObjCBlockMember_copy_assign(ObjCBlockMember m1, ObjCBlockMember m2) {
|
|||
}
|
||||
|
||||
// Implicitly-generated copy assignment operator for ObjCBlockMember
|
||||
// CHECK: define linkonce_odr {{%.*}}* @_ZN15ObjCBlockMemberaSERKS_(
|
||||
// CHECK: define linkonce_odr nonnull {{%.*}}* @_ZN15ObjCBlockMemberaSERKS_(
|
||||
// CHECK: [[T0:%.*]] = getelementptr inbounds [[T:%.*]]* {{%.*}}, i32 0, i32 0
|
||||
// CHECK-NEXT: [[T1:%.*]] = load i32 (i32)** [[T0]], align 8
|
||||
// CHECK-NEXT: [[T2:%.*]] = bitcast i32 (i32)* [[T1]] to i8*
|
||||
|
|
|
@ -43,7 +43,7 @@ void test_D(D d1, D d2) {
|
|||
d1 = d2;
|
||||
}
|
||||
|
||||
// CHECK-OBJ-LABEL: define linkonce_odr %struct.D* @_ZN1DaSERS_
|
||||
// CHECK-OBJ-LABEL: define linkonce_odr nonnull %struct.D* @_ZN1DaSERS_
|
||||
// CHECK-OBJ: {{call.*_ZN1AaSERS_}}
|
||||
// CHECK-OBJ: {{call.*_ZN1BaSERS_}}
|
||||
// CHECK-OBJ: {{call.*_ZN1CaSERKS_}}
|
||||
|
|
|
@ -41,7 +41,7 @@ void f(D d) {
|
|||
D d2(d);
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1DC1ERS_(%struct.D* %this, %struct.D*) unnamed_addr
|
||||
// CHECK-LABEL: define linkonce_odr void @_ZN1DC1ERS_(%struct.D* %this, %struct.D* nonnull) unnamed_addr
|
||||
// CHECK: call void @_ZN1AC1Ev
|
||||
// CHECK: call void @_ZN1CC2ERS_1A
|
||||
// CHECK: call void @_ZN1AD1Ev
|
||||
|
|
|
@ -24,5 +24,5 @@ static SetSection gSetSection;
|
|||
// CHECK: [[SELF:%.*]] = alloca [[T6:%.*]]*, align
|
||||
// CHECK: [[T0:%.*]] = load {{.*}}* [[SELF]], align
|
||||
// CHECK: [[T1:%.*]] = load {{.*}}* @"\01L_OBJC_SELECTOR_REFERENCES_"
|
||||
// CHECK: [[C:%.*]] = call %struct.SetSection* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: call i32* @_ZN10SetSection2atEi(%struct.SetSection* [[C]]
|
||||
// CHECK: [[C:%.*]] = call nonnull %struct.SetSection* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: call nonnull i32* @_ZN10SetSection2atEi(%struct.SetSection* [[C]]
|
||||
|
|
|
@ -15,6 +15,6 @@
|
|||
}
|
||||
@end
|
||||
|
||||
// CHECK: [[T:%.*]] = call i32* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: [[T:%.*]] = call nonnull i32* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: [[U:%.*]] = load i32* [[T]]
|
||||
// CHECK [[V:%.*]] = icmp eq i32 [[U]], 0
|
||||
|
|
|
@ -11,7 +11,7 @@ void GetURL() const;
|
|||
|
||||
@implementation TNodeIconAndNameCell
|
||||
- (const TFENode&) node {
|
||||
// CHECK: call %struct.TFENode* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: call nonnull %struct.TFENode* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK-NEXT: call void @_ZNK7TFENode6GetURLEv(%struct.TFENode* %{{.*}})
|
||||
self.node.GetURL();
|
||||
} // expected-warning {{control reaches end of non-void function}}
|
||||
|
@ -27,12 +27,12 @@ void f0(const X &parent);
|
|||
- (const X&) target;
|
||||
@end
|
||||
void f1(A *a) {
|
||||
// CHECK: [[PRP:%.*]] = call %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* [[PRP]])
|
||||
// CHECK: [[PRP:%.*]] = call nonnull %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* nonnull [[PRP]])
|
||||
f0(a.target);
|
||||
|
||||
// CHECK: [[MSG:%.*]] = call %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* [[MSG]])
|
||||
// CHECK: [[MSG:%.*]] = call nonnull %struct.X* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK-NEXT:call void @_Z2f0RK1X(%struct.X* nonnull [[MSG]])
|
||||
f0([a target]);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,10 +26,10 @@ typedef Quad2<double> Quad2d;
|
|||
|
||||
// CHECK: [[TWO:%.*]] = load i8** @"\01L_OBJC_SELECTOR_REFERENCES_", !invariant.load !5
|
||||
// CHECK: [[THREE:%.*]] = bitcast [[ONET:%.*]]* [[ONE:%.*]] to i8*
|
||||
// CHECK: [[CALL:%.*]] = call %struct.Quad2* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to %struct.Quad2* (i8*, i8*)*)(i8* [[THREE]], i8* [[TWO]])
|
||||
// CHECK: [[CALL:%.*]] = call nonnull %struct.Quad2* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to %struct.Quad2* (i8*, i8*)*)(i8* [[THREE]], i8* [[TWO]])
|
||||
// CHECK: [[FOUR:%.*]] = load i8** @"\01L_OBJC_SELECTOR_REFERENCES_2", !invariant.load !5
|
||||
// CHECK: [[FIVE:%.*]] = bitcast [[ONET]]* [[ZERO:%.*]] to i8*
|
||||
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.Quad2*)*)(i8* [[FIVE]], i8* [[FOUR]], %struct.Quad2* [[CALL]])
|
||||
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.Quad2*)*)(i8* [[FIVE]], i8* [[FOUR]], %struct.Quad2* nonnull [[CALL]])
|
||||
|
||||
|
||||
struct A {
|
||||
|
@ -49,5 +49,5 @@ void test(C *c, const A &a) {
|
|||
// CHECK: [[ONE1:%.*]] = load %struct.A** [[AADDR:%.*]], align 8
|
||||
// CHECK: [[TWO1:%.*]] = load i8** @"\01L_OBJC_SELECTOR_REFERENCES_5", !invariant.load !5
|
||||
// CHECK: [[THREE1:%.*]] = bitcast [[TWOT:%.*]]* [[ZERO1:%.*]] to i8*
|
||||
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.A*)*)(i8* [[THREE1]], i8* [[TWO1]], %struct.A* [[ONE1]])
|
||||
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.A*)*)(i8* [[THREE1]], i8* [[TWO1]], %struct.A* nonnull [[ONE1]])
|
||||
// CHECK: store %struct.A* [[ONE1]], %struct.A** [[RESULT:%.*]], align 8
|
||||
|
|
|
@ -33,7 +33,7 @@ struct TCPPObject
|
|||
// CHECK: [[TWO:%.*]] = load %struct.TCPPObject** [[ADDR:%.*]], align 8
|
||||
// CHECK: [[THREE:%.*]] = load %struct.TCPPObject** [[ADDR1:%.*]], align 8
|
||||
// CHECK: [[CALL:%.*]] = call i32 @_Z7DEFAULTv()
|
||||
// CHECK: call void @_ZN10TCPPObjectC1ERKS_i(%struct.TCPPObject* [[TWO]], %struct.TCPPObject* [[THREE]], i32 [[CALL]])
|
||||
// CHECK: call void @_ZN10TCPPObjectC1ERKS_i(%struct.TCPPObject* [[TWO]], %struct.TCPPObject* nonnull [[THREE]], i32 [[CALL]])
|
||||
// CHECK: ret void
|
||||
|
||||
// CHECK: define internal void @"\01-[MyDocument MyProperty]"(
|
||||
|
@ -46,7 +46,7 @@ struct TCPPObject
|
|||
// CHECK-LABEL: define internal void @__assign_helper_atomic_property_(
|
||||
// CHECK: [[TWO:%.*]] = load %struct.TCPPObject** [[ADDR:%.*]], align 8
|
||||
// CHECK: [[THREE:%.*]] = load %struct.TCPPObject** [[ADDR1:%.*]], align 8
|
||||
// CHECK: [[CALL:%.*]] = call %struct.TCPPObject* @_ZN10TCPPObjectaSERKS_(%struct.TCPPObject* [[TWO]], %struct.TCPPObject* [[THREE]])
|
||||
// CHECK: [[CALL:%.*]] = call nonnull %struct.TCPPObject* @_ZN10TCPPObjectaSERKS_(%struct.TCPPObject* [[TWO]], %struct.TCPPObject* nonnull [[THREE]])
|
||||
// CHECK: ret void
|
||||
|
||||
// CHECK: define internal void @"\01-[MyDocument setMyProperty:]"(
|
||||
|
|
|
@ -32,7 +32,7 @@ struct CGRect {
|
|||
@synthesize frame;
|
||||
|
||||
// CHECK: define internal void @"\01-[I setPosition:]"
|
||||
// CHECK: call %class.S* @_ZN1SaSERKS_
|
||||
// CHECK: call nonnull %class.S* @_ZN1SaSERKS_
|
||||
// CHECK-NEXT: ret void
|
||||
|
||||
- (void)setFrame:(CGRect)frameRect {}
|
||||
|
@ -55,7 +55,7 @@ struct CGRect {
|
|||
@end
|
||||
|
||||
// CHECK-LABEL: define i32 @main
|
||||
// CHECK: call void @_ZN1SC1ERKS_(%class.S* [[AGGTMP:%[a-zA-Z0-9\.]+]], %class.S* {{%[a-zA-Z0-9\.]+}})
|
||||
// CHECK: call void @_ZN1SC1ERKS_(%class.S* [[AGGTMP:%[a-zA-Z0-9\.]+]], %class.S* nonnull {{%[a-zA-Z0-9\.]+}})
|
||||
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %class.S*)*)(i8* {{%[a-zA-Z0-9\.]+}}, i8* {{%[a-zA-Z0-9\.]+}}, %class.S* [[AGGTMP]])
|
||||
// CHECK-NEXT: ret i32 0
|
||||
int main() {
|
||||
|
@ -68,7 +68,7 @@ int main() {
|
|||
// rdar://8379892
|
||||
// CHECK-LABEL: define void @_Z1fP1A
|
||||
// CHECK: call void @_ZN1XC1Ev(%struct.X* [[LVTEMP:%[a-zA-Z0-9\.]+]])
|
||||
// CHECK: call void @_ZN1XC1ERKS_(%struct.X* [[AGGTMP:%[a-zA-Z0-9\.]+]], %struct.X* [[LVTEMP]])
|
||||
// CHECK: call void @_ZN1XC1ERKS_(%struct.X* [[AGGTMP:%[a-zA-Z0-9\.]+]], %struct.X* nonnull [[LVTEMP]])
|
||||
// CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.X*)*)({{.*}} %struct.X* [[AGGTMP]])
|
||||
struct X {
|
||||
X();
|
||||
|
|
|
@ -26,7 +26,7 @@ void test0() {
|
|||
const MyStruct& currentMyStruct = myClass.foo;
|
||||
}
|
||||
|
||||
// CHECK: [[C:%.*]] = call %struct.MyStruct* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: [[C:%.*]] = call nonnull %struct.MyStruct* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
|
||||
// CHECK: store %struct.MyStruct* [[C]], %struct.MyStruct** [[D:%.*]]
|
||||
|
||||
namespace test1 {
|
||||
|
@ -40,7 +40,7 @@ namespace test1 {
|
|||
@implementation Test1
|
||||
@synthesize prop1 = ivar;
|
||||
@end
|
||||
// CHECK: define internal [[A:%.*]]* @"\01-[Test1 prop1]"(
|
||||
// CHECK: define internal nonnull [[A:%.*]]* @"\01-[Test1 prop1]"(
|
||||
// CHECK: [[SELF:%.*]] = alloca [[TEST1:%.*]]*, align 8
|
||||
// CHECK: [[T0:%.*]] = load [[TEST1]]** [[SELF]]
|
||||
// CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST1]]* [[T0]] to i8*
|
||||
|
@ -49,7 +49,7 @@ namespace test1 {
|
|||
// CHECK-NEXT: ret [[A]]* [[T3]]
|
||||
|
||||
// CHECK: define internal void @"\01-[Test1 setProp1:]"(
|
||||
// CHECK: call [[A]]* @_ZN5test11AaSERKS0_(
|
||||
// CHECK: call nonnull [[A]]* @_ZN5test11AaSERKS0_(
|
||||
// CHECK-NEXT: ret void
|
||||
|
||||
// rdar://problem/10497174
|
||||
|
|
|
@ -66,9 +66,9 @@ unsigned testMixedStruct() {
|
|||
// CHECK: call {{.*}}memcpy{{.*}}(i8* %{{.*}}, i8* bitcast ({{.*}}* @_ZZ15testMixedStructvE1r to i8*), i64 16,
|
||||
ListInt_right r{0, 2};
|
||||
|
||||
// CHECK: call void @_Z10useListIntR4ListIiE(%[[ListInt]]* %[[l]])
|
||||
// CHECK: call void @_Z10useListIntR4ListIiE(%[[ListInt]]* nonnull %[[l]])
|
||||
useListInt(l);
|
||||
// CHECK: call void @_Z10useListIntR4ListIiE(%[[ListInt]]* %[[r]])
|
||||
// CHECK: call void @_Z10useListIntR4ListIiE(%[[ListInt]]* nonnull %[[r]])
|
||||
useListInt(r);
|
||||
|
||||
// CHECK: load i32* bitcast (i8* getelementptr inbounds (i8* bitcast ({{.*}}* @list_left to i8*), i64 8) to i32*)
|
||||
|
|
Loading…
Reference in New Issue