summaryrefslogtreecommitdiff
path: root/bolt/lib/Core/BinaryContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'bolt/lib/Core/BinaryContext.cpp')
-rw-r--r--bolt/lib/Core/BinaryContext.cpp13
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;
}