public inbox for gdb-testers@sourceware.org help / color / mirror / Atom feed
From: gdb-buildbot@sergiodj.net To: gdb-testers@sourceware.org Subject: [binutils-gdb] gdb: Remove a non-const reference parameter Date: Wed, 17 Jul 2019 18:51:00 -0000 [thread overview] Message-ID: <6b78c3f83c8bcbfa714aab7627ece9673b2d602a@gdb-build> (raw) *** TEST RESULTS FOR COMMIT 6b78c3f83c8bcbfa714aab7627ece9673b2d602a *** commit 6b78c3f83c8bcbfa714aab7627ece9673b2d602a Author: Andrew Burgess <andrew.burgess@embecosm.com> AuthorDate: Tue Jul 2 12:06:06 2019 +0100 Commit: Andrew Burgess <andrew.burgess@embecosm.com> CommitDate: Wed Jul 17 16:24:32 2019 +0100 gdb: Remove a non-const reference parameter Non-const reference parameter should be avoided according to the GDB coding standard: https://sourceware.org/gdb/wiki/Internals%20GDB-C-Coding-Standards#Avoid_non-const_reference_parameters.2C_use_pointers_instead This commit updates the gdbarch method gdbarch_stap_adjust_register, and the one implementation i386_stap_adjust_register to avoid using a non-const reference parameter. I've also removed the kfail from the testsuite for bug 24541, as this issue is now resolved. gdb/ChangeLog: PR breakpoints/24541 * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * gdbarch.sh: Adjust return type and parameter types for 'stap_adjust_register'. (i386_stap_adjust_register): Adjust signature and return new register name. * stap-probe.c (stap_parse_register_operand): Adjust use of 'gdbarch_stap_adjust_register'. gdb/testsuite/ChangeLog: PR breakpoints/24541 * gdb.mi/mi-catch-cpp-exceptions.exp: Remove kfail due to 24541. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 611a10e43e..16d09dc9d4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2019-07-17 Andrew Burgess <andrew.burgess@embecosm.com> + + PR breakpoints/24541 + * gdbarch.c: Regenerate. + * gdbarch.h: Regenerate. + * gdbarch.sh: Adjust return type and parameter types for + 'stap_adjust_register'. + (i386_stap_adjust_register): Adjust signature and return new + register name. + * stap-probe.c (stap_parse_register_operand): Adjust use of + 'gdbarch_stap_adjust_register'. + 2019-07-17 Tom Tromey <tromey@adacore.com> * s390-linux-nat.c (s390_watch_area): Remove typedef. Don't diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index cc7d0ace66..725b98fcd9 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -4530,14 +4530,14 @@ gdbarch_stap_adjust_register_p (struct gdbarch *gdbarch) return gdbarch->stap_adjust_register != NULL; } -void -gdbarch_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, std::string ®name, int regnum) +std::string +gdbarch_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, const std::string ®name, int regnum) { gdb_assert (gdbarch != NULL); gdb_assert (gdbarch->stap_adjust_register != NULL); if (gdbarch_debug >= 2) fprintf_unfiltered (gdb_stdlog, "gdbarch_stap_adjust_register called\n"); - gdbarch->stap_adjust_register (gdbarch, p, regname, regnum); + return gdbarch->stap_adjust_register (gdbarch, p, regname, regnum); } void diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 0857d2f302..c3556d3841 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1376,8 +1376,8 @@ extern void set_gdbarch_stap_parse_special_token (struct gdbarch *gdbarch, gdbar extern int gdbarch_stap_adjust_register_p (struct gdbarch *gdbarch); -typedef void (gdbarch_stap_adjust_register_ftype) (struct gdbarch *gdbarch, struct stap_parse_info *p, std::string ®name, int regnum); -extern void gdbarch_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, std::string ®name, int regnum); +typedef std::string (gdbarch_stap_adjust_register_ftype) (struct gdbarch *gdbarch, struct stap_parse_info *p, const std::string ®name, int regnum); +extern std::string gdbarch_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, const std::string ®name, int regnum); extern void set_gdbarch_stap_adjust_register (struct gdbarch *gdbarch, gdbarch_stap_adjust_register_ftype *stap_adjust_register); /* DTrace related functions. diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index f3d1bf489a..2f9fbbc56c 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -1053,7 +1053,7 @@ M;int;stap_parse_special_token;struct stap_parse_info *p;p # replace the register name from %ax to %eax. # # The rationale for this can be found at PR breakpoints/24541. -M;void;stap_adjust_register;struct stap_parse_info *p, std::string \®name, int regnum;p, regname, regnum +M;std::string;stap_adjust_register;struct stap_parse_info *p, const std::string \®name, int regnum;p, regname, regnum # DTrace related functions. diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index aac9baa0aa..ccec6d171b 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -4389,27 +4389,24 @@ i386_stap_parse_special_token (struct gdbarch *gdbarch, /* Implementation of 'gdbarch_stap_adjust_register', as defined in gdbarch.h. */ -static void +static std::string i386_stap_adjust_register (struct gdbarch *gdbarch, struct stap_parse_info *p, - std::string ®name, int regnum) + const std::string ®name, int regnum) { static const std::unordered_set<std::string> reg_assoc = { "ax", "bx", "cx", "dx", "si", "di", "bp", "sp" }; - if (register_size (gdbarch, regnum) >= TYPE_LENGTH (p->arg_type)) - { - /* If we're dealing with a register whose size is greater or - equal than the size specified by the "[-]N@" prefix, then we - don't need to do anything. */ - return; - } + /* If we are dealing with a register whose size is less than the size + specified by the "[-]N@" prefix, and it is one of the registers that + we know has an extended variant available, then use the extended + version of the register instead. */ + if (register_size (gdbarch, regnum) < TYPE_LENGTH (p->arg_type) + && reg_assoc.find (regname) != reg_assoc.end ()) + return "e" + regname; - if (reg_assoc.find (regname) != reg_assoc.end ()) - { - /* Use the extended version of the register. */ - regname = "e" + regname; - } + /* Otherwise, just use the requested register. */ + return regname; } \f diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c index 866b41e7f0..b6de873d2c 100644 --- a/gdb/stap-probe.c +++ b/gdb/stap-probe.c @@ -774,23 +774,24 @@ stap_parse_register_operand (struct stap_parse_info *p) code would like to perform on the register name. */ if (gdbarch_stap_adjust_register_p (gdbarch)) { - std::string oldregname = regname; + std::string newregname + = gdbarch_stap_adjust_register (gdbarch, p, regname, regnum); - gdbarch_stap_adjust_register (gdbarch, p, regname, regnum); - - if (regname != oldregname) + if (regname != newregname) { /* This is just a check we perform to make sure that the arch-dependent code has provided us with a valid register name. */ - regnum = user_reg_map_name_to_regnum (gdbarch, regname.c_str (), - regname.size ()); + regnum = user_reg_map_name_to_regnum (gdbarch, newregname.c_str (), + newregname.size ()); if (regnum == -1) internal_error (__FILE__, __LINE__, _("Invalid register name '%s' after replacing it" " (previous name was '%s')"), - regname.c_str (), oldregname.c_str ()); + newregname.c_str (), regname.c_str ()); + + regname = newregname; } } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c24eed9114..4d7c4a7dff 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-07-17 Andrew Burgess <andrew.burgess@embecosm.com> + + PR breakpoints/24541 + * gdb.mi/mi-catch-cpp-exceptions.exp: Remove kfail due to 24541. + 2019-07-14 Tom de Vries <tdevries@suse.de> PR testsuite/24760 diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp index 80ecabbe55..9b64fb14f2 100644 --- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp +++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp @@ -130,27 +130,7 @@ with_test_prefix "all with invalid regexp" { setup_catchpoint "throw" "-r blahblah" setup_catchpoint "rethrow" "-r woofwoof" setup_catchpoint "catch" "-r miowmiow" - - # Would like to use 'continue_to_breakpoint_in_main' here, if - # there wasn't a bug that requires a use of kfail. - - mi_send_resuming_command "exec-continue" \ - "exec-continue" - set testname "run until breakpoint in main" - gdb_expect { - -re "could not find minimal symbol for typeinfo address.*$mi_gdb_prompt$" { - kfail "gdb/24541" "${testname}" - } - -re "\\*stopped,bkptno=\"$decimal\",reason=\"breakpoint-hit\",disp=\"keep\".*func=\"__cxa_throw\".*$mi_gdb_prompt$" { - kfail "gdb/24541" "${testname}" - } - -re "\\*stopped,reason=\"breakpoint-hit\".*func=\"main\".*line=\"${main_lineno}\".*$mi_gdb_prompt$" { - pass "${testname}" - } - timeout { - fail "${testname} (timeout)" - } - } + continue_to_breakpoint_in_main } # Now check that all of the commands with a regexp that does match,
next reply other threads:[~2019-07-17 18:13 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-07-17 18:51 gdb-buildbot [this message] 2019-07-17 18:56 ` Failures on Fedora-i686, branch master gdb-buildbot 2019-07-17 19:15 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " gdb-buildbot 2019-07-17 19:15 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " gdb-buildbot 2019-07-17 21:30 ` *** COMPILATION FAILED *** Failures on Fedora-x86_64-native-gdbserver-m32, branch master *** BREAKAGE *** gdb-buildbot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=6b78c3f83c8bcbfa714aab7627ece9673b2d602a@gdb-build \ --to=gdb-buildbot@sergiodj.net \ --cc=gdb-testers@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).