Skip to content

Commit 20c3e1e

Browse files
committed
[semantic-sil] Update 45 SILGen tests for ownership.
Very roughly this increases the total coverage of SILGen tests with ownership enabled to ~20%. rdar://33358110
1 parent b825cdc commit 20c3e1e

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

+117
-112
lines changed

test/SILGen/NSApplicationMain.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// RUN: %target-swift-frontend -emit-silgen -parse-as-library -sdk %S/Inputs -I %S/Inputs -enable-source-import %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership -parse-as-library -sdk %S/Inputs -I %S/Inputs -enable-source-import %s | %FileCheck %s
22
// RUN: %target-swift-frontend -emit-ir -parse-as-library -sdk %S/Inputs -I %S/Inputs -enable-source-import %s | %FileCheck %s -check-prefix=IR
33

4-
// RUN: %target-swift-frontend -emit-silgen -parse-as-library -sdk %S/Inputs -I %S/Inputs -enable-source-import %s -D REFERENCE | %FileCheck %s
4+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership -parse-as-library -sdk %S/Inputs -I %S/Inputs -enable-source-import %s -D REFERENCE | %FileCheck %s
55
// RUN: %target-swift-frontend -emit-ir -parse-as-library -sdk %S/Inputs -I %S/Inputs -enable-source-import %s -D REFERENCE | %FileCheck %s -check-prefix=IR
66

77
// REQUIRES: OS=macosx

test/SILGen/access_marker_gen.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -parse-as-library -Xllvm -sil-full-demangle -enforce-exclusivity=checked -emit-silgen %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -parse-as-library -Xllvm -sil-full-demangle -enforce-exclusivity=checked -emit-silgen -enable-sil-ownership %s | %FileCheck %s
22

33
func modify<T>(_ x: inout T) {}
44

@@ -8,7 +8,7 @@ public struct S {
88
}
99

1010
// CHECK-LABEL: sil hidden [noinline] @_T017access_marker_gen5initSAA1SVyXlSgF : $@convention(thin) (@owned Optional<AnyObject>) -> @owned S {
11-
// CHECK: bb0(%0 : $Optional<AnyObject>):
11+
// CHECK: bb0(%0 : @owned $Optional<AnyObject>):
1212
// CHECK: [[BOX:%.*]] = alloc_box ${ var S }, var, name "s"
1313
// CHECK: [[MARKED_BOX:%.*]] = mark_uninitialized [var] [[BOX]] : ${ var S }
1414
// CHECK: [[ADDR:%.*]] = project_box [[MARKED_BOX]] : ${ var S }, 0

test/SILGen/accessibility_warnings.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// RUN: %target-typecheck-verify-swift
2-
// RUN: %target-swift-frontend -emit-silgen %s | %FileCheck %s
2+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s | %FileCheck %s
33

44
// This file tests that the AST produced after fixing accessibility warnings
55
// is valid according to SILGen and the verifiers.

test/SILGen/accessors.swift

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

33
// Hold a reference to do to magically become non-POD.
44
class Reference {}
@@ -26,7 +26,7 @@ func test0(_ ref: A) {
2626
ref.array[index0()] = ref.array[index1()]
2727
}
2828
// CHECK: sil hidden @_T09accessors5test0yAA1ACF : $@convention(thin) (@owned A) -> () {
29-
// CHECK: bb0([[ARG:%.*]] : $A):
29+
// CHECK: bb0([[ARG:%.*]] : @owned $A):
3030
// CHECK-NEXT: debug_value
3131
// Formal evaluation of LHS.
3232
// CHECK-NEXT: [[BORROWED_ARG_LHS:%.*]] = begin_borrow [[ARG]]
@@ -64,7 +64,7 @@ func test0(_ ref: A) {
6464
// CHECK-NEXT: apply [[SETTER]]([[VALUE]], [[INDEX0]], [[ADDR]])
6565
// CHECK-NEXT: switch_enum [[OPT_CALLBACK]] : $Optional<Builtin.RawPointer>, case #Optional.some!enumelt.1: [[WRITEBACK:bb[0-9]+]], case #Optional.none!enumelt: [[CONT:bb[0-9]+]]
6666

67-
// CHECK: [[WRITEBACK]]([[CALLBACK_ADDR:%.*]] : $Builtin.RawPointer):
67+
// CHECK: [[WRITEBACK]]([[CALLBACK_ADDR:%.*]] : @trivial $Builtin.RawPointer):
6868
// CHECK-NEXT: [[CALLBACK:%.*]] = pointer_to_thin_function [[CALLBACK_ADDR]] : $Builtin.RawPointer to $@convention(method) (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout A, @thick A.Type) -> ()
6969
// CHECK-NEXT: [[TEMP2:%.*]] = alloc_stack $A
7070
// SEMANTIC SIL TODO: This is an issue caused by the callback for materializeForSet in the class case taking the value as @inout when it should really take it as @guaranteed.
@@ -100,7 +100,7 @@ func test1(_ ref: B) {
100100
ref.array[index0()] = ref.array[index1()]
101101
}
102102
// CHECK-LABEL: sil hidden @_T09accessors5test1yAA1BCF : $@convention(thin) (@owned B) -> () {
103-
// CHECK: bb0([[ARG:%.*]] : $B):
103+
// CHECK: bb0([[ARG:%.*]] : @owned $B):
104104
// CHECK-NEXT: debug_value
105105
// Formal evaluation of LHS.
106106
// CHECK-NEXT: [[BORROWED_ARG_LHS:%.*]] = begin_borrow [[ARG]]
@@ -127,7 +127,7 @@ func test1(_ ref: B) {
127127
// CHECK-NEXT: [[VALUE:%.*]] = apply [[T0]]([[INDEX1]], [[ADDR]])
128128
// CHECK-NEXT: switch_enum [[OPT_CALLBACK]] : $Optional<Builtin.RawPointer>, case #Optional.some!enumelt.1: [[WRITEBACK:bb[0-9]+]], case #Optional.none!enumelt: [[CONT:bb[0-9]+]]
129129
//
130-
// CHECK: [[WRITEBACK]]([[CALLBACK_ADDR:%.*]] : $Builtin.RawPointer):
130+
// CHECK: [[WRITEBACK]]([[CALLBACK_ADDR:%.*]] : @trivial $Builtin.RawPointer):
131131
// CHECK-NEXT: [[CALLBACK:%.*]] = pointer_to_thin_function [[CALLBACK_ADDR]] : $Builtin.RawPointer to $@convention(method) (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout B, @thick B.Type) -> ()
132132
// CHECK-NEXT: [[TEMP2:%.*]] = alloc_stack $B
133133
// CHECK-NEXT: store_borrow [[BORROWED_ARG_RHS]] to [[TEMP2]] : $*B
@@ -153,7 +153,7 @@ func test1(_ ref: B) {
153153
// CHECK-NEXT: apply [[SETTER]]([[VALUE]], [[INDEX0]], [[ADDR]])
154154
// CHECK-NEXT: switch_enum [[OPT_CALLBACK]] : $Optional<Builtin.RawPointer>, case #Optional.some!enumelt.1: [[WRITEBACK:bb[0-9]+]], case #Optional.none!enumelt: [[CONT:bb[0-9]+]]
155155
//
156-
// CHECK: [[WRITEBACK]]([[CALLBACK_ADDR:%.*]] : $Builtin.RawPointer):
156+
// CHECK: [[WRITEBACK]]([[CALLBACK_ADDR:%.*]] : @trivial $Builtin.RawPointer):
157157
// CHECK-NEXT: [[CALLBACK:%.*]] = pointer_to_thin_function [[CALLBACK_ADDR]] : $Builtin.RawPointer to $@convention(method) (Builtin.RawPointer, @inout Builtin.UnsafeValueBuffer, @inout B, @thick B.Type) -> ()
158158
// CHECK-NEXT: [[TEMP2:%.*]] = alloc_stack $B
159159
// CHECK-NEXT: store_borrow [[BORROWED_ARG_LHS]] to [[TEMP2]] : $*B

test/SILGen/apply_abstraction_nested.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 -enable-sil-ownership -emit-silgen %s | %FileCheck %s
22

33
infix operator ~> { precedence 255 associativity left }
44

test/SILGen/argument_labels.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
public struct X { }
44
public struct Y { }
@@ -9,7 +9,7 @@ public class Foo {
99
}
1010

1111
// CHECK-LABEL: sil hidden @_T015argument_labels7testFoo{{[_0-9a-zA-Z]*}}F
12-
// CHECK: bb0([[ARG0:%.*]] : $Foo,
12+
// CHECK: bb0([[ARG0:%.*]] : @owned $Foo,
1313
func testFoo(foo: Foo, x: X, y: Y) {
1414
// CHECK: [[BORROWED_ARG0:%.*]] = begin_borrow [[ARG0]]
1515
// CHECK: class_method [[BORROWED_ARG0]] : $Foo, #Foo.doSomething!1 : (Foo) -> (X, Y) -> ()

test/SILGen/argument_shuffle.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
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s
22

33
struct Horse<T> {
44
func walk(_: (String, Int), reverse: Bool) {}

test/SILGen/argument_shuffle_swift3.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 -swift-version 3 | %FileCheck %s
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s -swift-version 3 | %FileCheck %s
22

33
func fn(_: Any) {}
44

test/SILGen/arguments_as_tuple_overloads.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-as-library -module-name=test -emit-silgen -primary-file %s | %FileCheck %s
1+
// RUN: %target-swift-frontend -parse-as-library -module-name=test -emit-silgen -enable-sil-ownership -primary-file %s | %FileCheck %s
22

33
// Check if we mangle the following constructors, functions, and
44
// subscripts correctly.

test/SILGen/assignment.swift

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

33
class C {}
44

@@ -7,8 +7,10 @@ struct B { var owner: C }
77

88
var a = A()
99

10+
// CHECK-LABEL: sil @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 {
1011
// CHECK: assign {{%.*}} to {{%.*}} : $*A
1112
// CHECK: destroy_value {{%.*}} : $B
13+
// CHECK: } // end sil function 'main'
1214
(a, _) = (A(), B(owner: C()))
1315

1416
class D { var child: C = C() }
@@ -20,10 +22,13 @@ func test1() {
2022
// CHECK: [[T0:%.*]] = metatype $@thick D.Type
2123
// CHECK: [[D:%.*]] = apply [[CTOR]]([[T0]])
2224
// CHECK: [[SETTER:%.*]] = class_method [[D]] : $D, #D.child!setter.1
25+
// CHECK: [[BORROWED_D:%.*]] = begin_borrow [[D]]
2326
// CHECK: [[CTOR:%.*]] = function_ref @_T010assignment1CC{{[_0-9a-zA-Z]*}}fC
2427
// CHECK: [[T0:%.*]] = metatype $@thick C.Type
25-
// CHECK: [[C:%.*]] = apply [[CTOR]]([[T0]])
26-
// CHECK: apply [[SETTER]]([[C]], [[D]])
28+
// CHECK: [[C:%.*]] = apply [[CTOR]]([[T0]]) : $@convention(method) (@thick C.Type) -> @owned C
29+
// CHECK: apply [[SETTER]]([[C]], [[BORROWED_D]])
30+
// CHECK: end_borrow [[BORROWED_D]] from [[D]]
31+
// CHECK: destroy_value [[D]]
2732
D().child = C()
2833
}
2934

@@ -37,7 +42,7 @@ protocol P {
3742
// RHS is formally evaluated.
3843
// CHECK-LABEL: sil hidden @_T010assignment15copyRightToLeftyAA1P_pz1p_tF : $@convention(thin) (@inout P) -> () {
3944
func copyRightToLeft(p: inout P) {
40-
// CHECK: bb0(%0 : $*P):
45+
// CHECK: bb0(%0 : @trivial $*P):
4146
// CHECK: [[READ:%.*]] = begin_access [read] [unknown] %0 : $*P
4247
// CHECK: [[READ_OPEN:%.*]] = open_existential_addr immutable_access [[READ]]
4348
// CHECK: end_access [[READ]] : $*P

test/SILGen/auto_generated_super_init_call.swift

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

33
// Test that we emit a call to super.init at the end of the initializer, when none has been previously added.
44

test/SILGen/availability_query.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// RUN: %target-swift-frontend -emit-sil %s -target x86_64-apple-macosx10.50 -verify
2-
// RUN: %target-swift-frontend -emit-silgen %s -target x86_64-apple-macosx10.50 | %FileCheck %s
2+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s -target x86_64-apple-macosx10.50 | %FileCheck %s
33

44
// REQUIRES: OS=macosx
55

test/SILGen/boxed_existentials.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// RUN: %target-swift-frontend -Xllvm -sil-full-demangle -emit-silgen %s | %FileCheck %s
2-
// RUN: %target-swift-frontend -Xllvm -sil-full-demangle -emit-silgen %s | %FileCheck %s --check-prefix=GUARANTEED
1+
// RUN: %target-swift-frontend -Xllvm -sil-full-demangle -enable-sil-ownership -emit-silgen %s | %FileCheck %s
2+
// RUN: %target-swift-frontend -Xllvm -sil-full-demangle -enable-sil-ownership -emit-silgen %s | %FileCheck %s --check-prefix=GUARANTEED
33

44
func test_type_lowering(_ x: Error) { }
55
// CHECK-LABEL: sil hidden @_T018boxed_existentials18test_type_loweringys5Error_pF : $@convention(thin) (@owned Error) -> () {
@@ -18,7 +18,7 @@ func test_concrete_erasure(_ x: ClericalError) -> Error {
1818
return x
1919
}
2020
// CHECK-LABEL: sil hidden @_T018boxed_existentials21test_concrete_erasures5Error_pAA08ClericalF0OF
21-
// CHECK: bb0([[ARG:%.*]] : $ClericalError):
21+
// CHECK: bb0([[ARG:%.*]] : @owned $ClericalError):
2222
// CHECK: [[EXISTENTIAL:%.*]] = alloc_existential_box $Error, $ClericalError
2323
// CHECK: [[ADDR:%.*]] = project_existential_box $ClericalError in [[EXISTENTIAL]] : $Error
2424
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
@@ -58,7 +58,7 @@ func test_property(_ x: Error) -> String {
5858
return x._domain
5959
}
6060
// CHECK-LABEL: sil hidden @_T018boxed_existentials13test_propertySSs5Error_pF
61-
// CHECK: bb0([[ARG:%.*]] : $Error):
61+
// CHECK: bb0([[ARG:%.*]] : @owned $Error):
6262
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
6363
// CHECK: [[VALUE:%.*]] = open_existential_box [[BORROWED_ARG]] : $Error to $*[[VALUE_TYPE:@opened\(.*\) Error]]
6464
// FIXME: Extraneous copy here
@@ -78,7 +78,7 @@ func test_property_of_lvalue(_ x: Error) -> String {
7878
}
7979

8080
// CHECK-LABEL: sil hidden @_T018boxed_existentials23test_property_of_lvalueSSs5Error_pF :
81-
// CHECK: bb0([[ARG:%.*]] : $Error):
81+
// CHECK: bb0([[ARG:%.*]] : @owned $Error):
8282
// CHECK: [[VAR:%.*]] = alloc_box ${ var Error }
8383
// CHECK: [[PVAR:%.*]] = project_box [[VAR]]
8484
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
@@ -104,7 +104,7 @@ extension Error {
104104

105105
// CHECK-LABEL: sil hidden @_T018boxed_existentials21test_extension_methodys5Error_pF
106106
func test_extension_method(_ error: Error) {
107-
// CHECK: bb0([[ARG:%.*]] : $Error):
107+
// CHECK: bb0([[ARG:%.*]] : @owned $Error):
108108
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
109109
// CHECK: [[VALUE:%.*]] = open_existential_box [[BORROWED_ARG]]
110110
// CHECK: [[METHOD:%.*]] = function_ref
@@ -122,8 +122,8 @@ func plusOneError() -> Error { }
122122

123123
// CHECK-LABEL: sil hidden @_T018boxed_existentials31test_open_existential_semanticsys5Error_p_sAC_ptF
124124
// GUARANTEED-LABEL: sil hidden @_T018boxed_existentials31test_open_existential_semanticsys5Error_p_sAC_ptF
125-
// CHECK: bb0([[ARG0:%.*]]: $Error,
126-
// GUARANTEED: bb0([[ARG0:%.*]]: $Error,
125+
// CHECK: bb0([[ARG0:%.*]]: @owned $Error,
126+
// GUARANTEED: bb0([[ARG0:%.*]]: @owned $Error,
127127
func test_open_existential_semantics(_ guaranteed: Error,
128128
_ immediate: Error) {
129129
var immediate = immediate
@@ -193,7 +193,7 @@ func test_open_existential_semantics(_ guaranteed: Error,
193193
}
194194

195195
// CHECK-LABEL: sil hidden @_T018boxed_existentials14erasure_to_anyyps5Error_p_sAC_ptF
196-
// CHECK: bb0([[OUT:%.*]] : $*Any, [[GUAR:%.*]] : $Error,
196+
// CHECK: bb0([[OUT:%.*]] : @trivial $*Any, [[GUAR:%.*]] : @owned $Error,
197197
func erasure_to_any(_ guaranteed: Error, _ immediate: Error) -> Any {
198198
var immediate = immediate
199199
// CHECK: [[IMMEDIATE_BOX:%.*]] = alloc_box ${ var Error }

test/SILGen/c_function_pointers.swift

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

33
func values(_ arg: @escaping @convention(c) (Int) -> Int) -> @convention(c) (Int) -> Int {
44
return arg
55
}
66
// CHECK-LABEL: sil hidden @_T019c_function_pointers6valuesS2iXCS2iXCF
7-
// CHECK: bb0(%0 : $@convention(c) (Int) -> Int):
7+
// CHECK: bb0(%0 : @trivial $@convention(c) (Int) -> Int):
88
// CHECK: return %0 : $@convention(c) (Int) -> Int
99

1010
@discardableResult
1111
func calls(_ arg: @convention(c) (Int) -> Int, _ x: Int) -> Int {
1212
return arg(x)
1313
}
1414
// CHECK-LABEL: sil hidden @_T019c_function_pointers5callsS3iXC_SitF
15-
// CHECK: bb0(%0 : $@convention(c) (Int) -> Int, %1 : $Int):
15+
// CHECK: bb0(%0 : @trivial $@convention(c) (Int) -> Int, %1 : @trivial $Int):
1616
// CHECK: [[RESULT:%.*]] = apply %0(%1)
1717
// CHECK: return [[RESULT]]
1818

@@ -27,7 +27,7 @@ func no_args() -> Int { return 42 }
2727

2828
// CHECK-LABEL: sil hidden @_T019c_function_pointers0B19_to_swift_functionsySiF
2929
func pointers_to_swift_functions(_ x: Int) {
30-
// CHECK: bb0([[X:%.*]] : $Int):
30+
// CHECK: bb0([[X:%.*]] : @trivial $Int):
3131

3232
func local(_ y: Int) -> Int { return y }
3333

test/SILGen/c_materializeForSet_linkage.swift

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

33
// REQUIRES: objc_interop
44

test/SILGen/call_chain_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 A {
44
func g<U>(_ recur: (A, U) -> U) -> (A, U) -> U {

test/SILGen/capture-canonicalization.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<T> {}
44
struct Bar {}

test/SILGen/capture_list.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
1+
// RUN: %target-swift-frontend -emit-silgen -enable-sil-ownership %s
22

33
// Capture list with weak capture vs noescape closure
44
func transform<T>(fn: () -> T) -> T {

test/SILGen/capture_typed_boxes.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
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
func foo(_ x: Int) -> () -> Int {
44
var x = x
55
return { x }
66
}
77
// CHECK-LABEL: sil private @_T019capture_typed_boxes3fooSiycSiFSiycfU_ : $@convention(thin) (@owned { var Int }) -> Int {
8-
// CHECK: bb0(%0 : ${ var Int }):
8+
// CHECK: bb0(%0 : @owned ${ var Int }):
99

1010
func closure(_ f: @escaping (Int) -> Int) -> Int {
1111
var f = f
@@ -16,7 +16,7 @@ func closure(_ f: @escaping (Int) -> Int) -> Int {
1616
return bar(0)
1717
}
1818
// CHECK-LABEL: sil private @_T019capture_typed_boxes7closureS3icF3barL_S2iF : $@convention(thin) (Int, @owned { var @callee_owned (Int) -> Int }) -> Int {
19-
// CHECK: bb0(%0 : $Int, %1 : ${ var @callee_owned (Int) -> Int }):
19+
// CHECK: bb0(%0 : @trivial $Int, %1 : @owned ${ var @callee_owned (Int) -> Int }):
2020

2121
func closure_generic<T>(_ f: @escaping (T) -> T, x: T) -> T {
2222
var f = f
@@ -27,5 +27,5 @@ func closure_generic<T>(_ f: @escaping (T) -> T, x: T) -> T {
2727
return bar(x)
2828
}
2929
// CHECK-LABEL: sil private @_T019capture_typed_boxes15closure_generic{{.*}} : $@convention(thin) <T> (@in T, @owned <τ_0_0> { var @callee_owned (@in τ_0_0) -> @out τ_0_0 } <T>) -> @out T {
30-
// CHECK-LABEL: bb0(%0 : $*T, %1 : $*T, %2 : $<τ_0_0> { var @callee_owned (@in τ_0_0) -> @out τ_0_0 } <T>):
30+
// CHECK-LABEL: bb0(%0 : @trivial $*T, %1 : @trivial $*T, %2 : @owned $<τ_0_0> { var @callee_owned (@in τ_0_0) -> @out τ_0_0 } <T>):
3131

test/SILGen/casts.swift

Lines changed: 9 additions & 9 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 B { }
44
class D : B { }
@@ -16,17 +16,17 @@ func downcast(b: B) -> D {
1616

1717
// CHECK-LABEL: sil hidden @_T05casts3isa{{[_0-9a-zA-Z]*}}F
1818
func isa(b: B) -> Bool {
19-
// CHECK: bb0([[ARG:%.*]] : $B):
19+
// CHECK: bb0([[ARG:%.*]] : @owned $B):
2020
// CHECK: [[BORROWED_ARG:%.*]] = begin_borrow [[ARG]]
2121
// CHECK: [[COPIED_BORROWED_ARG:%.*]] = copy_value [[BORROWED_ARG]]
2222
// CHECK: checked_cast_br [[COPIED_BORROWED_ARG]] : $B to $D, [[YES:bb[0-9]+]], [[NO:bb[0-9]+]]
2323
//
24-
// CHECK: [[YES]]([[CASTED_VALUE:%.*]] : $D):
24+
// CHECK: [[YES]]([[CASTED_VALUE:%.*]] : @owned $D):
2525
// CHECK: integer_literal {{.*}} -1
2626
// CHECK: destroy_value [[CASTED_VALUE]]
2727
// CHECK: end_borrow [[BORROWED_ARG]] from [[ARG]]
2828
//
29-
// CHECK: [[NO]]([[ORIGINAL_VALUE:%.*]] : $B):
29+
// CHECK: [[NO]]([[ORIGINAL_VALUE:%.*]] : @owned $B):
3030
// CHECK: destroy_value [[ORIGINAL_VALUE]]
3131
// CHECK: integer_literal {{.*}} 0
3232
// CHECK: end_borrow [[BORROWED_ARG]] from [[ARG]]
@@ -56,12 +56,12 @@ func downcast_archetype<T : B>(b: B) -> T {
5656
//
5757
// CHECK-LABEL: sil hidden @_T05casts12is_archetype{{[_0-9a-zA-Z]*}}F
5858
func is_archetype<T : B>(b: B, _: T) -> Bool {
59-
// CHECK: bb0([[ARG1:%.*]] : $B, [[ARG2:%.*]] : $T):
59+
// CHECK: bb0([[ARG1:%.*]] : @owned $B, [[ARG2:%.*]] : @owned $T):
6060
// CHECK: checked_cast_br {{%.*}}, [[YES:bb[0-9]+]], [[NO:bb[0-9]+]]
61-
// CHECK: [[YES]]([[CASTED_ARG:%.*]] : $T):
61+
// CHECK: [[YES]]([[CASTED_ARG:%.*]] : @owned $T):
6262
// CHECK: integer_literal {{.*}} -1
6363
// CHECK: destroy_value [[CASTED_ARG]]
64-
// CHECK: [[NO]]([[ORIGINAL_VALUE:%.*]] : $B):
64+
// CHECK: [[NO]]([[ORIGINAL_VALUE:%.*]] : @owned $B):
6565
// CHCEK: destroy_value [[CASTED_ARG]]
6666
// CHECK: integer_literal {{.*}} 0
6767
return b is T
@@ -79,7 +79,7 @@ protocol P {}
7979
struct S : P {}
8080

8181
// CHECK: sil hidden @_T05casts32downcast_existential_conditional{{[_0-9a-zA-Z]*}}F
82-
// CHECK: bb0([[IN:%.*]] : $*P):
82+
// CHECK: bb0([[IN:%.*]] : @trivial $*P):
8383
// CHECK: [[COPY:%.*]] = alloc_stack $P
8484
// CHECK: copy_addr [[IN]] to [initialization] [[COPY]]
8585
// CHECK: [[TMP:%.*]] = alloc_stack $S
@@ -96,7 +96,7 @@ struct S : P {}
9696
// CHECK: dealloc_stack [[TMP]]
9797
// CHECK: br bb3([[T0]] : $Optional<S>)
9898
// Continuation block.
99-
// CHECK: bb3([[RESULT:%.*]] : $Optional<S>):
99+
// CHECK: bb3([[RESULT:%.*]] : @trivial $Optional<S>):
100100
// CHECK: dealloc_stack [[COPY]]
101101
// CHECK: destroy_addr [[IN]] : $*P
102102
// CHECK: return [[RESULT]]

test/SILGen/cdecl.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 [thunk] @pear : $@convention(c)
44
// CHECK: function_ref @_T05cdecl5apple{{[_0-9a-zA-Z]*}}F

0 commit comments

Comments
 (0)