diff options
Diffstat (limited to 'gdb/dwarf2-frame-tailcall.c')
-rw-r--r-- | gdb/dwarf2-frame-tailcall.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gdb/dwarf2-frame-tailcall.c b/gdb/dwarf2-frame-tailcall.c index 952bc14..613cc34 100644 --- a/gdb/dwarf2-frame-tailcall.c +++ b/gdb/dwarf2-frame-tailcall.c @@ -386,13 +386,15 @@ dwarf2_tailcall_sniffer_first (struct frame_info *this_frame, /* call_site_find_chain can throw an exception. */ chain = call_site_find_chain (prev_gdbarch, prev_pc, this_pc); - if (entry_cfa_sp_offsetp == NULL) - break; - sp_regnum = gdbarch_sp_regnum (prev_gdbarch); - if (sp_regnum == -1) - break; - prev_sp = frame_unwind_register_unsigned (this_frame, sp_regnum); - prev_sp_p = 1; + if (entry_cfa_sp_offsetp != NULL) + { + sp_regnum = gdbarch_sp_regnum (prev_gdbarch); + if (sp_regnum != -1) + { + prev_sp = frame_unwind_register_unsigned (this_frame, sp_regnum); + prev_sp_p = 1; + } + } } CATCH (except, RETURN_MASK_ERROR) { |