Skip to content

Commit 5be9bac

Browse files
Merge pull request #67092 from aschwaighofer/fix_test_interop
Fix test/Interop with opaque pointers
2 parents 5fd22b0 + 79894ff commit 5be9bac

File tree

44 files changed

+310
-400
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+310
-400
lines changed

test/Interop/C/function/emit-called-inline-function-irgen.swift

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55
// Swift.
66

77
// RUN: %empty-directory(%t)
8-
// RUN: %target-swift-frontend %use_no_opaque_pointers %s -I %S/Inputs -Xcc -std=c99 -emit-ir -o - | %FileCheck %s -check-prefix C99 --implicit-check-not notCalled
9-
// RUN: %target-swift-frontend %s -I %S/Inputs -Xcc -std=c99 -emit-ir -o -
10-
// RUN: %target-swiftxx-frontend %use_no_opaque_pointers %s -I %S/Inputs -emit-ir -o - | %FileCheck %s -check-prefix CXX --implicit-check-not notCalled
11-
// RUN: %target-swiftxx-frontend %s -I %S/Inputs -emit-ir -o -
8+
// RUN: %target-swift-frontend %s -I %S/Inputs -Xcc -std=c99 -emit-ir -o - | %FileCheck %s -check-prefix C99 --implicit-check-not notCalled
9+
// RUN: %target-swiftxx-frontend %s -I %S/Inputs -emit-ir -o - | %FileCheck %s -check-prefix CXX --implicit-check-not notCalled
1210

1311
import EmitCalledInlineFunction
1412

@@ -17,7 +15,7 @@ import EmitCalledInlineFunction
1715

1816
// CXX-DAG: define {{.*}}i32 @{{_Z15calledFromSwiftv|"\?calledFromSwift@@YAHXZ"}}()
1917
// CXX-DAG: define {{.*}}i32 @{{_Z18calledTransitivelyv|"\?calledTransitively@@YAHXZ"}}()
20-
// CXX-DAG: define {{.*}}i32 @{{_ZN1C32memberFunctionCalledTransitivelyEv|"\?memberFunctionCalledTransitively@C@@QEAAHXZ"}}(%class.C* {{.*}})
18+
// CXX-DAG: define {{.*}}i32 @{{_ZN1C32memberFunctionCalledTransitivelyEv|"\?memberFunctionCalledTransitively@C@@QEAAHXZ"}}(ptr {{.*}})
2119
// CXX-DAG: define {{.*}}i32 @{{_Z29calledTransitivelyFromVarInitv|"\?calledTransitivelyFromVarInit@@YAHXZ"}}()
2220

2321
calledFromSwift()

test/Interop/C/struct/struct-decl-context-irgen.swift

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// RUN: %target-swift-emit-ir %use_no_opaque_pointers -I %S/Inputs %s | %FileCheck %s
2-
// RUN: %target-swift-emit-ir -I %S/Inputs %s
1+
// RUN: %target-swift-emit-ir -I %S/Inputs %s | %FileCheck %s
32

43
// This test checks that structs that are imported from a C module are mangled
54
// in Swift names as if they are declared in the global namespace, even when
@@ -49,7 +48,7 @@ public func take(_: StructTypedefTag4) {}
4948
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo21StructNestedComplete4VF"({{.*}})
5049
public func take(_: StructNestedComplete4) {}
5150

52-
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo17StructTypedefTag4VGF"(i8* %0)
51+
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo17StructTypedefTag4VGF"(ptr %0)
5352
public func take(_: StructTypedefName4) {}
5453

5554
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo27StructNestedCompletedLater4VF"({{.*}})
@@ -58,7 +57,7 @@ public func take(_: StructNestedCompletedLater4) {}
5857
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo21StructNestedComplete5VF"({{.*}})
5958
public func take(_: StructNestedComplete5) {}
6059

61-
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyys13OpaquePointerVF"(i8* %0)
60+
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyys13OpaquePointerVF"(ptr %0)
6261
public func take(_: StructTypedefName5) {}
6362

6463
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo27StructNestedCompletedLater5VF"({{.*}})
@@ -70,7 +69,7 @@ public func take(_: StructTypedefName6) {}
7069
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo21StructNestedComplete6VF"({{.*}})
7170
public func take(_: StructNestedComplete6) {}
7271

73-
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo18StructTypedefName6aGF"(i8* %0)
72+
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo18StructTypedefName6aGF"(ptr %0)
7473
public func take(_: StructTypedefName6Ptr) {}
7574

7675
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo27StructNestedCompletedLater6VF"({{.*}})
@@ -82,7 +81,7 @@ public func take(_: StructTypedefName7) {}
8281
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo21StructNestedComplete7VF"({{.*}})
8382
public func take(_: StructNestedComplete7) {}
8483

85-
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo18StructTypedefName7aGF"(i8* %0)
84+
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo18StructTypedefName7aGF"(ptr %0)
8685
public func take(_: StructTypedefName7Ptr) {}
8786

8887
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo27StructNestedCompletedLater7VF"({{.*}})
@@ -94,10 +93,10 @@ public func take(_: StructTypedefName8) {}
9493
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo21StructNestedComplete8VF"({{.*}})
9594
public func take(_: StructNestedComplete8) {}
9695

97-
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo18StructTypedefName8aGF"(i8* %0)
96+
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySo18StructTypedefName8aGF"(ptr %0)
9897
public func take(_: StructTypedefName8Ptr) {}
9998

100-
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySpySo18StructTypedefName8aGSgGF"(i8* %0)
99+
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySpySpySo18StructTypedefName8aGSgGF"(ptr %0)
101100
public func take(_: StructTypedefName8PtrPtr) {}
102101

103102
// CHECK-LABEL: define {{.*}} void @"$s4main4takeyySo27StructNestedCompletedLater8VF"({{.*}})

test/Interop/Cxx/class/constructors-copy-irgen-macosx.swift

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Target-specific tests for C++ copy constructor code generation.
22

3-
// RUN: %swift %use_no_opaque_pointers -module-name MySwift -target x86_64-apple-macosx10.9 -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info -Xcc -fignore-exceptions | %FileCheck %s -check-prefix=ITANIUM_X64
4-
// RUN: %swift -module-name MySwift -target x86_64-apple-macosx10.9 -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info -Xcc -fignore-exceptions
3+
// RUN: %swift -module-name MySwift -target x86_64-apple-macosx10.9 -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info -Xcc -fignore-exceptions | %FileCheck %s -check-prefix=ITANIUM_X64
54

65
// REQUIRES: OS=macosx
76
// REQUIRES: CPU=x86_64
@@ -11,13 +10,9 @@ import Constructors
1110
import TypeClassification
1211

1312
// ITANIUM_X64-LABEL: define swiftcc void @"$s7MySwift35copyWithUserProvidedCopyConstructorySo03Has{{cdeF0V_ACtACF|efgH0V_ADtADF}}"
14-
// ITANIUM_X64-SAME: (%TSo30HasUserProvidedCopyConstructorV* {{.*}}[[ARG0:%.*]], %TSo30HasUserProvidedCopyConstructorV* {{.*}}[[ARG1:%.*]], %TSo30HasUserProvidedCopyConstructorV* {{.*}}[[ARG2:%.*]])
15-
// ITANIUM_X64: [[ARG0_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG0]] to %struct.HasUserProvidedCopyConstructor*
16-
// ITANIUM_X64: [[ARG2_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG2]] to %struct.HasUserProvidedCopyConstructor*
17-
// ITANIUM_X64: call void @_ZN30HasUserProvidedCopyConstructorC1ERKS_(%struct.HasUserProvidedCopyConstructor* [[ARG0_AS_STRUCT]], %struct.HasUserProvidedCopyConstructor* [[ARG2_AS_STRUCT]])
18-
// ITANIUM_X64: [[ARG1_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG1]] to %struct.HasUserProvidedCopyConstructor*
19-
// ITANIUM_X64: [[ARG2_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG2]] to %struct.HasUserProvidedCopyConstructor*
20-
// ITANIUM_X64: call void @_ZN30HasUserProvidedCopyConstructorC1ERKS_(%struct.HasUserProvidedCopyConstructor* [[ARG1_AS_STRUCT]], %struct.HasUserProvidedCopyConstructor* [[ARG2_AS_STRUCT]])
13+
// ITANIUM_X64-SAME: (ptr {{.*}}[[ARG0:%.*]], ptr {{.*}}[[ARG1:%.*]], ptr {{.*}}[[ARG2:%.*]])
14+
// ITANIUM_X64: call void @_ZN30HasUserProvidedCopyConstructorC1ERKS_(ptr [[ARG0]], ptr [[ARG2]])
15+
// ITANIUM_X64: call void @_ZN30HasUserProvidedCopyConstructorC1ERKS_(ptr [[ARG1]], ptr [[ARG2]])
2116
// ITANIUM_X64: ret void
2217

