-Wpointer-sign: dwarf2-frame.c: Pass unsigned variable to safe_read_uleb128.
The 'bytes_read' change should be obvious. As for the other hunk, we're passing the address of the signed 'offset' to safe_read_uleb128, which expects unsigned. Fix it by passing the address of the unsigned 'utmp' instead, like already done on other spots in the file. gdb/ 2013-04-19 Pedro Alves <palves@redhat.com> * dwarf2-frame.c (execute_cfa_program): Make 'bytes_read' local unsigned. Pass 'tmp' to safe_read_uleb128 instead of the signed 'offset', and adjust.
This commit is contained in:
parent
f9d83a0bd6
commit
507a579c9a
|
@ -1,3 +1,9 @@
|
|||
2013-04-19 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* dwarf2-frame.c (execute_cfa_program): Make 'bytes_read' local
|
||||
unsigned. Pass 'tmp' to safe_read_uleb128 instead of the signed
|
||||
'offset', and adjust.
|
||||
|
||||
2013-04-19 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* dwarf2read.c (dwarf2_get_dwz_file): Add cast to const char *.
|
||||
|
|
|
@ -410,7 +410,7 @@ execute_cfa_program (struct dwarf2_fde *fde, const gdb_byte *insn_ptr,
|
|||
CORE_ADDR pc, struct dwarf2_frame_state *fs)
|
||||
{
|
||||
int eh_frame_p = fde->eh_frame_p;
|
||||
int bytes_read;
|
||||
unsigned int bytes_read;
|
||||
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
|
||||
|
||||
while (insn_ptr < insn_end && fs->pc <= pc)
|
||||
|
@ -672,8 +672,8 @@ bad CFI data; mismatched DW_CFA_restore_state at %s"),
|
|||
case DW_CFA_GNU_negative_offset_extended:
|
||||
insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, ®);
|
||||
reg = dwarf2_frame_adjust_regnum (gdbarch, reg, eh_frame_p);
|
||||
insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &offset);
|
||||
offset *= fs->data_align;
|
||||
insn_ptr = safe_read_uleb128 (insn_ptr, insn_end, &utmp);
|
||||
offset = utmp * fs->data_align;
|
||||
dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1);
|
||||
fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET;
|
||||
fs->regs.reg[reg].loc.offset = -offset;
|
||||
|
|
Loading…
Reference in New Issue