diff --git a/lib/EarlyFunctionAnalysis/EarlyFunctionAnalysis.cpp b/lib/EarlyFunctionAnalysis/EarlyFunctionAnalysis.cpp index 263b0c589..655b9c8b5 100644 --- a/lib/EarlyFunctionAnalysis/EarlyFunctionAnalysis.cpp +++ b/lib/EarlyFunctionAnalysis/EarlyFunctionAnalysis.cpp @@ -1068,6 +1068,7 @@ FunctionEntrypointAnalyzer::collectDirectCFG(OutlinedFunction *F) { MetaAddress Start = getBasicBlockPC(&BB); efa::BasicBlock Block{ Start }; Block.End = getFinalAddressOfBasicBlock(&BB); + revng_assert(Block.End.isValid()); OnceQueue Queue; Queue.insert(&BB); @@ -1082,7 +1083,7 @@ FunctionEntrypointAnalyzer::collectDirectCFG(OutlinedFunction *F) { BasicBlock *Current = Queue.pop(); MetaAddress CurrentBlockEnd = getFinalAddressOfBasicBlock(Current); - if (CurrentBlockEnd > Block.End) + if (CurrentBlockEnd.isValid() and CurrentBlockEnd > Block.End) Block.End = CurrentBlockEnd; for (BasicBlock *Succ : successors(Current)) {