DWARF: handle non-local references in nested functions
[deliverable/binutils-gdb.git] / gdb / value.h
index 4cdbf210788edaef75cf663122874d1388854021..0a4bc473f4cf6fe66b52b32da3244f559d146d40 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions for values of C expressions, for GDB.
 
-   Copyright (C) 1986-2014 Free Software Foundation, Inc.
+   Copyright (C) 1986-2015 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -99,6 +99,10 @@ struct value *value_next (struct value *);
 
 extern struct type *value_type (const struct value *);
 
+/* Return the gdbarch associated with the value. */
+
+extern struct gdbarch *get_value_arch (const struct value *value);
+
 /* This is being used to change the type of an existing value, that
    code should instead be creating a new value with the changed type
    (but possibly shared content).  */
@@ -361,7 +365,7 @@ extern const gdb_byte *value_contents_for_printing (struct value *value);
 extern const gdb_byte *
   value_contents_for_printing_const (const struct value *value);
 
-extern int value_fetch_lazy (struct value *val);
+extern void value_fetch_lazy (struct value *val);
 
 /* If nonzero, this is the value of a variable which does not actually
    exist in the program, at least partially.  If the value is lazy,
@@ -567,8 +571,8 @@ extern int value_contents_eq (const struct value *val1, int offset1,
                              const struct value *val2, int offset2,
                              int length);
 
-/* Read LENGTH bytes of memory starting at MEMADDR into BUFFER, which
-   is (or will be copied to) VAL's contents buffer offset by
+/* Read LENGTH addressable memory units starting at MEMADDR into BUFFER,
+   which is (or will be copied to) VAL's contents buffer offset by
    EMBEDDED_OFFSET (that is, to &VAL->contents[EMBEDDED_OFFSET]).
    Marks value contents ranges as unavailable if the corresponding
    memory is likewise unavailable.  STACK indicates whether the memory
@@ -613,6 +617,11 @@ extern int unpack_value_field_as_long (struct type *type, const gdb_byte *valadd
                                int embedded_offset, int fieldno,
                                const struct value *val, LONGEST *result);
 
+extern void unpack_value_bitfield (struct value *dest_val,
+                                  int bitpos, int bitsize,
+                                  const gdb_byte *valaddr, int embedded_offset,
+                                  const struct value *val);
+
 extern struct value *value_field_bitfield (struct type *type, int fieldno,
                                           const gdb_byte *valaddr,
                                           int embedded_offset,
@@ -665,9 +674,11 @@ struct value *value_of_register_lazy (struct frame_info *frame, int regnum);
 extern int symbol_read_needs_frame (struct symbol *);
 
 extern struct value *read_var_value (struct symbol *var,
+                                    const struct block *var_block,
                                     struct frame_info *frame);
 
 extern struct value *default_read_var_value (struct symbol *var,
+                                            const struct block *var_block,
                                             struct frame_info *frame);
 
 extern struct value *allocate_value (struct type *type);
@@ -1033,6 +1044,10 @@ extern struct value *value_copy (struct value *);
 
 extern struct value *value_non_lval (struct value *);
 
+extern void value_force_lval (struct value *, CORE_ADDR);
+
+extern struct value *make_cv_value (int, int, struct value *);
+
 extern void preserve_one_value (struct value *, struct objfile *, htab_t);
 
 /* From valops.c */
@@ -1073,7 +1088,10 @@ char *value_internal_function_name (struct value *);
 
 extern struct value *value_of_xmethod (struct xmethod_worker *);
 
-struct value *call_xmethod (struct value *function,
-                           int argc, struct value **argv);
+extern struct type *result_type_of_xmethod (struct value *method,
+                                           int argc, struct value **argv);
+
+extern struct value *call_xmethod (struct value *method,
+                                  int argc, struct value **argv);
 
 #endif /* !defined (VALUE_H) */
This page took 0.025095 seconds and 4 git commands to generate.