diff options
Diffstat (limited to 'bolt/lib/Core/BinaryContext.cpp')
| -rw-r--r-- | bolt/lib/Core/BinaryContext.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/bolt/lib/Core/BinaryContext.cpp b/bolt/lib/Core/BinaryContext.cpp index 46b337264233..7dded4c59ed3 100644 --- a/bolt/lib/Core/BinaryContext.cpp +++ b/bolt/lib/Core/BinaryContext.cpp @@ -1337,8 +1337,17 @@ void BinaryContext::processInterproceduralReferences() { << Function.getPrintName() << " and " << TargetFunction->getPrintName() << '\n'; } - if (uint64_t Offset = Address - TargetFunction->getAddress()) - TargetFunction->addEntryPointAtOffset(Offset); + if (uint64_t Offset = Address - TargetFunction->getAddress()) { + if (!TargetFunction->isInConstantIsland(Address)) { + TargetFunction->addEntryPointAtOffset(Offset); + } else { + TargetFunction->setIgnored(); + this->outs() << "BOLT-WARNING: Ignoring entry point at address 0x" + << Twine::utohexstr(Address) + << " in constant island of function " << *TargetFunction + << '\n'; + } + } continue; } |
