Skip to content

Commit 6962a3d

Browse files
committed
Fix test/multifile for opaque pointers
1 parent 6253cd8 commit 6962a3d

File tree

4 files changed

+40
-59
lines changed

4 files changed

+40
-59
lines changed

test/multifile/nested_types.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// RUN: %target-build-swift %use_no_opaque_pointers -module-name test -wmo -O -emit-ir -Xfrontend -num-threads -Xfrontend 0 %s %S/Inputs/nested_types_defs.swift -o - | %FileCheck %s
2-
// RUN: %target-build-swift -module-name test -wmo -O -emit-ir -Xfrontend -num-threads -Xfrontend 0 %s %S/Inputs/nested_types_defs.swift -o -
1+
// RUN: %target-build-swift -module-name test -wmo -O -emit-ir -Xfrontend -num-threads -Xfrontend 0 %s %S/Inputs/nested_types_defs.swift -o - | %FileCheck %s
32

43
// Make sure we generate the outer metadata.
54

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,24 @@
1-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-objc %s
2-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
1+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-objc %s
2+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
33

4-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-native %s
5-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
6-
7-
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
8-
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
4+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-native %s
5+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
96

107
// REQUIRES: CPU=x86_64
118

129
// The offset of the typemetadata in the class typemetadata must match.
1310

1411
// FILE1-LABEL: define internal swiftcc void @"$s4test12requestType21xyx_tlFyAA3SubCyxG_Sit_tXEfU_
1512
// FILE1: entry:
16-
// FILE1: [[T1:%.*]] = bitcast %T4test3SubC* %0 to %swift.type**
17-
// FILE1: [[TYPEMETADATA:%.*]] = load %swift.type*, %swift.type** [[T1]]
18-
// FILE1: [[T2:%.*]] = bitcast %swift.type* [[TYPEMETADATA]] to %swift.type**
19-
// FILE1-objc: [[T_PTR:%.*]] = getelementptr inbounds %swift.type*, %swift.type** [[T2]], i64 16
20-
// FILE1-native: [[T_PTR:%.*]] = getelementptr inbounds %swift.type*, %swift.type** [[T2]], i64 13
21-
// FILE1: [[T:%.*]] = load %swift.type*, %swift.type** [[T_PTR]]
22-
// FILE1: call swiftcc %swift.metadata_response @"$s4test3SubCMa"(i64 255, %swift.type* [[T]])
13+
// FILE1: [[TYPEMETADATA:%.*]] = load ptr, ptr %0
14+
// FILE1-objc: [[T_PTR:%.*]] = getelementptr inbounds ptr, ptr [[TYPEMETADATA]], i64 16
15+
// FILE1-native: [[T_PTR:%.*]] = getelementptr inbounds ptr, ptr [[TYPEMETADATA]], i64 13
16+
// FILE1: [[T:%.*]] = load ptr, ptr [[T_PTR]]
17+
// FILE1: call swiftcc %swift.metadata_response @"$s4test3SubCMa"(i64 255, ptr [[T]])
2318

2419
public func requestType2<T>(x: T) {
2520
requestTypeThrough(closure: { x in print(x) }, arg: x)
2621
}
27-
// FILE2-LABEL: define internal %swift.type* @"$s4test3SubCMi"(%swift.type_descriptor* %0, i8** %1, i8* %2)
28-
// FILE2: [[T_ADDR:%.*]] = bitcast i8** %1 to %swift.type**
29-
// FILE2: [[T:%.*]] = load %swift.type*, %swift.type** [[T_ADDR]]
30-
// FILE2: [[CLASSMETADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata
22+
// FILE2-LABEL: define internal ptr @"$s4test3SubCMi"(ptr %0, ptr %1, ptr %2)
23+
// FILE2: [[T:%.*]] = load ptr, ptr %1
24+
// FILE2: [[CLASSMETADATA:%.*]] = call ptr @swift_allocateGenericClassMetadata
Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
1-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-objc %s
2-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
1+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-objc %s
2+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
33

4-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-native %s
5-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
4+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-native %s
5+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
66

7-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
8-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
7+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
8+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
99

1010
// REQUIRES: CPU=x86_64
1111

1212
// The offset of the typemetadata in the class typemetadata must match.
1313

