fix laf-intel split switches

This commit is contained in:
vanhauser-thc 2022-01-13 10:09:35 +01:00
parent 21ebfec79c
commit 110cc27632

View File

@ -118,8 +118,6 @@ BasicBlock *SplitSwitchesTransform::switchConvert(
std::vector<uint8_t> setSizes; std::vector<uint8_t> setSizes;
std::vector<std::set<uint8_t> > byteSets(BytesInValue, std::set<uint8_t>()); std::vector<std::set<uint8_t> > byteSets(BytesInValue, std::set<uint8_t>());
assert(ValTypeBitWidth >= 8 && ValTypeBitWidth <= 64);
/* for each of the possible cases we iterate over all bytes of the values /* for each of the possible cases we iterate over all bytes of the values
* build a set of possible values at each byte position in byteSets */ * build a set of possible values at each byte position in byteSets */
for (CaseExpr &Case : Cases) { for (CaseExpr &Case : Cases) {
@ -350,9 +348,9 @@ bool SplitSwitchesTransform::splitSwitches(Module &M) {
/* If there is only the default destination or the condition checks 8 bit or /* If there is only the default destination or the condition checks 8 bit or
* less, don't bother with the code below. */ * less, don't bother with the code below. */
if (!SI->getNumCases() || bitw <= 8) { if (SI->getNumCases() < 2 || bitw % 8 || bitw > 64) {
// if (!be_quiet) errs() << "skip trivial switch..\n"; // if (!be_quiet) errs() << "skip switch..\n";
continue; continue;
} }