aboutsummaryrefslogtreecommitdiff
path: root/gdb/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/parse.c')
-rw-r--r--gdb/parse.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/gdb/parse.c b/gdb/parse.c
index 661574e..c76e0d5 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -116,10 +116,8 @@ static int prefixify_subexp (struct expression *, struct expression *, int,
static expression_up parse_exp_in_context (const char **, CORE_ADDR,
const struct block *, int,
- int, int *);
-static expression_up parse_exp_in_context_1 (const char **, CORE_ADDR,
- const struct block *, int,
- int, int *);
+ int, int *,
+ innermost_block_tracker_types);
/* Documented at it's declaration. */
@@ -1095,18 +1093,10 @@ prefixify_subexp (struct expression *inexpr,
expression_up
parse_exp_1 (const char **stringptr, CORE_ADDR pc, const struct block *block,
- int comma)
+ int comma, innermost_block_tracker_types tracker_types)
{
- return parse_exp_in_context (stringptr, pc, block, comma, 0, NULL);
-}
-
-static expression_up
-parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
- const struct block *block,
- int comma, int void_context_p, int *out_subexp)
-{
- return parse_exp_in_context_1 (stringptr, pc, block, comma,
- void_context_p, out_subexp);
+ return parse_exp_in_context (stringptr, pc, block, comma, 0, NULL,
+ tracker_types);
}
/* As for parse_exp_1, except that if VOID_CONTEXT_P, then
@@ -1117,9 +1107,10 @@ parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
is left untouched. */
static expression_up
-parse_exp_in_context_1 (const char **stringptr, CORE_ADDR pc,
- const struct block *block,
- int comma, int void_context_p, int *out_subexp)
+parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
+ const struct block *block,
+ int comma, int void_context_p, int *out_subexp,
+ innermost_block_tracker_types tracker_types)
{
const struct language_defn *lang = NULL;
int subexp;
@@ -1132,6 +1123,7 @@ parse_exp_in_context_1 (const char **stringptr, CORE_ADDR pc,
expout_last_struct = -1;
expout_tag_completion_type = TYPE_CODE_UNDEF;
expout_completion_name.reset ();
+ innermost_block.reset (tracker_types);
comma_terminates = comma;
@@ -1286,7 +1278,8 @@ parse_expression_for_completion (const char *string,
TRY
{
parse_completion = 1;
- exp = parse_exp_in_context (&string, 0, 0, 0, 0, &subexp);
+ exp = parse_exp_in_context (&string, 0, 0, 0, 0, &subexp,
+ INNERMOST_BLOCK_FOR_SYMBOLS);
}
CATCH (except, RETURN_MASK_ERROR)
{