[ob] Fix new value-related failures in i386-sse.exp
Daniel Jacobowitz
drow@false.org
Sun Nov 21 19:52:00 GMT 2004
Some time in the last week or so, i386-sse.exp started failing. The problem
is:
set var $xmm0.v4_float[0] = 0 + 10
Value being assigned to is no longer active.
(gdb) PASS: gdb.arch/i386-sse.exp: set %xmm0
There's a couple more places where we copy VALUE_LVAL, of something which
might be lval_register, without copying VALUE_FRAME_ID. Patch tested on
i386-pc-linux-gnu; committed as obvious.
--
Daniel Jacobowitz
2004-11-21 Daniel Jacobowitz <dan@debian.org>
* valarith.c (value_subscript): Copy VALUE_FRAME_ID.
(value_subscripted_rvalue): Likewise.
* valops.c (search_struct_field, value_slice): Likewise.
Index: valarith.c
===================================================================
RCS file: /cvs/src/src/gdb/valarith.c,v
retrieving revision 1.29
diff -u -p -r1.29 valarith.c
--- valarith.c 13 Nov 2004 00:53:09 -0000 1.29
+++ valarith.c 21 Nov 2004 19:40:05 -0000
@@ -239,6 +239,7 @@ value_subscript (struct value *array, st
if (VALUE_LVAL (array) == lval_internalvar)
VALUE_LVAL (v) = lval_internalvar_component;
VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
+ VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
v->offset = offset + value_offset (array);
return v;
}
@@ -278,6 +279,7 @@ value_subscripted_rvalue (struct value *
VALUE_LVAL (v) = VALUE_LVAL (array);
VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
VALUE_REGNUM (v) = VALUE_REGNUM (array);
+ VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
v->offset = value_offset (array) + elt_offs;
return v;
}
Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.138
diff -u -p -r1.138 valops.c
--- valops.c 15 Nov 2004 22:17:59 -0000 1.138
+++ valops.c 21 Nov 2004 19:40:06 -0000
@@ -1307,6 +1307,7 @@ search_struct_field (char *name, struct
{
VALUE_LVAL (v2) = VALUE_LVAL (arg1);
VALUE_ADDRESS (v2) = VALUE_ADDRESS (arg1);
+ VALUE_FRAME_ID (v2) = VALUE_FRAME_ID (arg1);
v2->offset = value_offset (arg1) + boffset;
if (VALUE_LAZY (arg1))
VALUE_LAZY (v2) = 1;
@@ -2768,6 +2769,7 @@ value_slice (struct value *array, int lo
else
VALUE_LVAL (slice) = VALUE_LVAL (array);
VALUE_ADDRESS (slice) = VALUE_ADDRESS (array);
+ VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array);
slice->offset = value_offset (array) + offset;
}
return slice;
More information about the Gdb-patches
mailing list