Skip to content

Commit c2aa41e

Browse files
Adjust test
1 parent 3528341 commit c2aa41e

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

clang/test/CIR/CodeGen/cxx-special-member-attr.cpp

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,22 @@
33

44
struct Flub {
55
int a = 123;
6-
// Trivial copy constructors/assignments are replaced with cir.copy
7-
// CIR: cir.copy {{.*}} : !cir.ptr<!rec_Flub>
8-
// CIR: @_ZN4FlubC1EOS_(%arg0: !cir.ptr<!rec_Flub> loc({{.*}}), %arg1: !cir.ptr<!rec_Flub> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Flub, move, trivial true>
9-
// CIR: @_ZN4FlubaSERKS_(%arg0: !cir.ptr<!rec_Flub> loc({{.*}}), %arg1: !cir.ptr<!rec_Flub> loc({{.*}})) -> !cir.ptr<!rec_Flub> special_member<#cir.cxx_assign<!rec_Flub, copy, trivial true>>
10-
// CIR: @_ZN4FlubaSEOS_(%arg0: !cir.ptr<!rec_Flub> loc({{.*}}), %arg1: !cir.ptr<!rec_Flub> loc({{.*}})) -> !cir.ptr<!rec_Flub> special_member<#cir.cxx_assign<!rec_Flub, move, trivial true>>
116
};
127

138
struct Foo {
149
int a;
1510

16-
// CIR: @_ZN3FooC2Ev(%arg0: !cir.ptr<!rec_Foo> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Foo, default>>
1711
Foo() : a(123) {}
18-
19-
// CIR: @_ZN3FooC2ERKS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Foo, copy>>
2012
Foo(const Foo &other) : a(other.a) {}
21-
22-
// CIR: @_ZN3FooC2EOS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Foo, move>>
2313
Foo(Foo &&other) noexcept : a(other.a) { other.a = 0; }
2414

25-
// CIR: @_ZN3FooaSERKS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) -> !cir.ptr<!rec_Foo> special_member<#cir.cxx_assign<!rec_Foo, copy>>
2615
Foo &operator=(const Foo &other) {
2716
if (this != &other) {
2817
a = other.a;
2918
}
3019
return *this;
3120
}
3221

33-
// CIR: @_ZN3FooaSEOS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) -> !cir.ptr<!rec_Foo> special_member<#cir.cxx_assign<!rec_Foo, move>>
3422
Foo &operator=(Foo &&other) noexcept {
3523
if (this != &other) {
3624
a = other.a;
@@ -39,22 +27,40 @@ struct Foo {
3927
return *this;
4028
}
4129

42-
// CIR: @_ZN3FooD1Ev(!cir.ptr<!rec_Foo>) special_member<#cir.cxx_dtor<!rec_Foo>>
4330
~Foo();
4431
};
4532

4633
void trivial_func() {
4734
Flub f1{};
35+
4836
Flub f2 = f1;
37+
// Trivial copy constructors/assignments are replaced with cir.copy
38+
// CIR: cir.copy {{.*}} : !cir.ptr<!rec_Flub>
39+
4940
Flub f3 = static_cast<Flub&&>(f1);
41+
// CIR: @_ZN4FlubC1EOS_(%arg0: !cir.ptr<!rec_Flub> loc({{.*}}), %arg1: !cir.ptr<!rec_Flub> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Flub, move, trivial true>
42+
5043
f2 = f1;
44+
// CIR: @_ZN4FlubaSERKS_(%arg0: !cir.ptr<!rec_Flub> loc({{.*}}), %arg1: !cir.ptr<!rec_Flub> loc({{.*}})) -> !cir.ptr<!rec_Flub> special_member<#cir.cxx_assign<!rec_Flub, copy, trivial true>>
45+
5146
f1 = static_cast<Flub&&>(f3);
47+
// CIR: @_ZN4FlubaSEOS_(%arg0: !cir.ptr<!rec_Flub> loc({{.*}}), %arg1: !cir.ptr<!rec_Flub> loc({{.*}})) -> !cir.ptr<!rec_Flub> special_member<#cir.cxx_assign<!rec_Flub, move, trivial true>>
5248
}
5349

5450
void non_trivial_func() {
5551
Foo f1{};
52+
// CIR: @_ZN3FooC2Ev(%arg0: !cir.ptr<!rec_Foo> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Foo, default>>
53+
5654
Foo f2 = f1;
55+
// CIR: @_ZN3FooC2ERKS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Foo, copy>>
56+
5757
Foo f3 = static_cast<Foo&&>(f1);
58+
// CIR: @_ZN3FooC2EOS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) special_member<#cir.cxx_ctor<!rec_Foo, move>>
59+
5860
f2 = f1;
61+
// CIR: @_ZN3FooaSERKS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) -> !cir.ptr<!rec_Foo> special_member<#cir.cxx_assign<!rec_Foo, copy>>
62+
5963
f1 = static_cast<Foo&&>(f3);
64+
// CIR: @_ZN3FooaSEOS_(%arg0: !cir.ptr<!rec_Foo> loc({{.*}}), %arg1: !cir.ptr<!rec_Foo> loc({{.*}})) -> !cir.ptr<!rec_Foo> special_member<#cir.cxx_assign<!rec_Foo, move>>
65+
// CIR: @_ZN3FooD1Ev(!cir.ptr<!rec_Foo>) special_member<#cir.cxx_dtor<!rec_Foo>>
6066
}

0 commit comments

Comments
 (0)