summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/ada-lang.c14
-rw-r--r--gdb/eval.c5
-rw-r--r--gdb/objc-lang.c4
-rw-r--r--gdb/value.h4
5 files changed, 16 insertions, 19 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9b191949667..400e767a949 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2009-06-23 Joel Brobecker <brobecker@adacore.com>
+
+ * ada-lang.c (evaluate_subexp): Delete. Use the version from eval.c.
+ (evaluate_subexp_type): Reimplement using evaluate_subexp.
+ * value.h (evaluate_subexp): Add declaration.
+ * eval.c (evaluate_subexp): Make non-static.
+ * objc-lang.c (print_object_command): Use evaluate_subexp.
+
2009-06-23 Paul Pluzhnikov <ppluzhnikov@google.com>
Revert 2009-05-14 breakpoint commit (no longer needed).
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 02c7821593f..a1fa364527e 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -157,9 +157,6 @@ static struct symbol *find_old_style_renaming_symbol (const char *,
static struct type *ada_lookup_struct_elt_type (struct type *, char *,
int, int, int *);
-static struct value *evaluate_subexp (struct type *, struct expression *,
- int *, enum noside);
-
static struct value *evaluate_subexp_type (struct expression *, int *);
static int is_dynamic_field (struct type *, int);
@@ -7730,14 +7727,6 @@ ada_enum_name (const char *name)
}
}
-static struct value *
-evaluate_subexp (struct type *expect_type, struct expression *exp, int *pos,
- enum noside noside)
-{
- return (*exp->language_defn->la_exp_desc->evaluate_exp)
- (expect_type, exp, pos, noside);
-}
-
/* Evaluate the subexpression of EXP starting at *POS as for
evaluate_type, updating *POS to point just past the evaluated
expression. */
@@ -7745,8 +7734,7 @@ evaluate_subexp (struct type *expect_type, struct expression *exp, int *pos,
static struct value *
evaluate_subexp_type (struct expression *exp, int *pos)
{
- return (*exp->language_defn->la_exp_desc->evaluate_exp)
- (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
+ return evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS);
}
/* If VAL is wrapped in an aligner or subtype wrapper, return the
diff --git a/gdb/eval.c b/gdb/eval.c
index df730057d80..c7698729861 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -56,9 +56,6 @@ static struct value *evaluate_subexp_for_sizeof (struct expression *, int *);
static struct value *evaluate_subexp_for_address (struct expression *,
int *, enum noside);
-static struct value *evaluate_subexp (struct type *, struct expression *,
- int *, enum noside);
-
static char *get_label (struct expression *, int *);
static struct value *evaluate_struct_tuple (struct value *,
@@ -69,7 +66,7 @@ static LONGEST init_array_element (struct value *, struct value *,
struct expression *, int *, enum noside,
LONGEST, LONGEST);
-static struct value *
+struct value *
evaluate_subexp (struct type *expect_type, struct expression *exp,
int *pos, enum noside noside)
{
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index cff54bbaffd..a67ba37047b 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -1421,8 +1421,8 @@ print_object_command (char *args, int from_tty)
make_cleanup (free_current_contents, &expr);
int pc = 0;
- object = expr->language_defn->la_exp_desc->evaluate_exp
- (builtin_type (expr->gdbarch)->builtin_data_ptr, expr, &pc, EVAL_NORMAL);
+ object = evaluate_subexp (builtin_type (expr->gdbarch)->builtin_data_ptr,
+ expr, &pc, EVAL_NORMAL);
do_cleanups (old_chain);
}
diff --git a/gdb/value.h b/gdb/value.h
index db4dcc1dd43..c31cce5a7e6 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -490,6 +490,10 @@ extern struct value *evaluate_expression (struct expression *exp);
extern struct value *evaluate_type (struct expression *exp);
+extern struct value *evaluate_subexp (struct type *expect_type,
+ struct expression *exp,
+ int *pos, enum noside noside);
+
extern struct value *evaluate_subexpression_type (struct expression *exp,
int subexp);