diff options
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/stap-probe.c | 21 |
2 files changed, 20 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3389167..c89b703 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com> + * stap-probe.c (stap_parse_register_operand): Make "if (*p->arg == + '-')" and "else if". + (stap_parse_single_operand): Join checks for + "gdbarch_stap_parse_special_token_p" and + "gdbarch_stap_parse_special_token" in the same "if" statement. + Invert check when verifying for operation on register + displacement. + +2019-05-16 Sergio Durigan Junior <sergiodj@redhat.com> + * stap-probe.c (stap_get_opcode): Update comment. (stap_get_expected_argument_type): Likewise. (handle_stap_probe): Likewise. diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c index bc2f9fc..db92315 100644 --- a/gdb/stap-probe.c +++ b/gdb/stap-probe.c @@ -705,8 +705,7 @@ stap_parse_register_operand (struct stap_parse_info *p) pointer. */ ++p->arg; } - - if (*p->arg == '-') + else if (*p->arg == '-') { got_minus = true; ++p->arg; @@ -842,15 +841,15 @@ stap_parse_single_operand (struct stap_parse_info *p) const char *int_prefix = NULL; /* We first try to parse this token as a "special token". */ - if (gdbarch_stap_parse_special_token_p (gdbarch)) - if (gdbarch_stap_parse_special_token (gdbarch, p) != 0) - { - /* If the return value of the above function is not zero, - it means it successfully parsed the special token. + if (gdbarch_stap_parse_special_token_p (gdbarch) + && (gdbarch_stap_parse_special_token (gdbarch, p) != 0)) + { + /* If the return value of the above function is not zero, + it means it successfully parsed the special token. - If it is NULL, we try to parse it using our method. */ - return; - } + If it is NULL, we try to parse it using our method. */ + return; + } if (*p->arg == '-' || *p->arg == '~' || *p->arg == '+') { @@ -890,7 +889,7 @@ stap_parse_single_operand (struct stap_parse_info *p) { /* If we are here, it means it is a displacement. The only operations allowed here are `-' and `+'. */ - if (c == '~') + if (c != '-' && c != '+') error (_("Invalid operator `%c' for register displacement " "on expression `%s'."), c, p->saved_arg); |