mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
I am doing this separately from the actual change to eliminate the option to make it easier to review.
30 lines
1.4 KiB
Plaintext
30 lines
1.4 KiB
Plaintext
// RUN: %target-sil-opt -sdk %clang-importer-sdk-path %s
|
|
|
|
import ctypes
|
|
|
|
sil_stage canonical
|
|
|
|
// blah.typeof <A>(A) -> A.Type
|
|
sil hidden @_TF4blah6typeofU__FQ_MQ_ : $@convention(thin) <T> (@in T) -> @thick T.Type {
|
|
bb0(%0 : $*T):
|
|
destroy_addr %0 : $*T // id: %1
|
|
%2 = metatype $@thick T.Type // user: %3
|
|
return %2 : $@thick T.Type // id: %3
|
|
}
|
|
|
|
// blah.testUnnamedStructs (C.UnnamedStructs) -> ()
|
|
sil hidden @_TF4blah18testUnnamedStructsFVSC14UnnamedStructsT_ : $@convention(thin) (UnnamedStructs) -> () {
|
|
bb0(%0 : $UnnamedStructs):
|
|
debug_value %0 : $UnnamedStructs // let u_s // id: %1
|
|
// function_ref blah.typeof <A>(A) -> A.Type
|
|
%2 = function_ref @_TF4blah6typeofU__FQ_MQ_ : $@convention(thin) <τ_0_0> (@in τ_0_0) -> @thick τ_0_0.Type // user: %6
|
|
%3 = struct_extract %0 : $UnnamedStructs, #UnnamedStructs.x // user: %5
|
|
%4 = alloc_stack $UnnamedStructs.__Unnamed_struct_x // users: %5, %6, %8
|
|
store %3 to %4 : $*UnnamedStructs.__Unnamed_struct_x // id: %5
|
|
%6 = apply %2<UnnamedStructs.__Unnamed_struct_x>(%4) : $@convention(thin) <τ_0_0> (@in τ_0_0) -> @thick τ_0_0.Type
|
|
%7 = metatype $@thin UnnamedStructs.__Unnamed_struct_x.Type
|
|
dealloc_stack %4 : $*UnnamedStructs.__Unnamed_struct_x // id: %8
|
|
%9 = tuple () // user: %10
|
|
return %9 : $() // id: %10
|
|
}
|