aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.h
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-11-10 18:52:25 +0000
committerAndrew Cagney <cagney@redhat.com>2004-11-10 18:52:25 +0000
commit994b921186a7275b71c4462dbbb8895072fcbc64 (patch)
treed744788e3d80537d7c7cdd49d13e542ca7a3c146 /gdb/value.h
parent06987e6431adee88dcffb552d01162668efbf9f4 (diff)
downloadgdb-994b921186a7275b71c4462dbbb8895072fcbc64.zip
gdb-994b921186a7275b71c4462dbbb8895072fcbc64.tar.gz
gdb-994b921186a7275b71c4462dbbb8895072fcbc64.tar.bz2
2004-11-10 Andrew Cagney <cagney@gnu.org>
* value.h (COERCE_REF, COERCE_ARRAY, COERCE_NUMBER, COERCE_ENUM) (coerce_ref, coerce_array, coerce_number, coerce_enum): Replace macros with function declarations. * value.c (coerce_ref, coerce_array, coerce_number) (coerce_enum): New functions. (value_as_long, value_as_address): Update. * ada-lang.c (ada_coerce_ref, ada_value_binop) (ada_evaluate_subexp, ada_value_assign, ada_value_struct_elt): Update. * jv-lang.c (evaluate_subexp_java): Update. * valarith.c (value_less, value_neg, value_complement) (value_binop, value_add, value_subscript, value_x_binop) (value_logical_not, value_sub): Update. * valops.c (check_field, value_struct_elt, value_ind) (value_find_oload_method_list, value_cast, value_assign): Update. * eval.c (evaluate_subexp_standard): Update.
Diffstat (limited to 'gdb/value.h')
-rw-r--r--gdb/value.h29
1 files changed, 4 insertions, 25 deletions
diff --git a/gdb/value.h b/gdb/value.h
index 3a44e68..7e8e32c 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -226,14 +226,7 @@ extern int value_fetch_lazy (struct value *val);
/* Convert a REF to the object referenced. */
-#define COERCE_REF(arg) \
- do { \
- struct type *value_type_arg_tmp = check_typedef (VALUE_TYPE (arg)); \
- if (TYPE_CODE (value_type_arg_tmp) == TYPE_CODE_REF) \
- arg = value_at_lazy (TYPE_TARGET_TYPE (value_type_arg_tmp), \
- unpack_pointer (VALUE_TYPE (arg), \
- VALUE_CONTENTS (arg))); \
- } while (0)
+extern struct value *coerce_ref (struct value *value);
/* If ARG is an array, convert it to a pointer.
If ARG is an enum, convert it to an integer.
@@ -241,26 +234,12 @@ extern int value_fetch_lazy (struct value *val);
References are dereferenced. */
-#define COERCE_ARRAY(arg) \
- do { \
- COERCE_REF(arg); \
- if (current_language->c_style_arrays \
- && TYPE_CODE (VALUE_TYPE (arg)) == TYPE_CODE_ARRAY) \
- arg = value_coerce_array (arg); \
- if (TYPE_CODE (VALUE_TYPE (arg)) == TYPE_CODE_FUNC) \
- arg = value_coerce_function (arg); \
- } while (0)
-
-#define COERCE_NUMBER(arg) \
- do { COERCE_ARRAY(arg); COERCE_ENUM(arg); } while (0)
+extern struct value *coerce_array (struct value *value);
+extern struct value *coerce_number (struct value *value);
/* If ARG is an enum, convert it to an integer. */
-#define COERCE_ENUM(arg) \
- do { \
- if (TYPE_CODE (check_typedef (VALUE_TYPE (arg))) == TYPE_CODE_ENUM) \
- arg = value_cast (builtin_type_unsigned_int, arg); \
- } while (0)
+extern struct value *coerce_enum (struct value *value);
/* Internal variables (variables for convenience of use of debugger)
are recorded as a chain of these structures. */