Skip to content

Commit f08df03

Browse files
committed
[IRGen] Defined TypeInfo for async context.
1 parent 08612ff commit f08df03

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

lib/IRGen/GenType.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,6 +1453,20 @@ const TypeInfo &TypeConverter::getTypeMetadataPtrTypeInfo() {
14531453
return *TypeMetadataPtrTI;
14541454
}
14551455

1456+
const TypeInfo &IRGenModule::getSwiftContextPtrTypeInfo() {
1457+
return Types.getSwiftContextPtrTypeInfo();
1458+
}
1459+
1460+
const TypeInfo &TypeConverter::getSwiftContextPtrTypeInfo() {
1461+
if (SwiftContextPtrTI) return *SwiftContextPtrTI;
1462+
SwiftContextPtrTI = createUnmanagedStorageType(IGM.SwiftContextPtrTy,
1463+
ReferenceCounting::Unknown,
1464+
/*isOptional*/false);
1465+
SwiftContextPtrTI->NextConverted = FirstType;
1466+
FirstType = SwiftContextPtrTI;
1467+
return *SwiftContextPtrTI;
1468+
}
1469+
14561470
const LoadableTypeInfo &
14571471
IRGenModule::getReferenceObjectTypeInfo(ReferenceCounting refcounting) {
14581472
switch (refcounting) {

lib/IRGen/GenType.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ class TypeConverter {
105105
const LoadableTypeInfo *RawPointerTI = nullptr;
106106
const LoadableTypeInfo *WitnessTablePtrTI = nullptr;
107107
const TypeInfo *TypeMetadataPtrTI = nullptr;
108+
const TypeInfo *SwiftContextPtrTI = nullptr;
108109
const TypeInfo *ObjCClassPtrTI = nullptr;
109110
const LoadableTypeInfo *EmptyTI = nullptr;
110111
const LoadableTypeInfo *IntegerLiteralTI = nullptr;
@@ -181,6 +182,7 @@ class TypeConverter {
181182
const LoadableTypeInfo &getBridgeObjectTypeInfo();
182183
const LoadableTypeInfo &getRawPointerTypeInfo();
183184
const TypeInfo &getTypeMetadataPtrTypeInfo();
185+
const TypeInfo &getSwiftContextPtrTypeInfo();
184186
const TypeInfo &getObjCClassPtrTypeInfo();
185187
const LoadableTypeInfo &getWitnessTablePtrTypeInfo();
186188
const LoadableTypeInfo &getEmptyTypeInfo();

lib/IRGen/IRGenModule.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,7 @@ class IRGenModule {
891891
const TypeInfo &getTypeInfo(SILType T);
892892
const TypeInfo &getWitnessTablePtrTypeInfo();
893893
const TypeInfo &getTypeMetadataPtrTypeInfo();
894+
const TypeInfo &getSwiftContextPtrTypeInfo();
894895
const TypeInfo &getObjCClassPtrTypeInfo();
895896
const LoadableTypeInfo &getOpaqueStorageTypeInfo(Size size, Alignment align);
896897
const LoadableTypeInfo &

0 commit comments

Comments
 (0)