Skip to content

Commit 744f558

Browse files
committed
[embedded] Don't allow ResultTypeInfoTaskOptionRecord parsing outside embedded Swift
1 parent b9fe308 commit 744f558

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

include/swift/ABI/TaskOptions.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ class AsyncLetWithBufferTaskOptionRecord : public TaskOptionRecord {
141141
}
142142
};
143143

144+
#if SWIFT_CONCURRENCY_EMBEDDED
144145
class ResultTypeInfoTaskOptionRecord : public TaskOptionRecord {
145146
public:
146147
size_t size;
@@ -153,6 +154,7 @@ class ResultTypeInfoTaskOptionRecord : public TaskOptionRecord {
153154
return record->getKind() == TaskOptionRecordKind::ResultTypeInfo;
154155
}
155156
};
157+
#endif
156158

157159
class RunInlineTaskOptionRecord : public TaskOptionRecord {
158160
void *allocation;

stdlib/public/Concurrency/Task.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -691,17 +691,19 @@ static AsyncTaskAndContext swift_task_create_commonImpl(
691691
break;
692692
}
693693
case TaskOptionRecordKind::ResultTypeInfo: {
694-
auto *typeInfo = cast<ResultTypeInfoTaskOptionRecord>(option);
695694
#if SWIFT_CONCURRENCY_EMBEDDED
695+
auto *typeInfo = cast<ResultTypeInfoTaskOptionRecord>(option);
696696
futureResultType = {
697697
.size = typeInfo->size,
698698
.alignMask = typeInfo->alignMask,
699699
.initializeWithCopy = typeInfo->initializeWithCopy,
700700
.storeEnumTagSinglePayload = typeInfo->storeEnumTagSinglePayload,
701701
.destroy = typeInfo->destroy,
702702
};
703-
#endif
704703
break;
704+
#else
705+
swift_unreachable("ResultTypeInfo in non-embedded");
706+
#endif
705707
}
706708
}
707709
}

stdlib/public/Concurrency/TaskGroup.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -959,12 +959,9 @@ SWIFT_CC(swift)
959959
static void swift_taskGroup_initializeWithFlagsImpl(size_t rawGroupFlags,
960960
TaskGroup *group, const Metadata *T) {
961961

962+
#if !SWIFT_CONCURRENCY_EMBEDDED
962963
ResultTypeInfo resultType;
963-
#if !SWIFT_CONCURRENCY_EMBEDDED
964964
resultType.metadata = T;
965-
#else
966-
swift_unreachable("task groups not supported yet in embedded Swift");
967-
#endif
968965

969966
TaskGroupFlags groupFlags(rawGroupFlags);
970967
SWIFT_TASK_GROUP_DEBUG_LOG_0(group, "create group, from task:%p; flags: isDiscardingResults=%d",
@@ -990,6 +987,9 @@ static void swift_taskGroup_initializeWithFlagsImpl(size_t rawGroupFlags,
990987
}
991988
return true;
992989
});
990+
#else
991+
swift_unreachable("task groups not supported yet in embedded Swift");
992+
#endif
993993
}
994994

995995
// =============================================================================

0 commit comments

Comments
 (0)