* RFC: fix bug in compare_breakpoints @ 2012-10-17 19:36 Tom Tromey 2012-10-17 21:25 ` Joel Brobecker 2012-10-18 8:53 ` Pedro Alves 0 siblings, 2 replies; 13+ messages in thread From: Tom Tromey @ 2012-10-17 19:36 UTC (permalink / raw) To: gdb-patches I built gdb with clang today. This found a bunch of nits (I'll send a nit-cleanup patch later) but also a couple real bugs. Here's the first one. compare_breakpoints has an invalid comparison. Built (with clang and gcc) and regtested (gcc only) on x86-64 F16. Tom 2012-10-17 Tom Tromey <tromey@redhat.com> * breakpoint.c (compare_breakpoints): Fix comparison. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index bebad75..76e3e89 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -11766,7 +11766,7 @@ compare_breakpoints (const void *a, const void *b) the number 0. */ if (ua < ub) return -1; - return ub > ub ? 1 : 0; + return ua > ub ? 1 : 0; } /* Delete breakpoints by address or line. */ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-17 19:36 RFC: fix bug in compare_breakpoints Tom Tromey @ 2012-10-17 21:25 ` Joel Brobecker 2012-10-18 20:07 ` Tom Tromey 2012-10-18 8:53 ` Pedro Alves 1 sibling, 1 reply; 13+ messages in thread From: Joel Brobecker @ 2012-10-17 21:25 UTC (permalink / raw) To: Tom Tromey; +Cc: gdb-patches > 2012-10-17 Tom Tromey <tromey@redhat.com> > > * breakpoint.c (compare_breakpoints): Fix comparison. I sent a remark about this patch on IRC, but better repeat it here. FWIW, the patch looks good to me. -- Joel ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-17 21:25 ` Joel Brobecker @ 2012-10-18 20:07 ` Tom Tromey 0 siblings, 0 replies; 13+ messages in thread From: Tom Tromey @ 2012-10-18 20:07 UTC (permalink / raw) To: Joel Brobecker; +Cc: gdb-patches >>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes: >> 2012-10-17 Tom Tromey <tromey@redhat.com> >> >> * breakpoint.c (compare_breakpoints): Fix comparison. Joel> I sent a remark about this patch on IRC, but better repeat it here. Joel> FWIW, the patch looks good to me. I'm checking it in. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-17 19:36 RFC: fix bug in compare_breakpoints Tom Tromey 2012-10-17 21:25 ` Joel Brobecker @ 2012-10-18 8:53 ` Pedro Alves 2012-10-18 20:06 ` Tom Tromey 1 sibling, 1 reply; 13+ messages in thread From: Pedro Alves @ 2012-10-18 8:53 UTC (permalink / raw) To: Tom Tromey; +Cc: gdb-patches On 10/17/2012 08:35 PM, Tom Tromey wrote: > I built gdb with clang today. > > This found a bunch of nits (I'll send a nit-cleanup patch later) but > also a couple real bugs. > > Here's the first one. compare_breakpoints has an invalid comparison. > > Built (with clang and gcc) and regtested (gcc only) on x86-64 F16. Eh! Shame that gcc doesn't warn on this ("comparison always false", I gather?). Sounds like something that shouldn't be hard for the compiler to detect. IWBN to have gcc PRs for these issues. > > Tom > > 2012-10-17 Tom Tromey <tromey@redhat.com> > > * breakpoint.c (compare_breakpoints): Fix comparison. > > diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c > index bebad75..76e3e89 100644 > --- a/gdb/breakpoint.c > +++ b/gdb/breakpoint.c > @@ -11766,7 +11766,7 @@ compare_breakpoints (const void *a, const void *b) > the number 0. */ > if (ua < ub) > return -1; > - return ub > ub ? 1 : 0; > + return ua > ub ? 1 : 0; > } > > /* Delete breakpoints by address or line. */ > -- Pedro Alves ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-18 8:53 ` Pedro Alves @ 2012-10-18 20:06 ` Tom Tromey 2012-10-19 16:17 ` Tom Tromey 0 siblings, 1 reply; 13+ messages in thread From: Tom Tromey @ 2012-10-18 20:06 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches >>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes: Pedro> Eh! Shame that gcc doesn't warn on this ("comparison always false", Pedro> I gather?). Sounds like something that shouldn't be hard for the Pedro> compiler to detect. IWBN to have gcc PRs for these issues. I filed http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54979 for the comparison issue. The other problem is caught by -Wempty-body, which we don't enable. It yields a number of warnings and would require a coding style change from: if (blah) ; to if (blah) { } That would be fine with me, and I'd be happy to write the patch if there is general agreement. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-18 20:06 ` Tom Tromey @ 2012-10-19 16:17 ` Tom Tromey 2012-10-19 16:41 ` Add -Wempty-body to warning set (was: Re: RFC: fix bug in compare_breakpoints) Pedro Alves ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Tom Tromey @ 2012-10-19 16:17 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches >>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes: Tom> The other problem is caught by -Wempty-body, which we don't enable. It Tom> yields a number of warnings and would require a coding style change Tom> from: [...] FWIW, here's the patch. Comments appreciated. I do think it is a mild improvement. It is a lot easier to mistype a ";" than a correctly formatted brace pair. I left out the rs6000-aix-tdep.c part of the patch since it is being addressed separately. Tom * configure: Rebuild. * configure.ac (build_warnings): Add -Wempty-body. * m68k-tdep.c (m68k_gdbarch_init): Remove empty 'if'. * remote.c (handle_notification): Use braces for empty 'else' body. * s390-tdep.c (s390_analyze_prologue): Use braces for empty 'else' body. * sh64-tdep.c (sh64_push_dummy_call): Use braces for empty 'else' body. * solib-som.c (som_relocate_section_addresses): Use braces for empty 'else' body. * ui-file.c (stdio_file_write): Use braces for empty 'if' body. (stdio_file_write_async_safe, stdio_file_fputs): Likewise. diff --git a/gdb/configure.ac b/gdb/configure.ac index fc181fd..f0b7df3 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1920,7 +1920,7 @@ build_warnings="-Wall -Wdeclaration-after-statement -Wpointer-arith \ -Wformat-nonliteral -Wno-pointer-sign \ -Wno-unused -Wunused-value -Wunused-function \ -Wno-switch -Wno-char-subscripts -Wmissing-prototypes \ --Wdeclaration-after-statement" +-Wdeclaration-after-statement -Wempty-body" # Enable -Wno-format by default when using gcc on mingw since many # GCC versions complain about %I64. diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index b45a80f..0bad9ac 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -1100,9 +1100,6 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) feature = tdesc_find_feature (info.target_desc, "org.gnu.gdb.m68k.core"); - if (feature != NULL) - /* Do nothing. */ - ; if (feature == NULL) { diff --git a/gdb/remote.c b/gdb/remote.c index 1750bee..2ed5501 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -6781,9 +6781,10 @@ handle_notification (char *buf) } } else - /* We ignore notifications we don't recognize, for compatibility - with newer stubs. */ - ; + { + /* We ignore notifications we don't recognize, for compatibility + with newer stubs. */ + } } \f diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 6cd6fd4..0af6f51 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -1461,13 +1461,14 @@ s390_analyze_prologue (struct gdbarch *gdbarch, break; else - /* An instruction we don't know how to simulate. The only - safe thing to do would be to set every value we're tracking - to 'unknown'. Instead, we'll be optimistic: we assume that - we *can* interpret every instruction that the compiler uses - to manipulate any of the data we're interested in here -- - then we can just ignore anything else. */ - ; + { + /* An instruction we don't know how to simulate. The only + safe thing to do would be to set every value we're tracking + to 'unknown'. Instead, we'll be optimistic: we assume that + we *can* interpret every instruction that the compiler uses + to manipulate any of the data we're interested in here -- + then we can just ignore anything else. */ + } /* Record the address after the last instruction that changed the FP, SP, or backlink. Ignore instructions that changed diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c index 4e6f262..e11e746 100644 --- a/gdb/sh64-tdep.c +++ b/gdb/sh64-tdep.c @@ -1175,10 +1175,10 @@ sh64_push_dummy_call (struct gdbarch *gdbarch, int_argreg ++; } else - ; - /* Store it as the integers, 8 bytes at the time, if - necessary spilling on the stack. */ - + { + /* Store it as the integers, 8 bytes at the time, if + necessary spilling on the stack. */ + } } else if (len == 8) { @@ -1202,9 +1202,10 @@ sh64_push_dummy_call (struct gdbarch *gdbarch, int_argreg ++; } else - ; - /* Store it as the integers, 8 bytes at the time, if - necessary spilling on the stack. */ + { + /* Store it as the integers, 8 bytes at the time, if + necessary spilling on the stack. */ + } } } } diff --git a/gdb/solib-som.c b/gdb/solib-som.c index 6100cbe..6fea108 100644 --- a/gdb/solib-som.c +++ b/gdb/solib-som.c @@ -126,7 +126,9 @@ som_relocate_section_addresses (struct so_list *so, sec->endaddr += so->lm_info->data_start; } else - ; + { + /* Nothing. */ + } } diff --git a/gdb/ui-file.c b/gdb/ui-file.c index 8528793..68089e6 100644 --- a/gdb/ui-file.c +++ b/gdb/ui-file.c @@ -561,7 +561,9 @@ stdio_file_write (struct ui_file *file, const char *buf, long length_buf) _("stdio_file_write: bad magic number")); /* Calling error crashes when we are called from the exception framework. */ if (fwrite (buf, length_buf, 1, stdio->file)) - ; + { + /* Nothing. */ + } } static void @@ -583,7 +585,9 @@ stdio_file_write_async_safe (struct ui_file *file, result of write (since it can be declared with attribute warn_unused_result). Alas casting to void doesn't work for this. */ if (write (stdio->fd, buf, length_buf)) - ; + { + /* Nothing. */ + } } static void @@ -596,7 +600,9 @@ stdio_file_fputs (const char *linebuffer, struct ui_file *file) _("stdio_file_fputs: bad magic number")); /* Calling error crashes when we are called from the exception framework. */ if (fputs (linebuffer, stdio->file)) - ; + { + /* Nothing. */ + } } static int ^ permalink raw reply [flat|nested] 13+ messages in thread
* Add -Wempty-body to warning set (was: Re: RFC: fix bug in compare_breakpoints) 2012-10-19 16:17 ` Tom Tromey @ 2012-10-19 16:41 ` Pedro Alves 2012-10-19 16:44 ` Add -Wempty-body to warning set Tom Tromey 2012-10-19 17:00 ` RFC: fix bug in compare_breakpoints Joel Brobecker 2012-11-02 18:52 ` Tom Tromey 2 siblings, 1 reply; 13+ messages in thread From: Pedro Alves @ 2012-10-19 16:41 UTC (permalink / raw) To: Tom Tromey; +Cc: gdb-patches [Changing $subject. As with all warning set addition, this is likely to introduce new -Werror build failures on other hosts/ports.] On 10/19/2012 05:16 PM, Tom Tromey wrote: > Tom> The other problem is caught by -Wempty-body, which we don't enable. It > Tom> yields a number of warnings and would require a coding style change > Tom> from: > [...] > > FWIW, here's the patch. Comments appreciated. > > I do think it is a mild improvement. It is a lot easier to mistype a > ";" than a correctly formatted brace pair. I agree it's a mild improvement. Though I'm surprised at how few cases in common code this reveals -- I thought we had more of: while (...) ; FAOD, this is fine with me. Thanks. -- Pedro Alves ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Add -Wempty-body to warning set 2012-10-19 16:41 ` Add -Wempty-body to warning set (was: Re: RFC: fix bug in compare_breakpoints) Pedro Alves @ 2012-10-19 16:44 ` Tom Tromey 0 siblings, 0 replies; 13+ messages in thread From: Tom Tromey @ 2012-10-19 16:44 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches >>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes: Pedro> [Changing $subject. As with all warning set addition, this is likely Pedro> to introduce Pedro> new -Werror build failures on other hosts/ports.] Thanks. Pedro> I agree it's a mild improvement. Though I'm surprised at how few cases Pedro> in common code this reveals -- I thought we had more of: Pedro> while (...) Pedro> ; I was surprised, too, but then I read that 'while' is explicitly excluded from the warning: `-Wempty-body' Warn if an empty body occurs in an `if', `else' or `do while' statement. This warning is also enabled by `-Wextra'. Pedro> FAOD, this is fine with me. Thanks. I'm going to wait for more comments. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-19 16:17 ` Tom Tromey 2012-10-19 16:41 ` Add -Wempty-body to warning set (was: Re: RFC: fix bug in compare_breakpoints) Pedro Alves @ 2012-10-19 17:00 ` Joel Brobecker 2012-10-19 17:03 ` Tom Tromey 2012-11-02 18:52 ` Tom Tromey 2 siblings, 1 reply; 13+ messages in thread From: Joel Brobecker @ 2012-10-19 17:00 UTC (permalink / raw) To: Tom Tromey; +Cc: Pedro Alves, gdb-patches > I do think it is a mild improvement. It is a lot easier to mistype a > ";" than a correctly formatted brace pair. Thanks, Tom. I also think it's a mild improvement. It does make we wonder why we need the if/else at all in some of the cases, but that's for another day/patch... -- Joel ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-19 17:00 ` RFC: fix bug in compare_breakpoints Joel Brobecker @ 2012-10-19 17:03 ` Tom Tromey 2012-10-19 17:12 ` Joel Brobecker 0 siblings, 1 reply; 13+ messages in thread From: Tom Tromey @ 2012-10-19 17:03 UTC (permalink / raw) To: Joel Brobecker; +Cc: Pedro Alves, gdb-patches >>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes: Joel> It does make we wonder why we need the if/else at all in some of Joel> the cases, but that's for another day/patch... Yeah, some of them seem useless. A few are just to stick a comment there, and some others are to work around warn_unused_result. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-19 17:03 ` Tom Tromey @ 2012-10-19 17:12 ` Joel Brobecker 2012-10-19 17:18 ` Pedro Alves 0 siblings, 1 reply; 13+ messages in thread From: Joel Brobecker @ 2012-10-19 17:12 UTC (permalink / raw) To: Tom Tromey; +Cc: Pedro Alves, gdb-patches > A few are just to stick a comment there, and some others are to work > around warn_unused_result. Yeah. In the first case, we could move the comment back to the top, although perhaps it's easier to read an understand the current way. I also saw the ones around "warn_unused_result" and we could have used a cast to (void), I suppose. But in the end, all of this isn't really all that important. Gives us an opportunity to request a comment explaining why it's OK to ignore the return value :-). -- Joel ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-19 17:12 ` Joel Brobecker @ 2012-10-19 17:18 ` Pedro Alves 0 siblings, 0 replies; 13+ messages in thread From: Pedro Alves @ 2012-10-19 17:18 UTC (permalink / raw) To: Joel Brobecker; +Cc: Tom Tromey, gdb-patches On 10/19/2012 06:12 PM, Joel Brobecker wrote: >> A few are just to stick a comment there, and some others are to work >> around warn_unused_result. > > Yeah. In the first case, we could move the comment back to the top, > although perhaps it's easier to read an understand the current way. > I also saw the ones around "warn_unused_result" and we could have > used a cast to (void), I suppose. Last I wrote one of those, a cast to (void) wasn't good enough to silence the warning. > But in the end, all of this isn't > really all that important. Gives us an opportunity to request a comment > explaining why it's OK to ignore the return value :-). Indeed. :-) -- Pedro Alves ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: RFC: fix bug in compare_breakpoints 2012-10-19 16:17 ` Tom Tromey 2012-10-19 16:41 ` Add -Wempty-body to warning set (was: Re: RFC: fix bug in compare_breakpoints) Pedro Alves 2012-10-19 17:00 ` RFC: fix bug in compare_breakpoints Joel Brobecker @ 2012-11-02 18:52 ` Tom Tromey 2 siblings, 0 replies; 13+ messages in thread From: Tom Tromey @ 2012-11-02 18:52 UTC (permalink / raw) To: Pedro Alves; +Cc: gdb-patches >>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes: Tom> The other problem is caught by -Wempty-body, which we don't enable. It Tom> yields a number of warnings and would require a coding style change Tom> from: Tom> [...] Tom> FWIW, here's the patch. Comments appreciated. It's been a couple of weeks and there haven't been any objections. I am checking this in. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2012-11-02 18:52 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-10-17 19:36 RFC: fix bug in compare_breakpoints Tom Tromey 2012-10-17 21:25 ` Joel Brobecker 2012-10-18 20:07 ` Tom Tromey 2012-10-18 8:53 ` Pedro Alves 2012-10-18 20:06 ` Tom Tromey 2012-10-19 16:17 ` Tom Tromey 2012-10-19 16:41 ` Add -Wempty-body to warning set (was: Re: RFC: fix bug in compare_breakpoints) Pedro Alves 2012-10-19 16:44 ` Add -Wempty-body to warning set Tom Tromey 2012-10-19 17:00 ` RFC: fix bug in compare_breakpoints Joel Brobecker 2012-10-19 17:03 ` Tom Tromey 2012-10-19 17:12 ` Joel Brobecker 2012-10-19 17:18 ` Pedro Alves 2012-11-02 18:52 ` Tom Tromey
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox