2005-02-06 Andrew Cagney <cagney@gnu.org>
* value.h (VALUE_OPTIMIZED_OUT): Delete. (value_optimized_out, set_value_optimized_out): Declare. * value.c (set_value_optimized_out, value_optimized_out): Define. * valprint.c, findvar.c, dwarf2loc.c: Update.
This commit is contained in:
parent
a779d8fa13
commit
feb13ab03f
6 changed files with 28 additions and 9 deletions
|
@ -1,5 +1,10 @@
|
|||
2005-02-06 Andrew Cagney <cagney@gnu.org>
|
||||
|
||||
* value.h (VALUE_OPTIMIZED_OUT): Delete.
|
||||
(value_optimized_out, set_value_optimized_out): Declare.
|
||||
* value.c (set_value_optimized_out, value_optimized_out): Define.
|
||||
* valprint.c, findvar.c, dwarf2loc.c: Update.
|
||||
|
||||
* value.c (value_contents, value_contents_writeable): New
|
||||
functions.
|
||||
* value.h (VALUE_CONTENTS): Delete macro.
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
/* DWARF 2 location expression support for GDB.
|
||||
Copyright 2003 Free Software Foundation, Inc.
|
||||
|
||||
Copyright 2003, 2005 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by Daniel Jacobowitz, MontaVista Software, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
@ -214,7 +216,7 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
|
|||
{
|
||||
retval = allocate_value (SYMBOL_TYPE (var));
|
||||
VALUE_LVAL (retval) = not_lval;
|
||||
VALUE_OPTIMIZED_OUT (retval) = 1;
|
||||
set_value_optimized_out (retval, 1);
|
||||
}
|
||||
|
||||
baton.frame = frame;
|
||||
|
|
|
@ -287,7 +287,7 @@ value_of_register (int regnum, struct frame_info *frame)
|
|||
VALUE_LVAL (reg_val) = lval;
|
||||
VALUE_ADDRESS (reg_val) = addr;
|
||||
VALUE_REGNUM (reg_val) = regnum;
|
||||
VALUE_OPTIMIZED_OUT (reg_val) = optim;
|
||||
set_value_optimized_out (reg_val, optim);
|
||||
VALUE_FRAME_ID (reg_val) = get_frame_id (frame);
|
||||
return reg_val;
|
||||
}
|
||||
|
@ -576,7 +576,7 @@ addresses have not been bound by the dynamic loader. Try again when executable i
|
|||
|
||||
case LOC_OPTIMIZED_OUT:
|
||||
VALUE_LVAL (v) = not_lval;
|
||||
VALUE_OPTIMIZED_OUT (v) = 1;
|
||||
set_value_optimized_out (v, 1);
|
||||
return v;
|
||||
|
||||
default:
|
||||
|
@ -701,7 +701,7 @@ value_from_register (struct type *type, int regnum, struct frame_info *frame)
|
|||
VALUE_REGNUM (v) = regnum;
|
||||
}
|
||||
|
||||
VALUE_OPTIMIZED_OUT (v) = optimized;
|
||||
set_value_optimized_out (v, optimized);
|
||||
|
||||
/* Any structure stored in more than one register will always be
|
||||
an integral number of registers. Otherwise, you need to do
|
||||
|
|
|
@ -164,7 +164,7 @@ value_print (struct value *val, struct ui_file *stream, int format,
|
|||
printf_filtered ("<address of value unknown>");
|
||||
return 0;
|
||||
}
|
||||
if (VALUE_OPTIMIZED_OUT (val))
|
||||
if (value_optimized_out (val))
|
||||
{
|
||||
printf_filtered ("<value optimized out>");
|
||||
return 0;
|
||||
|
|
15
gdb/value.c
15
gdb/value.c
|
@ -96,7 +96,7 @@ allocate_value (struct type *type)
|
|||
val->bitsize = 0;
|
||||
VALUE_REGNUM (val) = -1;
|
||||
val->lazy = 0;
|
||||
VALUE_OPTIMIZED_OUT (val) = 0;
|
||||
val->optimized_out = 0;
|
||||
VALUE_EMBEDDED_OFFSET (val) = 0;
|
||||
VALUE_POINTED_TO_OFFSET (val) = 0;
|
||||
val->modifiable = 1;
|
||||
|
@ -193,6 +193,17 @@ value_contents_writeable (struct value *value)
|
|||
return value->aligner.contents;
|
||||
}
|
||||
|
||||
int
|
||||
value_optimized_out (struct value *value)
|
||||
{
|
||||
return value->optimized_out;
|
||||
}
|
||||
|
||||
void
|
||||
set_value_optimized_out (struct value *value, int val)
|
||||
{
|
||||
value->optimized_out = val;
|
||||
}
|
||||
|
||||
/* Return a mark in the value chain. All values allocated after the
|
||||
mark is obtained (except for those released) are subject to being freed
|
||||
|
@ -297,7 +308,7 @@ value_copy (struct value *arg)
|
|||
VALUE_FRAME_ID (val) = VALUE_FRAME_ID (arg);
|
||||
VALUE_REGNUM (val) = VALUE_REGNUM (arg);
|
||||
val->lazy = arg->lazy;
|
||||
VALUE_OPTIMIZED_OUT (val) = VALUE_OPTIMIZED_OUT (arg);
|
||||
val->optimized_out = arg->optimized_out;
|
||||
VALUE_EMBEDDED_OFFSET (val) = VALUE_EMBEDDED_OFFSET (arg);
|
||||
VALUE_POINTED_TO_OFFSET (val) = VALUE_POINTED_TO_OFFSET (arg);
|
||||
val->modifiable = arg->modifiable;
|
||||
|
|
|
@ -213,7 +213,8 @@ extern int value_fetch_lazy (struct value *val);
|
|||
#define VALUE_INTERNALVAR(val) (val)->location.internalvar
|
||||
#define VALUE_FRAME_ID(val) ((val)->frame_id)
|
||||
#define VALUE_REGNUM(val) (val)->regnum
|
||||
#define VALUE_OPTIMIZED_OUT(val) ((val)->optimized_out)
|
||||
extern int value_optimized_out (struct value *value);
|
||||
extern void set_value_optimized_out (struct value *value, int val);
|
||||
#define VALUE_EMBEDDED_OFFSET(val) ((val)->embedded_offset)
|
||||
#define VALUE_POINTED_TO_OFFSET(val) ((val)->pointed_to_offset)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue