diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/ada-lang.c | 14 | ||||
-rw-r--r-- | gdb/eval.c | 5 | ||||
-rw-r--r-- | gdb/objc-lang.c | 4 | ||||
-rw-r--r-- | gdb/value.h | 4 |
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); |