mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50:24 +08:00
Fix signedness of def_cfa_sf and def_cfa_offset_sf
* dwarf.c (display_debug_frames): Both DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf have a signed offset.
This commit is contained in:

committed by
Nick Clifton

parent
d8b04da736
commit
280c57ff58
@ -9432,19 +9432,21 @@ display_debug_frames (struct dwarf_section *section,
|
||||
|
||||
case DW_CFA_def_cfa_sf:
|
||||
READ_ULEB (fc->cfa_reg, start, block_end);
|
||||
READ_ULEB (fc->cfa_offset, start, block_end);
|
||||
fc->cfa_offset = fc->cfa_offset * fc->data_factor;
|
||||
READ_SLEB (l, start, block_end);
|
||||
l *= fc->data_factor;
|
||||
fc->cfa_offset = l;
|
||||
fc->cfa_exp = 0;
|
||||
if (! do_debug_frames_interp)
|
||||
printf (" DW_CFA_def_cfa_sf: %s ofs %d\n",
|
||||
regname (fc->cfa_reg, 0), (int) fc->cfa_offset);
|
||||
printf (" DW_CFA_def_cfa_sf: %s ofs %ld\n",
|
||||
regname (fc->cfa_reg, 0), (long) l);
|
||||
break;
|
||||
|
||||
case DW_CFA_def_cfa_offset_sf:
|
||||
READ_ULEB (fc->cfa_offset, start, block_end);
|
||||
fc->cfa_offset *= fc->data_factor;
|
||||
READ_SLEB (l, start, block_end);
|
||||
l *= fc->data_factor;
|
||||
fc->cfa_offset = l;
|
||||
if (! do_debug_frames_interp)
|
||||
printf (" DW_CFA_def_cfa_offset_sf: %d\n", (int) fc->cfa_offset);
|
||||
printf (" DW_CFA_def_cfa_offset_sf: %ld\n", (long) l);
|
||||
break;
|
||||
|
||||
case DW_CFA_MIPS_advance_loc8:
|
||||
|
Reference in New Issue
Block a user