diff options
author | Tom Tromey <tom@tromey.com> | 2021-03-08 07:27:57 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2021-03-08 07:28:14 -0700 |
commit | d5ab122c48fec1eb617598c02c6efdf9ba1ee23f (patch) | |
tree | 0dd3301e5acbc2e0fe2b8c27d9d7306aba9234b6 /gdb/ax-gdb.c | |
parent | cae26a0cb05be806ae97d4fabc1cb8e6773a1512 (diff) | |
download | binutils-d5ab122c48fec1eb617598c02c6efdf9ba1ee23f.zip binutils-d5ab122c48fec1eb617598c02c6efdf9ba1ee23f.tar.gz binutils-d5ab122c48fec1eb617598c02c6efdf9ba1ee23f.tar.bz2 |
Introduce scope_operation
This adds class scope_operation, an implementation of OP_SCOPE.
gdb/ChangeLog
2021-03-08 Tom Tromey <tom@tromey.com>
* expop.h (class scope_operation): New.
* eval.c (eval_op_scope): No longer static.
(scope_operation::evaluate_for_address): New method.
* ax-gdb.c (scope_operation::do_generate_ax): New method.
Diffstat (limited to 'gdb/ax-gdb.c')
-rw-r--r-- | gdb/ax-gdb.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c index 1c6a743..6d568a7 100644 --- a/gdb/ax-gdb.c +++ b/gdb/ax-gdb.c @@ -2301,6 +2301,19 @@ operation::generate_ax (struct expression *exp, } } +void +scope_operation::do_generate_ax (struct expression *exp, + struct agent_expr *ax, + struct axs_value *value, + struct type *cast_type) +{ + struct type *type = std::get<0> (m_storage); + const std::string &name = std::get<1> (m_storage); + int found = gen_aggregate_elt_ref (ax, value, type, name.c_str ()); + if (!found) + error (_("There is no field named %s"), name.c_str ()); +} + } /* This handles the middle-to-right-side of code generation for binary |