Skip to content

Commit cdcba01

Browse files
authored
Merge pull request #67027 from apple/drexin-patch-6
[IRGen] Fix getEnumTag witness function selection
2 parents af9b829 + 21ce1b6 commit cdcba01

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

lib/IRGen/GenValueWitness.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -902,9 +902,10 @@ static bool isRuntimeInstatiatedLayoutString(IRGenModule &IGM,
902902
static llvm::Constant *getEnumTagFunction(IRGenModule &IGM,
903903
const EnumTypeLayoutEntry *typeLayoutEntry,
904904
GenericSignature genericSig) {
905-
if ((!typeLayoutEntry->layoutString(IGM, genericSig) &&
906-
!isRuntimeInstatiatedLayoutString(IGM, typeLayoutEntry)) ||
907-
typeLayoutEntry->isSingleton()) {
905+
if (!typeLayoutEntry->layoutString(IGM, genericSig) &&
906+
!isRuntimeInstatiatedLayoutString(IGM, typeLayoutEntry)) {
907+
return nullptr;
908+
} else if (typeLayoutEntry->isSingleton()) {
908909
return IGM.getSingletonEnumGetEnumTagFn();
909910
} else if (!typeLayoutEntry->isFixedSize(IGM)) {
910911
if (typeLayoutEntry->isMultiPayloadEnum()) {

0 commit comments

Comments
 (0)