1
- // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -Xcc -fignore-exceptions -O | %FileCheck %s
1
+ // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -Xcc -fignore-exceptions -disable-llvm-optzns | %FileCheck %s
2
2
3
3
import CopyMoveAssignment
4
4
@@ -16,15 +16,31 @@ public func copyAssign() {
16
16
}
17
17
18
18
// CHECK-LABEL: define {{.*}}copyAssign
19
- // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignC1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignC2Ev|"\?\?0NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE:]])
20
- // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignC1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignC2Ev|"\?\?0NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE2:]])
21
- // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE]])
22
- // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignC1ERKS_|_ZN31NonTrivialCopyAndCopyMoveAssignC2ERKS_|"\?\?4NonTrivialCopyAndCopyMoveAssign@@QEAAAEAU0@AEBU0@@Z"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE]], %struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE2]])
23
- // CHECK: call swiftcc
24
- // CHECK: call {{.*}}{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE2]])
25
- // CHECK: call swiftcc
26
- // CHECK: call {{.*}} @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE]])
27
- // CHECK-NOT: NonTrivialCopyAndCopyMoveAssign
19
+ // CHECK: %[[#COPY_INSTANCE_I1:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[COPY_INSTANCE:.*]] to %struct.NonTrivialCopyAndCopyMoveAssign*
20
+ // CHECK: call void @{{__swift_cxx_ctor_ZN31NonTrivialCopyAndCopyMoveAssignC1Ev|__swift_cxx_ctor_ZN31NonTrivialCopyAndCopyMoveAssignC2Ev|"__swift_cxx_ctor_\?\?0NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE_I1]])
21
+
22
+ // CHECK: %[[#COPY_INSTANCE2_I1:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[COPY_INSTANCE2:.*]] to %struct.NonTrivialCopyAndCopyMoveAssign*
23
+ // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignC1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignC2Ev|"\?\?0NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE2_I1]])
24
+
25
+
26
+ // CHECK: %[[#TEMP_INSTANCE_I1:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[#TEMP_INSTANCE:]] to %struct.NonTrivialCopyAndCopyMoveAssign*
27
+ // CHECK: %[[#COPY_INSTANCE2_I2:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[COPY_INSTANCE2]]
28
+ // CHECK: call void @{{__swift_cxx_copy_ctor_ZN31NonTrivialCopyAndCopyMoveAssignC1ERKS_|__swift_cxx_copy_ctor_ZN31NonTrivialCopyAndCopyMoveAssignC2ERKS_|"__swift_cxx_copy_ctor_\?\?4NonTrivialCopyAndCopyMoveAssign@@QEAAAEAU0@AEBU0@@Z"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#TEMP_INSTANCE_I1]], %struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE2_I2]])
29
+
30
+ // CHECK: %[[#COPY_INSTANCE_I2:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[COPY_INSTANCE]]
31
+ // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE_I2]])
32
+
33
+ // CHECK: %[[#COPY_INSTANCE_I3:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[COPY_INSTANCE]]
34
+ // CHECK: %[[#TEMP_INSTANCE_I2:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[#TEMP_INSTANCE]]
35
+ // CHECK: call void @{{__swift_cxx_copy_ctor_ZN31NonTrivialCopyAndCopyMoveAssignC1ERKS_.1|__swift_cxx_copy_ctor_ZN31NonTrivialCopyAndCopyMoveAssignC2ERKS_.1|"__swift_cxx_copy_ctor_\?\?4NonTrivialCopyAndCopyMoveAssign@@QEAAAEAU0@AEBU0@@Z.1"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#COPY_INSTANCE_I3]], %struct.NonTrivialCopyAndCopyMoveAssign* %[[#TEMP_INSTANCE_I2]])
36
+
37
+ // CHECK: %[[#TEMP_INSTANCE_I3:]] = bitcast %TSo017NonTrivialCopyAndC10MoveAssignV* %[[#TEMP_INSTANCE]]
38
+ // CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#TEMP_INSTANCE_I3]])
39
+
40
+ // CHECK: call {{.*}} @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(
41
+ // CHECK: call {{.*}} @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(
42
+ // CHECK: call {{.*}} @{{_ZN31NonTrivialCopyAndCopyMoveAssignD1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignD2Ev|"\?\?1NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(
43
+
28
44
29
45
// CHECK-LABEL: define {{.*}}takeAssign
30
46
// CHECK: call %struct.NonTrivialCopyAndCopyMoveAssign* @{{_ZN31NonTrivialCopyAndCopyMoveAssignC1Ev|_ZN31NonTrivialCopyAndCopyMoveAssignC2Ev|"\?\?0NonTrivialCopyAndCopyMoveAssign@@QEAA@XZ"}}(%struct.NonTrivialCopyAndCopyMoveAssign* %[[#MOVE_INSTANCE:]])
0 commit comments