2007-07-03 Paul Gilliam <pgilliam@us.ibm.com>
[deliverable/binutils-gdb.git] / gdb / value.h
index 2347dad80fddbc73862d4e82a63176ac93924b7f..5c0a2aba23d12b9c7b77e5f94ca40120852e7400 100644 (file)
@@ -1,7 +1,7 @@
 /* Definitions for values of C expressions, for GDB.
 
-   Copyright 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-   1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+   Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
+   1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -18,8 +18,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #if !defined (VALUE_H)
 #define VALUE_H 1
@@ -193,6 +193,12 @@ extern int value_contents_equal (struct value *val1, struct value *val2);
 extern int value_optimized_out (struct value *value);
 extern void set_value_optimized_out (struct value *value, int val);
 
+/* Set or return field indicating whether a variable is initialized or
+   not, based on debugging information supplied by the compiler. 
+   1 = initialized; 0 = uninitialized.  */
+extern int value_initialized (struct value *);
+extern void set_value_initialized (struct value *, int);
+
 /* While the following fields are per- VALUE .CONTENT .PIECE (i.e., a
    single value might have multiple LVALs), this hacked interface is
    limited to just the first PIECE.  Expect further change.  */
@@ -245,6 +251,7 @@ struct internalvar
   struct internalvar *next;
   char *name;
   struct value *value;
+  int endian;
 };
 
 \f
@@ -270,6 +277,8 @@ extern LONGEST unpack_field_as_long (struct type *type,
                                     const gdb_byte *valaddr,
                                     int fieldno);
 
+extern void pack_long (gdb_byte *buf, struct type *type, LONGEST num);
+
 extern struct value *value_from_longest (struct type *type, LONGEST num);
 extern struct value *value_from_pointer (struct type *type, CORE_ADDR addr);
 extern struct value *value_from_double (struct type *type, DOUBLEST num);
@@ -278,9 +287,16 @@ extern struct value *value_from_string (char *string);
 extern struct value *value_at (struct type *type, CORE_ADDR addr);
 extern struct value *value_at_lazy (struct type *type, CORE_ADDR addr);
 
+extern struct value *default_value_from_register (struct type *type,
+                                                 int regnum,
+                                                 struct frame_info *frame);
+
 extern struct value *value_from_register (struct type *type, int regnum,
                                          struct frame_info *frame);
 
+extern CORE_ADDR address_from_register (struct type *type, int regnum,
+                                       struct frame_info *frame);
+
 extern struct value *value_of_variable (struct symbol *var, struct block *b);
 
 extern struct value *value_of_register (int regnum, struct frame_info *frame);
@@ -324,6 +340,8 @@ extern struct value *value_ind (struct value *arg1);
 
 extern struct value *value_addr (struct value *arg1);
 
+extern struct value *value_ref (struct value *arg1);
+
 extern struct value *value_assign (struct value *toval,
                                   struct value *fromval);
 
@@ -339,7 +357,9 @@ extern struct value *value_struct_elt (struct value **argp,
                                       char *err);
 
 extern struct value *value_aggregate_elt (struct type *curtype,
-                                         char *name, enum noside noside);
+                                         char *name,
+                                         int want_address,
+                                         enum noside noside);
 
 extern struct value *value_static_field (struct type *type, int fieldno);
 
@@ -366,6 +386,8 @@ extern struct type *value_rtti_target_type (struct value *, int *, int *,
 extern struct value *value_full_object (struct value *, struct type *, int,
                                        int, int);
 
+extern struct value *value_cast_pointers (struct type *, struct value *);
+
 extern struct value *value_cast (struct type *type, struct value *arg2);
 
 extern struct value *value_zero (struct type *type, enum lval_type lv);
@@ -495,16 +517,14 @@ extern void print_variable_value (struct symbol *var,
                                  struct frame_info *frame,
                                  struct ui_file *stream);
 
-extern int check_field (struct value *, const gdb_byte *);
+extern int check_field (struct value *, const char *);
 
 extern void typedef_print (struct type *type, struct symbol *news,
                           struct ui_file *stream);
 
 extern char *internalvar_name (struct internalvar *var);
 
-extern void clear_value_history (void);
-
-extern void clear_internalvars (void);
+extern void preserve_values (struct objfile *);
 
 /* From values.c */
 
This page took 0.028833 seconds and 4 git commands to generate.