Remove some "goto"s from parse.c
parser_state::push_dollar has some unnecessary "goto"s. Replacing them cleans up the code. Regression tested on x86-64 Fedora 36. Approved-By: Simon Marchi <simon.marchi@efficios.com>
This commit is contained in:
parent
8f5cd47bee
commit
fc53c8e021
1 changed files with 12 additions and 14 deletions
26
gdb/parse.c
26
gdb/parse.c
|
@ -268,7 +268,8 @@ parser_state::push_dollar (struct stoken str)
|
|||
{
|
||||
/* Just dollars (one or two). */
|
||||
i = -negate;
|
||||
goto handle_last;
|
||||
push_new<expr::last_operation> (i);
|
||||
return;
|
||||
}
|
||||
/* Is the rest of the token digits? */
|
||||
for (; i < str.length; i++)
|
||||
|
@ -279,7 +280,8 @@ parser_state::push_dollar (struct stoken str)
|
|||
i = atoi (str.ptr + 1 + negate);
|
||||
if (negate)
|
||||
i = -i;
|
||||
goto handle_last;
|
||||
push_new<expr::last_operation> (i);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Handle tokens that refer to machine registers:
|
||||
|
@ -287,7 +289,14 @@ parser_state::push_dollar (struct stoken str)
|
|||
i = user_reg_map_name_to_regnum (gdbarch (),
|
||||
str.ptr + 1, str.length - 1);
|
||||
if (i >= 0)
|
||||
goto handle_register;
|
||||
{
|
||||
str.length--;
|
||||
str.ptr++;
|
||||
push_new<expr::register_operation> (copy_name (str));
|
||||
block_tracker->update (expression_context_block,
|
||||
INNERMOST_BLOCK_FOR_REGISTERS);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Any names starting with $ are probably debugger internal variables. */
|
||||
|
||||
|
@ -319,17 +328,6 @@ parser_state::push_dollar (struct stoken str)
|
|||
|
||||
push_new<expr::internalvar_operation>
|
||||
(create_internalvar (copy.c_str () + 1));
|
||||
return;
|
||||
handle_last:
|
||||
push_new<expr::last_operation> (i);
|
||||
return;
|
||||
handle_register:
|
||||
str.length--;
|
||||
str.ptr++;
|
||||
push_new<expr::register_operation> (copy_name (str));
|
||||
block_tracker->update (expression_context_block,
|
||||
INNERMOST_BLOCK_FOR_REGISTERS);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue