@@ -1081,9 +1081,8 @@ static unsigned tuple_getEnumTagSinglePayload(const OpaqueValue *enumAddr,
1081
1081
auto *witnesses = self->getValueWitnesses ();
1082
1082
auto size = witnesses->getSize ();
1083
1083
auto numExtraInhabitants = witnesses->getNumExtraInhabitants ();
1084
- auto getExtraInhabitantIndex =
1085
- (static_cast <const ExtraInhabitantsValueWitnessTable *>(witnesses)
1086
- ->getExtraInhabitantIndex );
1084
+ auto EIVWT = dyn_cast<ExtraInhabitantsValueWitnessTable>(witnesses);
1085
+ auto getExtraInhabitantIndex = EIVWT ? EIVWT->getExtraInhabitantIndex : nullptr ;
1087
1086
1088
1087
return getEnumTagSinglePayloadImpl (enumAddr, numEmptyCases, self, size,
1089
1088
numExtraInhabitants,
@@ -1097,9 +1096,8 @@ tuple_storeEnumTagSinglePayload(OpaqueValue *enumAddr, unsigned whichCase,
1097
1096
auto *witnesses = self->getValueWitnesses ();
1098
1097
auto size = witnesses->getSize ();
1099
1098
auto numExtraInhabitants = witnesses->getNumExtraInhabitants ();
1100
- auto storeExtraInhabitant =
1101
- (static_cast <const ExtraInhabitantsValueWitnessTable *>(witnesses)
1102
- ->storeExtraInhabitant );
1099
+ auto EIVWT = dyn_cast<ExtraInhabitantsValueWitnessTable>(witnesses);
1100
+ auto storeExtraInhabitant = EIVWT ? EIVWT->storeExtraInhabitant : nullptr ;
1103
1101
1104
1102
storeEnumTagSinglePayloadImpl (enumAddr, whichCase, numEmptyCases, self, size,
1105
1103
numExtraInhabitants, storeExtraInhabitant);
@@ -1617,9 +1615,8 @@ static unsigned pod_direct_getEnumTagSinglePayload(const OpaqueValue *enumAddr,
1617
1615
auto *witnesses = self->getValueWitnesses ();
1618
1616
auto size = witnesses->getSize ();
1619
1617
auto numExtraInhabitants = witnesses->getNumExtraInhabitants ();
1620
- auto getExtraInhabitantIndex =
1621
- (static_cast <const ExtraInhabitantsValueWitnessTable *>(witnesses)
1622
- ->getExtraInhabitantIndex );
1618
+ auto EIVWT = dyn_cast<ExtraInhabitantsValueWitnessTable>(witnesses);
1619
+ auto getExtraInhabitantIndex = EIVWT ? EIVWT->getExtraInhabitantIndex : nullptr ;
1623
1620
1624
1621
return getEnumTagSinglePayloadImpl (enumAddr, numEmptyCases, self, size,
1625
1622
numExtraInhabitants,
@@ -1633,9 +1630,8 @@ static void pod_direct_storeEnumTagSinglePayload(OpaqueValue *enumAddr,
1633
1630
auto *witnesses = self->getValueWitnesses ();
1634
1631
auto size = witnesses->getSize ();
1635
1632
auto numExtraInhabitants = witnesses->getNumExtraInhabitants ();
1636
- auto storeExtraInhabitant =
1637
- (static_cast <const ExtraInhabitantsValueWitnessTable *>(witnesses)
1638
- ->storeExtraInhabitant );
1633
+ auto EIVWT = dyn_cast<ExtraInhabitantsValueWitnessTable>(witnesses);
1634
+ auto storeExtraInhabitant = EIVWT ? EIVWT->storeExtraInhabitant : nullptr ;
1639
1635
1640
1636
storeEnumTagSinglePayloadImpl (enumAddr, whichCase, numEmptyCases, self, size,
1641
1637
numExtraInhabitants, storeExtraInhabitant);
0 commit comments