2318
public func copyWithUserProvidedCopyConstructor(_ x: HasUserProvidedCopyConstructor)

test/Interop/Cxx/class/constructors-copy-irgen-windows.swift

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Target-specific tests for C++ copy constructor code generation.
22

3-
// RUN: %swift %use_no_opaque_pointers -module-name MySwift -target x86_64-unknown-windows-msvc -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info | %FileCheck %s -check-prefix=MICROSOFT_X64
4-
// RUN: %swift -module-name MySwift -target x86_64-unknown-windows-msvc -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info
3+
// RUN: %swift -module-name MySwift -target x86_64-unknown-windows-msvc -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info | %FileCheck %s -check-prefix=MICROSOFT_X64
54

65
// REQUIRES: OS=windows-msvc
76
// REQUIRES: CPU=x86_64
@@ -10,13 +9,9 @@ import Constructors
109
import TypeClassification
1110

1211
// MICROSOFT_X64-LABEL: define dllexport swiftcc void @"$s7MySwift35copyWithUserProvidedCopyConstructorySo03Has{{efgH0V_ADtADF|cdeF0V_ACtACF}}"
13-
// MICROSOFT_X64-SAME: (%TSo30HasUserProvidedCopyConstructorV* {{.*}}[[ARG0:%.*]], %TSo30HasUserProvidedCopyConstructorV* {{.*}}[[ARG1:%.*]], %TSo30HasUserProvidedCopyConstructorV* {{.*}}[[ARG2:%.*]])
14-
// MICROSOFT_X64: [[ARG0_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG0]] to %struct.HasUserProvidedCopyConstructor*
15-
// MICROSOFT_X64: [[ARG2_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG2]] to %struct.HasUserProvidedCopyConstructor*
16-
// MICROSOFT_X64: call %struct.HasUserProvidedCopyConstructor* @"??0HasUserProvidedCopyConstructor@@QEAA@AEBU0@@Z"(%struct.HasUserProvidedCopyConstructor* [[ARG0_AS_STRUCT]], %struct.HasUserProvidedCopyConstructor* [[ARG2_AS_STRUCT]])
17-
// MICROSOFT_X64: [[ARG1_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG1]] to %struct.HasUserProvidedCopyConstructor*
18-
// MICROSOFT_X64: [[ARG2_AS_STRUCT:%.*]] = bitcast %TSo30HasUserProvidedCopyConstructorV* [[ARG2]] to %struct.HasUserProvidedCopyConstructor*
19-
// MICROSOFT_X64: call %struct.HasUserProvidedCopyConstructor* @"??0HasUserProvidedCopyConstructor@@QEAA@AEBU0@@Z"(%struct.HasUserProvidedCopyConstructor* [[ARG1_AS_STRUCT]], %struct.HasUserProvidedCopyConstructor* [[ARG2_AS_STRUCT]])
12+
// MICROSOFT_X64-SAME: (ptr {{.*}}[[ARG0:%.*]], ptr {{.*}}[[ARG1:%.*]], ptr {{.*}}[[ARG2:%.*]])
13+
// MICROSOFT_X64: call ptr @"??0HasUserProvidedCopyConstructor@@QEAA@AEBU0@@Z"(ptr [[ARG0]], ptr [[ARG2]])
14+
// MICROSOFT_X64: call ptr @"??0HasUserProvidedCopyConstructor@@QEAA@AEBU0@@Z"(ptr [[ARG1]], ptr [[ARG2]])
2015
// MICROSOFT_X64: ret void
2116

2217
public func copyWithUserProvidedCopyConstructor(_ x: HasUserProvidedCopyConstructor)
Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Target-specific tests for C++ constructor call code generation.
22

3-
// RUN: %swift %use_no_opaque_pointers -module-name MySwift -target x86_64-apple-macosx10.9 -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info -Xcc -fignore-exceptions | %FileCheck %s -check-prefix=ITANIUM_X64
4-
// RUN: %swift -module-name MySwift -target x86_64-apple-macosx10.9 -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info -Xcc -fignore-exceptions
3+
// RUN: %swift -module-name MySwift -target x86_64-apple-macosx10.9 -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info -Xcc -fignore-exceptions | %FileCheck %s -check-prefix=ITANIUM_X64
54

65
// REQUIRES: OS=macosx
76
// REQUIRES: CPU=x86_64
@@ -10,16 +9,16 @@ import Constructors
109
import TypeClassification
1110

1211
public func createHasVirtualBase() -> HasVirtualBase {
13-
// ITANIUM_X64: define swiftcc void @"$s7MySwift20createHasVirtualBaseSo0deF0VyF"(%TSo14HasVirtualBaseV* noalias nocapture sret({{.*}}) %0)
12+
// ITANIUM_X64: define swiftcc void @"$s7MySwift20createHasVirtualBaseSo0deF0VyF"(ptr noalias nocapture sret({{.*}}) %0)
1413
// ITANIUM_X64-NOT: define
15-
// ITANIUM_X64: call void @_ZN14HasVirtualBaseC1E7ArgType(%struct.HasVirtualBase* %{{[0-9]+}}, i32 %{{[0-9]+}})
14+
// ITANIUM_X64: call void @_ZN14HasVirtualBaseC1E7ArgType(ptr %{{[0-9]+}}, i32 %{{[0-9]+}})
1615
return HasVirtualBase(ArgType())
1716
}
1817

1918
public func createImplicitDefaultConstructor() -> ImplicitDefaultConstructor {
2019
// ITANIUM_X64: define swiftcc i32 @"$s7MySwift32createImplicitDefaultConstructorSo0deF0VyF"()
2120
// ITANIUM_X64-NOT: define
22-
// ITANIUM_X64: call void @_ZN26ImplicitDefaultConstructorC1Ev(%struct.ImplicitDefaultConstructor* %{{[0-9]+}})
21+
// ITANIUM_X64: call void @_ZN26ImplicitDefaultConstructorC1Ev(ptr %{{[0-9]+}})
2322
return ImplicitDefaultConstructor()
2423
}
2524

@@ -28,11 +27,8 @@ public func createStructWithSubobjectCopyConstructorAndValue() {
2827
// ITANIUM_X64: [[MEMBER:%.*]] = alloca %TSo33StructWithCopyConstructorAndValueV
2928
// ITANIUM_X64: [[OBJ:%.*]] = alloca %TSo42StructWithSubobjectCopyConstructorAndValueV
3029
// ITANIUM_X64: [[TMP:%.*]] = alloca %TSo33StructWithCopyConstructorAndValueV
31-
// ITANIUM_X64: [[MEMBER_AS_STRUCT:%.*]] = bitcast %TSo33StructWithCopyConstructorAndValueV* [[MEMBER]] to %struct.StructWithCopyConstructorAndValue*
32-
// ITANIUM_X64: void @_ZN33StructWithCopyConstructorAndValueC1Ev(%struct.StructWithCopyConstructorAndValue* [[MEMBER_AS_STRUCT]])
33-
// ITANIUM_X64: [[TMP_STRUCT:%.*]] = bitcast %TSo33StructWithCopyConstructorAndValueV* [[TMP]] to %struct.StructWithCopyConstructorAndValue*
34-
// ITANIUM_X64: [[MEMBER_AS_STRUCT_2:%.*]] = bitcast %TSo33StructWithCopyConstructorAndValueV* [[MEMBER]] to %struct.StructWithCopyConstructorAndValue*
35-
// ITANIUM_X64: call void @_ZN33StructWithCopyConstructorAndValueC1ERKS_(%struct.StructWithCopyConstructorAndValue* [[TMP_STRUCT]], %struct.StructWithCopyConstructorAndValue* [[MEMBER_AS_STRUCT_2]])
30+
// ITANIUM_X64: void @_ZN33StructWithCopyConstructorAndValueC1Ev(ptr [[MEMBER]])
31+
// ITANIUM_X64: call void @_ZN33StructWithCopyConstructorAndValueC1ERKS_(ptr [[TMP]], ptr [[MEMBER]])
3632
// ITANIUM_X64: ret void
3733
let member = StructWithCopyConstructorAndValue()
3834
let obj = StructWithSubobjectCopyConstructorAndValue(member: member)
@@ -41,11 +37,10 @@ public func createStructWithSubobjectCopyConstructorAndValue() {
4137
public func createTemplatedConstructor() {
4238
// ITANIUM_X64-LABEL: define swiftcc void @"$s7MySwift26createTemplatedConstructoryyF"()
4339
// ITANIUM_X64: [[OBJ:%.*]] = alloca %TSo20TemplatedConstructorV
44-
// ITANIUM_X64: [[IVAL:%.*]] = load i32, i32*
45-
// ITANIUM_X64: [[OBJ_AS_STRUCT:%.*]] = bitcast %TSo20TemplatedConstructorV* [[OBJ]] to %struct.TemplatedConstructor*
46-
// ITANIUM_X64: call void @_ZN20TemplatedConstructorC1I7ArgTypeEET_(%struct.TemplatedConstructor* [[OBJ_AS_STRUCT]], i32 [[IVAL]])
40+
// ITANIUM_X64: [[IVAL:%.*]] = load i32, ptr
41+
// ITANIUM_X64: call void @_ZN20TemplatedConstructorC1I7ArgTypeEET_(ptr [[OBJ]], i32 [[IVAL]])
4742
// ITANIUM_X64: ret void
4843

49-
// ITANIUM_X64-LABEL: define {{.*}}void @_ZN20TemplatedConstructorC1I7ArgTypeEET_(%struct.TemplatedConstructor* {{.*}}, i32 {{.*}})
44+
// ITANIUM_X64-LABEL: define {{.*}}void @_ZN20TemplatedConstructorC1I7ArgTypeEET_(ptr {{.*}}, i32 {{.*}})
5045
let templated = TemplatedConstructor(ArgType())
5146
}
Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Target-specific tests for C++ constructor call code generation.
22

3-
// RUN: %swift %use_no_opaque_pointers -module-name MySwift -target x86_64-unknown-windows-msvc -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info | %FileCheck %s -check-prefix=MICROSOFT_X64
4-
// RUN: %swift -module-name MySwift -target x86_64-unknown-windows-msvc -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info
3+
// RUN: %swift -module-name MySwift -target x86_64-unknown-windows-msvc -dump-clang-diagnostics -I %S/Inputs -enable-experimental-cxx-interop -emit-ir %s -parse-stdlib -parse-as-library -disable-legacy-type-info | %FileCheck %s -check-prefix=MICROSOFT_X64
54

65
// REQUIRES: OS=windows-msvc
76
// REQUIRES: CPU=x86_64
@@ -10,18 +9,18 @@ import Constructors
109
import TypeClassification
1110

1211
public func createHasVirtualBase() -> HasVirtualBase {
13-
// MICROSOFT_X64: define dllexport swiftcc void @"$s7MySwift20createHasVirtualBaseSo0{{bcD0VyF|deF0VyF}}"(%TSo14HasVirtualBaseV* noalias nocapture sret({{.*}}) %0)
12+
// MICROSOFT_X64: define dllexport swiftcc void @"$s7MySwift20createHasVirtualBaseSo0{{bcD0VyF|deF0VyF}}"(ptr noalias nocapture sret({{.*}}) %0)
1413
// MICROSOFT_X64-NOT: define
1514
// Note `this` return type and implicit "most derived" argument.
16-
// MICROSOFT_X64: call %struct.HasVirtualBase* @"??0HasVirtualBase@@QEAA@UArgType@@@Z"(%struct.HasVirtualBase* %{{[0-9]+}}, i32 %{{[0-9]+}}, i32 1)
15+
// MICROSOFT_X64: call ptr @"??0HasVirtualBase@@QEAA@UArgType@@@Z"(ptr %{{[0-9]+}}, i32 %{{[0-9]+}}, i32 1)
1716
return HasVirtualBase(ArgType())
1817
}
1918

2019
public func createImplicitDefaultConstructor() -> ImplicitDefaultConstructor {
2120
// MICROSOFT_X64: define dllexport swiftcc i32 @"$s7MySwift32createImplicitDefaultConstructorSo0{{bcD0VyF|deF0VyF}}"()
2221
// MICROSOFT_X64-NOT: define
2322
// Note `this` return type but no implicit "most derived" argument.
24-
// MICROSOFT_X64: call %struct.ImplicitDefaultConstructor* @"??0ImplicitDefaultConstructor@@QEAA@XZ"(%struct.ImplicitDefaultConstructor* %{{[0-9]+}})
23+
// MICROSOFT_X64: call ptr @"??0ImplicitDefaultConstructor@@QEAA@XZ"(ptr %{{[0-9]+}})
2524
return ImplicitDefaultConstructor()
2625
}
2726

@@ -30,11 +29,8 @@ public func createStructWithSubobjectCopyConstructorAndValue() {
3029
// MICROSOFT_X64: [[MEMBER:%.*]] = alloca %TSo33StructWithCopyConstructorAndValueV
3130
// MICROSOFT_X64: [[OBJ:%.*]] = alloca %TSo42StructWithSubobjectCopyConstructorAndValueV
3231
// MICROSOFT_X64: [[TMP:%.*]] = alloca %TSo33StructWithCopyConstructorAndValueV
33-
// MICROSOFT_X64: [[MEMBER_AS_STRUCT:%.*]] = bitcast %TSo33StructWithCopyConstructorAndValueV* [[MEMBER]] to %struct.StructWithCopyConstructorAndValue*
34-
// MICROSOFT_X64: call %struct.StructWithCopyConstructorAndValue* @"??0StructWithCopyConstructorAndValue@@QEAA@XZ"(%struct.StructWithCopyConstructorAndValue* [[MEMBER_AS_STRUCT]])
35-
// MICROSOFT_X64: [[TMP_STRUCT:%.*]] = bitcast %TSo33StructWithCopyConstructorAndValueV* [[TMP]] to %struct.StructWithCopyConstructorAndValue*
36-
// MICROSOFT_X64: [[MEMBER_AS_STRUCT_2:%.*]] = bitcast %TSo33StructWithCopyConstructorAndValueV* [[MEMBER]] to %struct.StructWithCopyConstructorAndValue*
37-
// MICROSOFT_X64: call %struct.StructWithCopyConstructorAndValue* @"??0StructWithCopyConstructorAndValue@@QEAA@AEBU0@@Z"(%struct.StructWithCopyConstructorAndValue* [[TMP_STRUCT]], %struct.StructWithCopyConstructorAndValue* [[MEMBER_AS_STRUCT_2]])
32+
// MICROSOFT_X64: call ptr @"??0StructWithCopyConstructorAndValue@@QEAA@XZ"(ptr [[MEMBER]])
33+
// MICROSOFT_X64: call ptr @"??0StructWithCopyConstructorAndValue@@QEAA@AEBU0@@Z"(ptr [[TMP]], ptr [[MEMBER]])
3834
// MICROSOFT_X64: ret void
3935
let member = StructWithCopyConstructorAndValue()
4036
let obj = StructWithSubobjectCopyConstructorAndValue(member: member)
@@ -43,11 +39,10 @@ public func createStructWithSubobjectCopyConstructorAndValue() {
4339
public func createTemplatedConstructor() {
4440
// MICROSOFT_X64-LABEL: define dllexport swiftcc void @"$s7MySwift26createTemplatedConstructoryyF"()
4541
// MICROSOFT_X64: [[OBJ:%.*]] = alloca %TSo20TemplatedConstructorV
46-
// MICROSOFT_X64: [[IVAL:%.*]] = load i32, i32*
47-
// MICROSOFT_X64: [[OBJ_AS_STRUCT:%.*]] = bitcast %TSo20TemplatedConstructorV* [[OBJ]] to %struct.TemplatedConstructor*
48-
// MICROSOFT_X64: call %struct.TemplatedConstructor* @"??$?0UArgType@@@TemplatedConstructor@@QEAA@UArgType@@@Z"(%struct.TemplatedConstructor* [[OBJ_AS_STRUCT]], i32 [[IVAL]])
42+
// MICROSOFT_X64: [[IVAL:%.*]] = load i32, ptr
43+
// MICROSOFT_X64: call ptr @"??$?0UArgType@@@TemplatedConstructor@@QEAA@UArgType@@@Z"(ptr [[OBJ]], i32 [[IVAL]])
4944
// MICROSOFT_X64: ret void
5045

51-
// MICROSOFT_X64-LABEL: define {{.*}}%struct.TemplatedConstructor* @"??$?0UArgType@@@TemplatedConstructor@@QEAA@UArgType@@@Z"(%struct.TemplatedConstructor* {{.*}}, i32 {{.*}})
46+
// MICROSOFT_X64-LABEL: define {{.*}}ptr @"??$?0UArgType@@@TemplatedConstructor@@QEAA@UArgType@@@Z"(ptr {{.*}}, i32 {{.*}})
5247
let templated = TemplatedConstructor(ArgType())
5348
}

0 commit comments

Comments
 (0)