14-
// FILE1: define hidden swiftcc i64 @"$s4test12AccessorTestCySiAA3SubCyxGcluig"(%T4test3SubC* %0, %T4test12AccessorTestC* swiftself %1)
15-
// FILE1: [[T1:%.*]] = bitcast %T4test3SubC* %0 to %swift.type**
16-
// FILE1: [[TYPEMETADATA:%.*]] = load %swift.type*, %swift.type** [[T1]]
17-
// FILE1: [[T2:%.*]] = bitcast %swift.type* [[TYPEMETADATA]] to %swift.type**
18-
// FILE1-objc: [[T_IN_CLASSMETADATA:%.*]] = getelementptr inbounds %swift.type*, %swift.type** [[T2]], i64 16
19-
// FILE1-native: [[T_IN_CLASSMETADATA:%.*]] = getelementptr inbounds %swift.type*, %swift.type** [[T2]], i64 13
20-
// FILE1: [[T:%.*]] = load %swift.type*, %swift.type** [[T_IN_CLASSMETADATA]]
21-
// FILE1: call %swift.type* @swift_getMetatypeMetadata(%swift.type* [[T]])
14+
// FILE1: define hidden swiftcc i64 @"$s4test12AccessorTestCySiAA3SubCyxGcluig"(ptr %0, ptr swiftself %1)
15+
// FILE1: [[TYPEMETADATA:%.*]] = load ptr, ptr %0
16+
// FILE1-objc: [[T_IN_CLASSMETADATA:%.*]] = getelementptr inbounds ptr, ptr [[TYPEMETADATA]], i64 16
17+
// FILE1-native: [[T_IN_CLASSMETADATA:%.*]] = getelementptr inbounds ptr, ptr [[TYPEMETADATA]], i64 13
18+
// FILE1: [[T:%.*]] = load ptr, ptr [[T_IN_CLASSMETADATA]]
19+
// FILE1: call ptr @swift_getMetatypeMetadata(ptr [[T]])
2220
public class AccessorTest {
2321
subscript<T>(_ a: Sub<T>) -> Int {
2422
get {
@@ -28,7 +26,6 @@ public class AccessorTest {
2826
}
2927
}
3028

31-
// FILE2-LABEL: define internal %swift.type* @"$s4test3SubCMi"(%swift.type_descriptor* %0, i8** %1, i8* %2)
32-
// FILE2: [[T_ADDR:%.*]] = bitcast i8** %1 to %swift.type**
33-
// FILE2: [[T:%.*]] = load %swift.type*, %swift.type** [[T_ADDR]]
34-
// FILE2: [[CLASSMETADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata
29+
// FILE2-LABEL: define internal ptr @"$s4test3SubCMi"(ptr %0, ptr %1, ptr %2)
30+
// FILE2: [[T:%.*]] = load ptr, ptr %1
31+
// FILE2: [[CLASSMETADATA:%.*]] = call ptr @swift_allocateGenericClassMetadata
Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,23 @@
1-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-objc %s
2-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
1+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-objc %s
2+
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
33

4-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-native %s
5-
// RUN: %target-swift-frontend %use_no_opaque_pointers -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
6-
7-
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
8-
// RUN: %target-swift-frontend -module-name test -enable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift
9-
10-
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift
11-
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift
4+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify -primary-file %s %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefixes=FILE1,FILE1-native %s
5+
// RUN: %target-swift-frontend -module-name test -disable-objc-interop -emit-ir -verify %s -primary-file %S/Inputs/require-layout-generic-class.swift | %FileCheck --check-prefix=FILE2 %s
126

137
// REQUIRES: CPU=x86_64
148

159
// The offset of the typemetadata in the class typemetadata must match.
1610

17-
// FILE1-LABEL: define{{.*}} swiftcc void @"$s4test11requestTypeyyAA3SubCyxGlF"(%T4test3SubC* %0)
18-
// FILE1: [[T1:%.*]] = bitcast %T4test3SubC* %0 to %swift.type**
19-
// FILE1: [[TYPEMETADATA:%.*]] = load %swift.type*, %swift.type** [[T1]]
20-
// FILE1: [[T2:%.*]] = bitcast %swift.type* [[TYPEMETADATA]] to %swift.type**
21-
// FILE1-objc: [[T_PTR:%.*]] = getelementptr inbounds %swift.type*, %swift.type** [[T2]], i64 16
22-
// FILE1-native: [[T_PTR:%.*]] = getelementptr inbounds %swift.type*, %swift.type** [[T2]], i64 13
23-
// FILE1: [[T:%.*]] = load %swift.type*, %swift.type** [[T_PTR]]
11+
// FILE1-LABEL: define{{.*}} swiftcc void @"$s4test11requestTypeyyAA3SubCyxGlF"(ptr %0)
12+
// FILE1: [[TYPEMETADATA:%.*]] = load ptr, ptr %0
13+
// FILE1-objc: [[T_PTR:%.*]] = getelementptr inbounds ptr, ptr [[TYPEMETADATA]], i64 16
14+
// FILE1-native: [[T_PTR:%.*]] = getelementptr inbounds ptr, ptr [[TYPEMETADATA]], i64 13
15+
// FILE1: [[T:%.*]] = load ptr, ptr [[T_PTR]]
2416
public func requestType<T>(_ c: Sub<T>) {
2517
print(T.self)
2618
}
2719

28-
// FILE2-LABEL: define internal %swift.type* @"$s4test3SubCMi"(%swift.type_descriptor* %0, i8** %1, i8* %2)
29-
// FILE2: [[T_ADDR:%.*]] = bitcast i8** %1 to %swift.type**
30-
// FILE2: [[T:%.*]] = load %swift.type*, %swift.type** [[T_ADDR]]
31-
// FILE2: [[CLASSMETADATA:%.*]] = call %swift.type* @swift_allocateGenericClassMetadata
20+
// FILE2-LABEL: define internal ptr @"$s4test3SubCMi"(ptr %0, ptr %1, ptr %2)
21+
// FILE2: [[T:%.*]] = load ptr, ptr %1
22+
// FILE2: [[CLASSMETADATA:%.*]] = call ptr @swift_allocateGenericClassMetadata
3223

0 commit comments

Comments
 (0)