This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

store.exp failure on i686-linux with newer gcc's


Hi.

Anyone working on this failure?

FAIL: gdb.base/store.exp: var longest l; print new l, expecting -1
[should read "expecting 4", fixed in separate patch]
FAIL: gdb.base/store.exp: var longest l; print incremented l, expecting 2
FAIL: gdb.base/store.exp: upvar longest l; print new l, expecting 4
FAIL: gdb.base/store.exp: var struct 4 u; print new u, expecting {s =
\{1, 2, 3, 4}}
FAIL: gdb.base/store.exp: up struct 4 u; print new u, expecting {s =
\{1, 2, 3, 4}}

Newer gcc's can store a 64 bit int in non-contiguous registers and use
DW_OP_piece to mark each piece.

value->lval is set to not_lval and value_assign doesn't like that so
gdb refuses to set the variable with "Left operand of assignment is
not an lvalue."

It seems like we need to not mark the value as not_lval and teach the
relevant pieces how to handle such values.
Anyone thought about how they want this done?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]