summaryrefslogtreecommitdiff
path: root/gdb/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/eval.c')
-rw-r--r--gdb/eval.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/gdb/eval.c b/gdb/eval.c
index 9510eee962..5af728a9bb 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -1005,14 +1005,15 @@ eval_op_var_entry_value (struct type *expect_type, struct expression *exp,
struct value *
eval_op_var_msym_value (struct type *expect_type, struct expression *exp,
enum noside noside, bool outermost_p,
- minimal_symbol *msymbol, struct objfile *objfile)
+ bound_minimal_symbol msymbol)
{
- value *val = evaluate_var_msym_value (noside, objfile, msymbol);
+ value *val = evaluate_var_msym_value (noside, msymbol.objfile,
+ msymbol.minsym);
struct type *type = value_type (val);
if (type->code () == TYPE_CODE_ERROR
&& (noside != EVAL_AVOID_SIDE_EFFECTS || !outermost_p))
- error_unknown_type (msymbol->print_name ());
+ error_unknown_type (msymbol.minsym->print_name ());
return val;
}
@@ -2529,9 +2530,8 @@ value *
var_msym_value_operation::evaluate_for_address (struct expression *exp,
enum noside noside)
{
- value *val = evaluate_var_msym_value (noside,
- std::get<1> (m_storage),
- std::get<0> (m_storage));
+ const bound_minimal_symbol &b = std::get<0> (m_storage);
+ value *val = evaluate_var_msym_value (noside, b.objfile, b.minsym);
if (noside == EVAL_AVOID_SIDE_EFFECTS)
{
struct type *type = lookup_pointer_type (value_type (val));
@@ -2637,14 +2637,12 @@ var_msym_value_operation::evaluate_for_sizeof (struct expression *exp,
enum noside noside)
{
- minimal_symbol *msymbol = std::get<0> (m_storage);
- value *mval = evaluate_var_msym_value (noside,
- std::get<1> (m_storage),
- msymbol);
+ const bound_minimal_symbol &b = std::get<0> (m_storage);
+ value *mval = evaluate_var_msym_value (noside, b.objfile, b.minsym);
struct type *type = value_type (mval);
if (type->code () == TYPE_CODE_ERROR)
- error_unknown_type (msymbol->print_name ());
+ error_unknown_type (b.minsym->print_name ());
/* FIXME: This should be size_t. */
struct type *size_type = builtin_type (exp->gdbarch)->builtin_int;
@@ -2750,9 +2748,8 @@ var_msym_value_operation::evaluate_for_cast (struct type *to_type,
if (noside == EVAL_AVOID_SIDE_EFFECTS)
return value_zero (to_type, not_lval);
- value *val = evaluate_var_msym_value (noside,
- std::get<1> (m_storage),
- std::get<0> (m_storage));
+ const bound_minimal_symbol &b = std::get<0> (m_storage);
+ value *val = evaluate_var_msym_value (noside, b.objfile, b.minsym);
val = value_cast (to_type, val);