diff options
author | Tom Tromey <tom@tromey.com> | 2019-03-31 17:20:24 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-04-04 19:55:11 -0600 |
commit | 699bd4cfa8895d0767d491a3e44ac09d3f4d1801 (patch) | |
tree | 6f0f6dea3ef2cd37f4e0b9173d38431b27df17fd /gdb/varobj.c | |
parent | dac43e327d002107f6bc9481749de039f410df73 (diff) | |
download | gdb-699bd4cfa8895d0767d491a3e44ac09d3f4d1801.zip gdb-699bd4cfa8895d0767d491a3e44ac09d3f4d1801.tar.gz gdb-699bd4cfa8895d0767d491a3e44ac09d3f4d1801.tar.bz2 |
Move innermost_block_tracker global to parse_state
This changes the parsing API so that callers that are interested in
tracking the innermost block must instantiate an
innermost_block_tracker and pass it in. Then, a pointer to this
object is stored in the parser_state.
2019-04-04 Tom Tromey <tom@tromey.com>
* varobj.c (varobj_create): Update.
* rust-exp.y (struct rust_parser) <update_innermost_block,
lookup_symbol>: New methods.
(rust_parser::update_innermost_block, rust_parser::lookup_symbol):
Rename.
(rust_parser::rust_lookup_type)
(rust_parser::convert_ast_to_expression, rust_lex_tests): Update.
* printcmd.c (display_command, do_one_display): Update.
* parser-defs.h (struct parser_state) <parser_state>: Add
"tracker" parameter.
(block_tracker): New member.
(class innermost_block_tracker) <innermost_block_tracker>: Add
"types" parameter.
<reset>: Remove method.
(innermost_block): Don't declare.
(null_post_parser): Update.
* parse.c (innermost_block): Remove global.
(write_dollar_variable): Update.
(parse_exp_1, parse_exp_in_context): Add "tracker" parameter.
Remove "tracker_types" parameter.
(parse_expression): Add "tracker" parameter.
(parse_expression_for_completion): Update.
(null_post_parser): Add "tracker" parameter.
* p-exp.y: Update rules.
* m2-exp.y: Update rules.
* language.h (struct language_defn) <la_post_parser>: Add
"tracker" parameter.
* go-exp.y: Update rules.
* f-exp.y: Update rules.
* expression.h (parse_expression, parse_exp_1): Add "tracker"
parameter.
* d-exp.y: Update rules.
* c-exp.y: Update rules.
* breakpoint.c (set_breakpoint_condition): Create an
innermost_block_tracker.
(watch_command_1): Likewise.
* ada-lang.c (resolve): Add "tracker" parameter.
(resolve_subexp): Likewise.
* ada-exp.y (write_var_from_sym): Update.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r-- | gdb/varobj.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c index b2975be..abace99 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -309,13 +309,14 @@ varobj_create (const char *objname, } p = expression; + + innermost_block_tracker tracker (INNERMOST_BLOCK_FOR_SYMBOLS + | INNERMOST_BLOCK_FOR_REGISTERS); /* Wrap the call to parse expression, so we can return a sensible error. */ TRY { - var->root->exp = parse_exp_1 (&p, pc, block, 0, - INNERMOST_BLOCK_FOR_SYMBOLS - | INNERMOST_BLOCK_FOR_REGISTERS); + var->root->exp = parse_exp_1 (&p, pc, block, 0, &tracker); } CATCH (except, RETURN_MASK_ERROR) @@ -336,7 +337,7 @@ varobj_create (const char *objname, var->format = variable_default_display (var.get ()); var->root->valid_block = - var->root->floating ? NULL : innermost_block.block (); + var->root->floating ? NULL : tracker.block (); var->name = expression; /* For a root var, the name and the expr are the same. */ var->path_expr = expression; |