blob: 33f4a23d4a8085649f7dc6b67b381d03f62659d3 [file] [log] [blame]
// RUN: %target-swift-frontend -emit-ir %s | %FileCheck %s -DINT=i%target-ptrsize
sil_stage canonical
import Builtin
// Note: This test is trivial now that structs inside classes don't require dynamic
// metadata instantiation.
class Outer {
struct Inner {
}
}
sil_vtable Outer {}
sil @test0 : $@convention(thin) (@thick Outer.Inner.Type) -> (@thick Outer.Type) {
bb0(%0 : $@thick Outer.Inner.Type):
%1 = metatype $@thick Outer.Type
return %1 : $@thick Outer.Type
}
// CHECK-LABEL: define{{ | dllexport | protected }}swiftcc %swift.type* @test0(%swift.type*)
// CHECK: [[T0:%.*]] = call swiftcc %swift.metadata_response @"$s12nested_types5OuterCMa"([[INT]] 0)
// CHECK-NEXT: [[T1:%.*]] = extractvalue %swift.metadata_response [[T0]], 0
// CHECK-NEXT: ret %swift.type* [[T1]]
// CHECK-LABEL: define hidden swiftcc %swift.metadata_response @"$s12nested_types5OuterC5InnerVMa"(
// CHECK: ret %swift.metadata_response { %swift.type* bitcast {{.*}}@"$s12nested_types5OuterC5InnerVMf"{{.*}}, [[INT]] 0 }