Implementation "step out" plans shouldn't gather the return value.
When, for instance, "step-in" steps into a function that it doesn't want
to stop in (e.g. has no debug info) it will push a step-out plan to implement
the step out so it can then continue stepping. These step out's don't use
the result of the function stepped out of, so they shouldn't spend the time
to compute it.
llvm-svn: 279540
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 40c137c..26502f2 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -1626,6 +1626,7 @@
uint32_t frame_idx,
bool continue_to_next_branch)
{
+ const bool calculate_return_value = false; // No need to calculate the return value here.
ThreadPlanSP thread_plan_sp(new ThreadPlanStepOut (*this,
addr_context,
first_insn,
@@ -1634,7 +1635,8 @@
run_vote,
frame_idx,
eLazyBoolNo,
- continue_to_next_branch));
+ continue_to_next_branch,
+ calculate_return_value));
ThreadPlanStepOut *new_plan = static_cast<ThreadPlanStepOut *>(thread_plan_sp.get());
new_plan->ClearShouldStopHereCallbacks();