diff options
Diffstat (limited to 'bolt/lib/Core/BinaryBasicBlock.cpp')
| -rw-r--r-- | bolt/lib/Core/BinaryBasicBlock.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/bolt/lib/Core/BinaryBasicBlock.cpp b/bolt/lib/Core/BinaryBasicBlock.cpp index 311d5c15b8dc..eeab1ed4d7cf 100644 --- a/bolt/lib/Core/BinaryBasicBlock.cpp +++ b/bolt/lib/Core/BinaryBasicBlock.cpp @@ -103,9 +103,18 @@ bool BinaryBasicBlock::validateSuccessorInvariants() { Valid &= (Sym == Function->getFunctionEndLabel() || Sym == Function->getFunctionEndLabel(getFragmentNum())); if (!Valid) { - BC.errs() << "BOLT-WARNING: Jump table contains illegal entry: " - << Sym->getName() << "\n"; + const BinaryFunction *TargetBF = BC.getFunctionForSymbol(Sym); + if (TargetBF) { + // It's possible for another function to be in the jump table entry + // as a result of built-in unreachable. + Valid = true; + } else { + BC.errs() << "BOLT-WARNING: Jump table contains illegal entry: " + << Sym->getName() << "\n"; + } } + if (!Valid) + break; } } } else { |
