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 <sandra@codesourcery.com> gdb/ * nios2-tdep.c (struct reg_value): Improve comments. Make the offset field signed.
This commit is contained in:
parent
09f7b0de53
commit
de8af80891
|
@ -1,3 +1,8 @@
|
||||||
|
2019-08-23 Sandra Loosemore <sandra@codesourcery.com>
|
||||||
|
|
||||||
|
* nios2-tdep.c (struct reg_value): Improve comments. Make
|
||||||
|
the offset field signed.
|
||||||
|
|
||||||
2019-08-22 Christian Biesinger <cbiesinger@google.com>
|
2019-08-22 Christian Biesinger <cbiesinger@google.com>
|
||||||
|
|
||||||
* python/lib/gdb/__init__.py (_execute_file): New function.
|
* python/lib/gdb/__init__.py (_execute_file): New function.
|
||||||
|
|
|
@ -58,13 +58,15 @@ static int nios2_debug = 0;
|
||||||
analysis; see the reg_value and reg_saved tables in
|
analysis; see the reg_value and reg_saved tables in
|
||||||
struct nios2_unwind_cache, respectively. */
|
struct nios2_unwind_cache, respectively. */
|
||||||
|
|
||||||
/* struct reg_value is used to record that a register has the same value
|
/* struct reg_value is used to record that a register has reg's initial
|
||||||
as reg at the given offset from the start of a function. */
|
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
|
struct reg_value
|
||||||
{
|
{
|
||||||
int reg;
|
int reg;
|
||||||
unsigned int offset;
|
int offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* struct reg_saved is used to record that a register value has been saved at
|
/* struct reg_saved is used to record that a register value has been saved at
|
||||||
|
|
Loading…
Reference in New Issue