Skip to content

Commit ace752b

Browse files
authored
Merge pull request #73465 from drexin/wip-127511568
[IRGen] Add missing blocklist check for some CVW cases
2 parents ab57ef9 + 03a7183 commit ace752b

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

lib/IRGen/GenValueWitness.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,8 +1222,7 @@ static void addValueWitness(IRGenModule &IGM, ConstantStructBuilder &B,
12221222
case ValueWitness::GetEnumTag: {
12231223
assert(concreteType.getEnumOrBoundGenericEnum());
12241224

1225-
if (IGM.Context.LangOpts.hasFeature(Feature::LayoutStringValueWitnesses) &&
1226-
IGM.getOptions().EnableLayoutStringValueWitnesses) {
1225+
if (layoutStringsEnabled(IGM)) {
12271226
auto ty = boundGenericCharacteristics
12281227
? boundGenericCharacteristics->concreteType
12291228
: concreteType;
@@ -1245,8 +1244,7 @@ static void addValueWitness(IRGenModule &IGM, ConstantStructBuilder &B,
12451244
}
12461245
case ValueWitness::DestructiveInjectEnumTag: {
12471246
assert(concreteType.getEnumOrBoundGenericEnum());
1248-
if (IGM.Context.LangOpts.hasFeature(Feature::LayoutStringValueWitnesses) &&
1249-
IGM.getOptions().EnableLayoutStringValueWitnesses) {
1247+
if (layoutStringsEnabled(IGM)) {
12501248
auto ty = boundGenericCharacteristics
12511249
? boundGenericCharacteristics->concreteType
12521250
: concreteType;

test/IRGen/layout_string_witnesses_block_list.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// RUN: %empty-directory(%t)
22

3-
// RUN: %target-swift-frontend -enable-experimental-feature LayoutStringValueWitnesses -enable-layout-string-value-witnesses -emit-ir -module-name Foo %s | %FileCheck %s
3+
// RUN: %target-swift-frontend -enable-experimental-feature LayoutStringValueWitnesses -enable-experimental-feature LayoutStringValueWitnessesInstantiation -enable-layout-string-value-witnesses -enable-layout-string-value-witnesses-instantiation -emit-ir -module-name Foo %s | %FileCheck %s
44
// RUN: %target-swift-frontend -emit-ir -module-name Foo %s | %FileCheck %s --check-prefix=CHECK-DISABLED
55

66
// RUN: echo "---" > %t/blocklist.yml
@@ -21,3 +21,10 @@ public struct Bar {
2121
let x: Int
2222
let y: AnyObject
2323
}
24+
25+
// CHECK-BLOCKED-NOT: swift_enumFn_getEnumTag
26+
public enum Foo {
27+
case a(AnyObject)
28+
case b(Int, AnyObject)
29+
case c
30+
}

0 commit comments

Comments
 (0)