summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/source/Target/ThreadPlanStepOverRange.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Target/ThreadPlanStepOverRange.cpp b/lldb/source/Target/ThreadPlanStepOverRange.cpp
index 95dc2205bbf..0d02531efe8 100644
--- a/lldb/source/Target/ThreadPlanStepOverRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepOverRange.cpp
@@ -118,6 +118,12 @@ ThreadPlanStepOverRange::IsEquivalentContext(const SymbolContext &context)
{
if (m_addr_context.function && m_addr_context.function == context.function)
{
+ // It is okay to return to a different block of a straight function, we only have to
+ // be more careful if returning from one inlined block to another.
+ if (m_addr_context.block->GetInlinedFunctionInfo() == nullptr
+ && context.block->GetInlinedFunctionInfo() == nullptr)
+ return true;
+
if (m_addr_context.block && m_addr_context.block == context.block)
return true;
}
OpenPOWER on IntegriCloud