From: Sandra Loosemore Date: Fri, 23 Aug 2019 15:18:54 +0000 (-0700) Subject: Fix bug in nios2 prologue analysis. X-Git-Tag: binutils-2_33~121 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de8af80891ff0eee61cd219b316e176e9ae88e91;p=thirdparty%2Fbinutils-gdb.git Fix bug in nios2 prologue analysis. The nios2 prologue analyzer was mistakenly using an unsigned int field to represent a 32-bit signed value. This caused problems with an incorrect conversion being applied to negative values when they were automatically promoted for addition to a 64-bit CORE_ADDR value. This patch fixes test failures in gdb.base/large-frame.exp and gdb.dwarf2/dw2-ref-missing-frame.exp. Normally the nios2 backend prefers to use the dwarf2 unwinder so the prologue analyzer is only invoked if there is no dwarf2 information. 2019-08-23 Sandra Loosemore gdb/ * nios2-tdep.c (struct reg_value): Improve comments. Make the offset field signed. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ac84245c340..df8488b109a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-08-23 Sandra Loosemore + + * nios2-tdep.c (struct reg_value): Improve comments. Make + the offset field signed. + 2019-08-22 Christian Biesinger * python/lib/gdb/__init__.py (_execute_file): New function. diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c index 2a21c33b83f..8d685d4acaa 100644 --- a/gdb/nios2-tdep.c +++ b/gdb/nios2-tdep.c @@ -58,13 +58,15 @@ static int nios2_debug = 0; analysis; see the reg_value and reg_saved tables in struct nios2_unwind_cache, respectively. */ -/* struct reg_value is used to record that a register has the same value - as reg at the given offset from the start of a function. */ +/* struct reg_value is used to record that a register has reg's initial + value at the start of a function plus the given constant offset. + If reg == 0, then the value is just the offset. + If reg < 0, then the value is unknown. */ struct reg_value { int reg; - unsigned int offset; + int offset; }; /* struct reg_saved is used to record that a register value has been saved at