2004-06-07 Randolph Chung <tausq@debian.org>
[deliverable/binutils-gdb.git] / gdb / value.h
index 254c82f1cb2fd8d9faae7d8d08d22391b4c8a7b6..690edb96e89add5ba903b2beb47d2ef93813a6e5 100644 (file)
@@ -25,6 +25,7 @@
 #define VALUE_H 1
 
 #include "doublest.h"
+#include "frame.h"             /* For struct frame_id.  */
 
 struct block;
 struct expression;
@@ -77,12 +78,12 @@ struct value
      For BITS_BIG_ENDIAN=1 targets, it is the position of the MSB. */
     int bitpos;
 
-  /* Frame value is relative to.  In practice, this address is only
-     used if the value is stored in several registers in other than
-     the current frame, and these registers have not all been saved
-     at the same place in memory.  This will be described in the
-     lval enum above as "lval_reg_frame_relative".  */
-  CORE_ADDR frame_addr;
+  /* Frame value is relative to.  In practice, this ID is only used if
+     the value is stored in several registers in other than the
+     current frame, and these registers have not all been saved at the
+     same place in memory.  This will be described in the lval enum
+     above as "lval_reg_frame_relative".  */
+  struct frame_id frame_id;
 
   /* Type of the value.  */
   struct type *type;
@@ -216,7 +217,7 @@ extern int value_fetch_lazy (struct value *val);
 #define VALUE_ADDRESS(val) (val)->location.address
 #define VALUE_INTERNALVAR(val) (val)->location.internalvar
 #define VALUE_FRAME_REGNUM(val) ((val)->location.regnum)
-#define VALUE_FRAME(val) ((val)->frame_addr)
+#define VALUE_FRAME_ID(val) ((val)->frame_id)
 #define VALUE_OFFSET(val) (val)->offset
 #define VALUE_BITSIZE(val) (val)->bitsize
 #define VALUE_BITPOS(val) (val)->bitpos
@@ -378,11 +379,9 @@ extern struct value *value_struct_elt (struct value **argp,
                                       char *name, int *static_memfuncp,
                                       char *err);
 
-extern struct value *value_struct_elt_for_reference (struct type *domain,
-                                                    int offset,
-                                                    struct type *curtype,
-                                                    char *name,
-                                                    struct type *intype);
+extern struct value *value_aggregate_elt (struct type *curtype,
+                                         char *name,
+                                         enum noside noside);
 
 extern struct value *value_static_field (struct type *type, int fieldno);
 
@@ -417,18 +416,14 @@ extern struct value *value_repeat (struct value *arg1, int count);
 
 extern struct value *value_subscript (struct value *array, struct value *idx);
 
-extern struct value *value_being_returned (struct type *valtype,
-                                          struct regcache *retbuf,
-                                          int struct_return);
+extern struct value *register_value_being_returned (struct type *valtype,
+                                                   struct regcache *retbuf);
 
 extern struct value *value_in (struct value *element, struct value *set);
 
 extern int value_bit_index (struct type *type, char *addr, int index);
 
-extern int using_struct_return (struct value *function, CORE_ADDR funcaddr,
-                               struct type *value_type, int gcc_p);
-
-extern void set_return_value (struct value *val);
+extern int using_struct_return (struct type *value_type, int gcc_p);
 
 extern struct value *evaluate_expression (struct expression *exp);
 
This page took 0.027629 seconds and 4 git commands to generate.