Files
swift-mirror/test/SIL/Parser/sil_scope_inline_fn.sil
Erik Eckstein 4b33b99ee2 MemoryLifetimeVerifier: be more precise with indirect function arguments.
Optimizations can rely on alias analysis to know that an in-argument (or parts of it) is not actually read.
We have to do the same in the verifier: if alias analysis says that an in-argument is not read, there is no need that the memory location is initialized.

Fixes a false verifier error.
rdar://106806899
2023-05-03 14:33:45 +02:00

20 lines
778 B
Plaintext

// RUN: %target-sil-opt -sil-print-debuginfo -enable-sil-verify-all -O %s | %FileCheck %s
sil_scope 1 { loc "foo.sil":3:4 parent @foo : $@convention(thin) () -> () }
sil_scope 2 { loc "foo.sil":3:4 parent 1 }
sil_scope 3 { loc "bar.swift":1:2 parent @bar : $@convention(thin) () -> () }
sil_scope 4 { loc "bar.swift":1:2 parent 3 inlined_at 2 }
// CHECK: sil_scope 1 { loc "bar.swift":1:2 parent @bar : $@convention(thin) () -> () }
// CHECK: sil_scope 2 { loc "foo.sil":3:4 parent @foo : $@convention(thin) () -> () }
// CHECK: sil_scope 3 { loc "foo.sil":3:4 parent 2 }
// CHECK: sil_scope 4 { loc "bar.swift":1:2 parent 1 inlined_at 3 }
// foo
sil @foo : $@convention(thin) () -> () {
bb0:
return undef : $(), scope 4 // id: %1
}
sil @bar : $@convention(thin) () -> ()