Skip to content

Commit 4ea0a40

Browse files
committed
[silgen] Update 31 more tests to run with the ownership verifier enabled.
Now ~32% of the SILGen tests run with the ownership verifier enabled. rdar://33358110
1 parent 20c3e1e commit 4ea0a40

33 files changed

+297
-261
lines changed

test/SILGen/enum.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -parse-stdlib -parse-as-library -emit-silgen -module-name Swift %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -parse-stdlib -parse-as-library -emit-silgen -enable-sil-ownership -module-name Swift %s | %FileCheck %s
22

33
precedencegroup AssignmentPrecedence { assignment: true }
44

test/SILGen/enum_generic_raw_value.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
// CHECK-LABEL: sil hidden @_T022enum_generic_raw_value1EO
44
enum E<T>: Int {

test/SILGen/enum_resilience.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// RUN: %empty-directory(%t)
22
// RUN: %target-swift-frontend -emit-module -enable-resilience -emit-module-path=%t/resilient_struct.swiftmodule -module-name=resilient_struct %S/../Inputs/resilient_struct.swift
33
// RUN: %target-swift-frontend -emit-module -enable-resilience -emit-module-path=%t/resilient_enum.swiftmodule -module-name=resilient_enum -I %t %S/../Inputs/resilient_enum.swift
4-
// RUN: %target-swift-frontend -I %t -emit-silgen -enable-resilience %s | %FileCheck %s
4+
// RUN: %target-swift-frontend -I %t -enable-sil-ownership -emit-silgen -enable-resilience %s | %FileCheck %s
55

66
import resilient_enum
77

test/SILGen/erasure_reabstraction.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
struct Foo {}
44
class Bar {}

test/SILGen/errors.swift

Lines changed: 90 additions & 79 deletions
Large diffs are not rendered by default.

test/SILGen/existential_erasure.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
protocol P {
44
func downgrade(_ m68k: Bool) -> Self
@@ -40,21 +40,21 @@ func PQtoP() {
4040

4141
// CHECK-LABEL: sil hidden @_T019existential_erasure19openExistentialToP1yAA1P_pKF
4242
func openExistentialToP1(_ p: P) throws {
43-
// CHECK: bb0(%0 : $*P):
43+
// CHECK: bb0(%0 : @trivial $*P):
4444
// CHECK: [[OPEN:%.*]] = open_existential_addr immutable_access %0 : $*P to $*[[OPEN_TYPE:@opened\(.*\) P]]
4545
// CHECK: [[RESULT:%.*]] = alloc_stack $P
4646
// CHECK: [[RESULT_ADDR:%.*]] = init_existential_addr [[RESULT]] : $*P, $[[OPEN_TYPE]]
4747
// CHECK: [[METHOD:%.*]] = witness_method $[[OPEN_TYPE]], #P.downgrade!1 : {{.*}}, [[OPEN]]
4848
// CHECK: [[FUNC:%.*]] = function_ref @_T019existential_erasure12throwingFuncSbyKF
4949
// CHECK: try_apply [[FUNC]]()
5050
//
51-
// CHECK: bb1([[SUCCESS:%.*]] : $Bool):
51+
// CHECK: bb1([[SUCCESS:%.*]] : @trivial $Bool):
5252
// CHECK: apply [[METHOD]]<[[OPEN_TYPE]]>([[RESULT_ADDR]], [[SUCCESS]], [[OPEN]])
5353
// CHECK: dealloc_stack [[RESULT]]
5454
// CHECK: destroy_addr %0
5555
// CHECK: return
5656
//
57-
// CHECK: bb2([[FAILURE:%.*]] : $Error):
57+
// CHECK: bb2([[FAILURE:%.*]] : @owned $Error):
5858
// CHECK: deinit_existential_addr [[RESULT]]
5959
// CHECK: dealloc_stack [[RESULT]]
6060
// CHECK: destroy_addr %0
@@ -65,7 +65,7 @@ func openExistentialToP1(_ p: P) throws {
6565

6666
// CHECK-LABEL: sil hidden @_T019existential_erasure19openExistentialToP2yAA1P_pKF
6767
func openExistentialToP2(_ p: P) throws {
68-
// CHECK: bb0(%0 : $*P):
68+
// CHECK: bb0(%0 : @trivial $*P):
6969
// CHECK: [[OPEN:%.*]] = open_existential_addr immutable_access %0 : $*P to $*[[OPEN_TYPE:@opened\(.*\) P]]
7070
// CHECK: [[RESULT:%.*]] = alloc_stack $P
7171
// CHECK: [[RESULT_ADDR:%.*]] = init_existential_addr [[RESULT]] : $*P, $[[OPEN_TYPE]]
@@ -77,7 +77,7 @@ func openExistentialToP2(_ p: P) throws {
7777
// CHECK: destroy_addr %0
7878
// CHECK: return
7979
//
80-
// CHECK: bb2([[FAILURE:%.*]]: $Error):
80+
// CHECK: bb2([[FAILURE:%.*]]: @owned $Error):
8181
// CHECK: deinit_existential_addr [[RESULT]]
8282
// CHECK: dealloc_stack [[RESULT]]
8383
// CHECK: destroy_addr %0
@@ -96,7 +96,7 @@ extension Error {
9696

9797
// CHECK-LABEL: sil hidden @_T019existential_erasure12errorHandlers5Error_psAC_pKF
9898
func errorHandler(_ e: Error) throws -> Error {
99-
// CHECK: bb0([[ARG:%.*]] : $Error):
99+
// CHECK: bb0([[ARG:%.*]] : @owned $Error):
100100
// CHECK: debug_value [[ARG]] : $Error
101101
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
102102
// CHECK: [[OPEN:%.*]] = open_existential_box [[BORROWED_ARG]] : $Error to $*[[OPEN_TYPE:@opened\(.*\) Error]]
@@ -109,7 +109,7 @@ func errorHandler(_ e: Error) throws -> Error {
109109
// CHECK: destroy_value %0 : $Error
110110
// CHECK: return [[RESULT]] : $Error
111111
//
112-
// CHECK: bb2([[FAILURE:%.*]] : $Error):
112+
// CHECK: bb2([[FAILURE:%.*]] : @owned $Error):
113113
// CHECK: dealloc_existential_box [[RESULT]]
114114
// CHECK: destroy_value %0 : $Error
115115
// CHECK: throw [[FAILURE]] : $Error

test/SILGen/existential_metatypes.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -parse-stdlib %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -parse-stdlib -enable-sil-ownership %s | %FileCheck %s
22

33
struct Value {}
44

@@ -15,7 +15,7 @@ struct S: P {
1515
}
1616

1717
// CHECK-LABEL: sil hidden @_T021existential_metatypes0A8MetatypeyAA1P_pF
18-
// CHECK: bb0([[X:%.*]] : $*P):
18+
// CHECK: bb0([[X:%.*]] : @trivial $*P):
1919
func existentialMetatype(_ x: P) {
2020
// CHECK: [[TYPE1:%.*]] = existential_metatype $@thick P.Type, [[X]]
2121
let type1 = type(of: x)

test/SILGen/expressions.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %empty-directory(%t)
22
// RUN: echo "public var x = Int()" | %target-swift-frontend -module-name FooBar -emit-module -o %t -
3-
// RUN: %target-swift-frontend -parse-stdlib -emit-silgen %s -I%t -disable-access-control | %FileCheck %s
3+
// RUN: %target-swift-frontend -parse-stdlib -emit-silgen -enable-sil-ownership %s -I%t -disable-access-control | %FileCheck %s
44

55
import Swift
66
import FooBar
@@ -247,7 +247,7 @@ struct Generic<T> {
247247

248248
// CHECK-LABEL: sil hidden @_T011expressions18generic_member_ref{{[_0-9a-zA-Z]*}}F
249249
func generic_member_ref<T>(_ x: Generic<T>) -> Int {
250-
// CHECK: bb0([[XADDR:%[0-9]+]] : $*Generic<T>):
250+
// CHECK: bb0([[XADDR:%[0-9]+]] : @trivial $*Generic<T>):
251251
return x.mono_member
252252
// CHECK: [[MEMBER_ADDR:%[0-9]+]] = struct_element_addr {{.*}}, #Generic.mono_member
253253
// CHECK: load [trivial] [[MEMBER_ADDR]]
@@ -256,7 +256,7 @@ func generic_member_ref<T>(_ x: Generic<T>) -> Int {
256256
// CHECK-LABEL: sil hidden @_T011expressions24bound_generic_member_ref{{[_0-9a-zA-Z]*}}F
257257
func bound_generic_member_ref(_ x: Generic<UnicodeScalar>) -> Int {
258258
var x = x
259-
// CHECK: bb0([[XADDR:%[0-9]+]] : $Generic<Unicode.Scalar>):
259+
// CHECK: bb0([[XADDR:%[0-9]+]] : @trivial $Generic<Unicode.Scalar>):
260260
return x.mono_member
261261
// CHECK: [[MEMBER_ADDR:%[0-9]+]] = struct_element_addr {{.*}}, #Generic.mono_member
262262
// CHECK: load [trivial] [[MEMBER_ADDR]]
@@ -505,9 +505,9 @@ func if_expr(_ a: Bool, b: Bool, x: Int, y: Int, z: Int) -> Int {
505505
// CHECK: [[READ:%.*]] = begin_access [read] [unknown] [[PBZ]]
506506
// CHECK: [[ZVAL:%[0-9]+]] = load [trivial] [[READ]]
507507
// CHECK: br [[CONT_B:bb[0-9]+]]([[ZVAL]] : $Int)
508-
// CHECK: [[CONT_B]]([[B_RES:%[0-9]+]] : $Int):
508+
// CHECK: [[CONT_B]]([[B_RES:%[0-9]+]] : @trivial $Int):
509509
// CHECK: br [[CONT_A:bb[0-9]+]]([[B_RES]] : $Int)
510-
// CHECK: [[CONT_A]]([[A_RES:%[0-9]+]] : $Int):
510+
// CHECK: [[CONT_A]]([[A_RES:%[0-9]+]] : @trivial $Int):
511511
// CHECK: return [[A_RES]]
512512
}
513513

@@ -559,7 +559,7 @@ func dynamicTypePlusZero(_ a : Super1) -> Super1.Type {
559559
return type(of: a)
560560
}
561561
// CHECK-LABEL: dynamicTypePlusZero
562-
// CHECK: bb0([[ARG:%.*]] : $Super1):
562+
// CHECK: bb0([[ARG:%.*]] : @owned $Super1):
563563
// CHECK-NOT: copy_value
564564
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
565565
// CHECK-NOT: copy_value
@@ -573,7 +573,7 @@ func dontEmitIgnoredLoadExpr(_ a : NonTrivialStruct) -> NonTrivialStruct.Type {
573573
return type(of: a)
574574
}
575575
// CHECK-LABEL: dontEmitIgnoredLoadExpr
576-
// CHECK: bb0(%0 : $NonTrivialStruct):
576+
// CHECK: bb0(%0 : @owned $NonTrivialStruct):
577577
// CHECK-NEXT: debug_value
578578
// CHECK-NEXT: begin_borrow
579579
// CHECK-NEXT: end_borrow
@@ -584,10 +584,10 @@ func dontEmitIgnoredLoadExpr(_ a : NonTrivialStruct) -> NonTrivialStruct.Type {
584584

585585
// <rdar://problem/18851497> Swiftc fails to compile nested destructuring tuple binding
586586
// CHECK-LABEL: sil hidden @_T011expressions21implodeRecursiveTupleySi_Sit_SitSgF
587-
// CHECK: bb0(%0 : $Optional<((Int, Int), Int)>):
587+
// CHECK: bb0(%0 : @trivial $Optional<((Int, Int), Int)>):
588588
func implodeRecursiveTuple(_ expr: ((Int, Int), Int)?) {
589589

590-
// CHECK: bb2([[WHOLE:%.*]] : $((Int, Int), Int)):
590+
// CHECK: bb2([[WHOLE:%.*]] : @trivial $((Int, Int), Int)):
591591
// CHECK-NEXT: [[X:%[0-9]+]] = tuple_extract [[WHOLE]] : $((Int, Int), Int), 0
592592
// CHECK-NEXT: [[X0:%[0-9]+]] = tuple_extract [[X]] : $(Int, Int), 0
593593
// CHECK-NEXT: [[X1:%[0-9]+]] = tuple_extract [[X]] : $(Int, Int), 1

test/SILGen/extensions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
class Foo {
44
// CHECK-LABEL: sil hidden @_T010extensions3FooC3zim{{[_0-9a-zA-Z]*}}F
@@ -43,7 +43,7 @@ func extensionMethodCurrying(_ x: Foo) {
4343
// Extensions of generic types with stored property initializers
4444

4545
// CHECK-LABEL: sil hidden [transparent] @_T010extensions3BoxV1txSgvfi : $@convention(thin) <T> () -> @out Optional<T>
46-
// CHECK: bb0(%0 : $*Optional<T>):
46+
// CHECK: bb0(%0 : @trivial $*Optional<T>):
4747
// CHECK: [[FN:%.*]] = function_ref @_T0SqxSgyt10nilLiteral_tcfC : $@convention(method) <τ_0_0> (@thin Optional<τ_0_0>.Type) -> @out Optional<τ_0_0>
4848
// CHECK-NEXT: [[METATYPE:%.*]] = metatype $@thin Optional<T>.Type
4949
// CHECK-NEXT: apply [[FN]]<T>(%0, [[METATYPE]]) : $@convention(method) <τ_0_0> (@thin Optional<τ_0_0>.Type) -> @out Optional<τ_0_0>

test/SILGen/extensions_multifile.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/struct_with_initializer.swift -module-name extensions_multifile | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -primary-file %s %S/Inputs/struct_with_initializer.swift -module-name extensions_multifile -enable-sil-ownership | %FileCheck %s
22

33
// CHECK-LABEL: sil hidden @_T020extensions_multifile12HasInitValueVACSi1z_tcfC : $@convention(method) (Int, @thin HasInitValue.Type) -> @owned HasInitValue {
44
// CHECK: function_ref @_T020extensions_multifile12HasInitValueV1xSivfi : $@convention(thin) () -> Int

test/SILGen/extensions_objc.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -sdk %S/Inputs %s -I %S/Inputs -enable-source-import -emit-silgen | %FileCheck %s
1+
// RUN: %target-swift-frontend -sdk %S/Inputs %s -I %S/Inputs -enable-source-import -emit-silgen -enable-sil-ownership | %FileCheck %s
22
//
33
// REQUIRES: objc_interop
44

@@ -12,7 +12,7 @@ extension Foo {
1212
}
1313

1414
// CHECK-LABEL: sil hidden @_T015extensions_objc19extensionReferencesyAA3FooCF
15-
// CHECK: bb0([[ARG:%.*]] : $Foo):
15+
// CHECK: bb0([[ARG:%.*]] : @owned $Foo):
1616
func extensionReferences(_ x: Foo) {
1717
// dynamic extension methods are still dynamically dispatched.
1818
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
@@ -32,6 +32,6 @@ func extensionMethodCurrying(_ x: Foo) {
3232
// CHECK-LABEL: sil shared [thunk] @_T015extensions_objc3FooC3kayyyFTc
3333
// CHECK: function_ref @_T015extensions_objc3FooC3kayyyFTD
3434
// CHECK-LABEL: sil shared [transparent] [serializable] [thunk] @_T015extensions_objc3FooC3kayyyFTD
35-
// CHECK: bb0([[SELF:%.*]] : $Foo):
35+
// CHECK: bb0([[SELF:%.*]] : @guaranteed $Foo):
3636
// CHECK: [[SELF_COPY:%.*]] = copy_value [[SELF]]
3737
// CHECK: class_method [volatile] [[SELF_COPY]] : $Foo, #Foo.kay!1.foreign

test/SILGen/external-associated-type-conformance.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -sil-serialize-witness-tables -import-objc-header %S/Inputs/external-associated-type-conformance.h %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -sil-serialize-witness-tables -import-objc-header %S/Inputs/external-associated-type-conformance.h %s -enable-sil-ownership | %FileCheck %s
22
// REQUIRES: objc_interop
33

44
extension BadError: LocalizedError {}

test/SILGen/external_definitions.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -sdk %S/Inputs %s -emit-silgen | %FileCheck %s
1+
// RUN: %target-swift-frontend -sdk %S/Inputs %s -emit-silgen -enable-sil-ownership | %FileCheck %s
22

33
// REQUIRES: objc_interop
44

@@ -33,7 +33,7 @@ hasNoPrototype()
3333

3434
// -- Native Swift thunk for NSAnse
3535
// CHECK: sil shared [serialized] [thunk] @_T0SC6NSAnseSQySo7AnsibleCGADFTO : $@convention(thin) (@owned Optional<Ansible>) -> @owned Optional<Ansible> {
36-
// CHECK: bb0(%0 : $Optional<Ansible>):
36+
// CHECK: bb0(%0 : @owned $Optional<Ansible>):
3737
// CHECK: %1 = function_ref @NSAnse : $@convention(c) (Optional<Ansible>) -> @autoreleased Optional<Ansible>
3838
// CHECK: %2 = apply %1(%0) : $@convention(c) (Optional<Ansible>) -> @autoreleased Optional<Ansible>
3939
// CHECK: destroy_value %0 : $Optional<Ansible>

test/SILGen/final.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
class TestClass {
44

@@ -19,7 +19,7 @@ class TestDerived : TestClass {
1919

2020

2121
// CHECK-LABEL: sil hidden @{{.*}}testDirectDispatch{{.*}} : $@convention(thin) (@owned TestClass) -> Int {
22-
// CHECK: bb0([[ARG:%.*]] : $TestClass):
22+
// CHECK: bb0([[ARG:%.*]] : @owned $TestClass):
2323
// CHECK: [[FINALMETH:%[0-9]+]] = function_ref @_T05final9TestClassC0A6Method{{[_0-9a-zA-Z]*}}F
2424
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
2525
// CHECK: apply [[FINALMETH]]([[BORROWED_ARG]])

test/SILGen/for_loop_tuple_destructure_reabstraction.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen -verify %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership -verify %s
22

33
protocol P {}
44

test/SILGen/force_cast_chained_optional.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
class Foo {
44
var bar: Bar!
@@ -12,7 +12,7 @@ class C {}
1212
class D: C {}
1313

1414
// CHECK-LABEL: sil hidden @_T027force_cast_chained_optional4testAA1DCAA3FooCF
15-
// CHECK: bb0([[ARG:%.*]] : $Foo):
15+
// CHECK: bb0([[ARG:%.*]] : @owned $Foo):
1616
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
1717
// CHECK: class_method [[BORROWED_ARG]] : $Foo, #Foo.bar!getter.1 : (Foo) -> () -> Bar!, $@convention(method) (@guaranteed Foo) ->
1818
// CHECK: select_enum_addr
@@ -25,8 +25,9 @@ class D: C {}
2525
// CHECK: [[PAYLOAD_ADDR:%.*]] = unchecked_take_enum_data_addr {{%.*}} : $*Optional<Bar>
2626
// CHECK: [[BAR:%.*]] = load [copy] [[PAYLOAD_ADDR]]
2727
// CHECK: [[METHOD:%.*]] = class_method [[BAR]] : $Bar, #Bar.bas!getter.1 : (Bar) -> () -> C!, $@convention(method) (@guaranteed Bar) ->
28-
// CHECK: apply [[METHOD]]([[BAR]])
29-
// CHECK: destroy_value [[BAR]]
28+
// CHECK: [[BORROWED_BAR:%.*]] = begin_borrow [[BAR]]
29+
// CHECK: apply [[METHOD]]([[BORROWED_BAR]])
30+
// CHECK: end_borrow [[BORROWED_BAR]] from [[BAR]]
3031
// CHECK: unconditional_checked_cast {{%.*}} : $C to $D
3132
// CHECK: end_borrow [[BORROWED_ARG]] from [[ARG]]
3233
//

0 commit comments

Comments
 (0)