summaryrefslogtreecommitdiffstats
path: root/lld/lib/Passes/LayoutPass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/Passes/LayoutPass.cpp')
-rw-r--r--lld/lib/Passes/LayoutPass.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lld/lib/Passes/LayoutPass.cpp b/lld/lib/Passes/LayoutPass.cpp
index b116496e036..c4c8fb9c33e 100644
--- a/lld/lib/Passes/LayoutPass.cpp
+++ b/lld/lib/Passes/LayoutPass.cpp
@@ -56,10 +56,12 @@ bool LayoutPass::CompareAtoms::operator()(const DefinedAtom *left,
// Sort atoms by their ordinal overrides only if they fall in the same
// chain.
- const DefinedAtom *leftAtom = _layout._followOnRoots.find(left)->second;
- const DefinedAtom *rightAtom = _layout._followOnRoots.find(right)->second;
+ auto leftAtom = _layout._followOnRoots.find(left);
+ auto rightAtom = _layout._followOnRoots.find(right);
- if (leftAtom == rightAtom) {
+ if (leftAtom != _layout._followOnRoots.end() &&
+ rightAtom != _layout._followOnRoots.end() &&
+ leftAtom->second == rightAtom->second) {
if ((lPos != end) && (rPos != end)) {
return lPos->second < rPos->second;
}
OpenPOWER on IntegriCloud