@@ -1791,9 +1791,10 @@ class EnumTypeInfoBuilder {
1791
1791
/* Size */ 2 , /* Alignment */ 2 , /* Stride */ 2 ,
1792
1792
/* NumExtraInhabitants */ 65536 - NoPayloadCases, Cases);
1793
1793
} else {
1794
- auto extraInhabitants = std::min (
1795
- ValueWitnessFlags::MaxNumExtraInhabitants,
1796
- std::numeric_limits<uint32_t >::max () - NoPayloadCases + 1 );
1794
+ auto extraInhabitants = std::numeric_limits<uint32_t >::max () - NoPayloadCases + 1 ;
1795
+ if (extraInhabitants > ValueWitnessFlags::MaxNumExtraInhabitants) {
1796
+ extraInhabitants = ValueWitnessFlags::MaxNumExtraInhabitants;
1797
+ }
1797
1798
return TC.makeTypeInfo <NoPayloadEnumTypeInfo>(
1798
1799
/* Size */ 4 , /* Alignment */ 4 , /* Stride */ 4 ,
1799
1800
/* NumExtraInhabitants */ extraInhabitants, Cases);
@@ -1883,8 +1884,9 @@ class EnumTypeInfoBuilder {
1883
1884
} else {
1884
1885
NumExtraInhabitants =
1885
1886
(1 << (tagCounts.numTagBytes * 8 )) - tagCounts.numTags ;
1886
- NumExtraInhabitants = std::min (NumExtraInhabitants,
1887
- unsigned (ValueWitnessFlags::MaxNumExtraInhabitants));
1887
+ if (NumExtraInhabitants > ValueWitnessFlags::MaxNumExtraInhabitants) {
1888
+ NumExtraInhabitants = ValueWitnessFlags::MaxNumExtraInhabitants;
1889
+ }
1888
1890
}
1889
1891
unsigned Stride = ((Size + Alignment - 1 ) & ~(Alignment - 1 ));
1890
1892
if (Stride == 0 )
0 commit comments