mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
The previous lazy discovery did not always work because sometimes a debug_value is emitted before the first SIL instruction in the variable's scope. rdar://110841130
23 lines
946 B
Swift
23 lines
946 B
Swift
// RUN: %target-swift-frontend -module-name a -parse-as-library -emit-sil -g %s | %FileCheck %s
|
|
|
|
func sink<T>(_ t: T) {}
|
|
|
|
public func f(_ xs: [String?]) {
|
|
for x in xs {
|
|
let x = x!
|
|
sink(x)
|
|
}
|
|
}
|
|
|
|
// CHECK: sil_scope [[F:[0-9]+]] { loc "{{.*}}":5:13 parent @$s1a1fyySaySSSgGF
|
|
// CHECK: sil_scope [[S3:[0-9]+]] { loc "{{.*}}":6:3 parent [[F]] }
|
|
// CHECK: sil_scope [[S4:[0-9]+]] { loc "{{.*}}":6:15 parent [[S3]] }
|
|
// CHECK: sil_scope [[S5:[0-9]+]] { loc "{{.*}}":7:13 parent [[S4]] }
|
|
// CHECK: sil_scope [[S6:[0-9]+]] { loc "{{.*}}":7:9 parent [[S4]] }
|
|
|
|
// CHECK: debug_value %[[X:.*]] : $Optional<String>, let, name "x", {{.*}}, scope [[S4]]
|
|
// CHECK: retain_value %[[X]] : $Optional<String>, {{.*}}, scope [[S5]]
|
|
// CHECK: debug_value %[[X1:[0-9]+]] : $String, let, name "x", {{.*}}, scope [[S6]]
|
|
// CHECK: release_value %[[X1]] : $String, {{.*}}, scope [[S6]]
|
|
// CHECK: release_value %[[X]] : $Optional<String>, {{.*}}, scope [[S6]]
|