From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: eliz@gnu.org
Cc: brobecker@adacore.com, andrew.smirnov@gmail.com,
gdb-patches@sourceware.org
Subject: Re: [PATCH 18/348] Fix -Wsahdow warnings
Date: Fri, 25 Nov 2011 15:11:00 -0000 [thread overview]
Message-ID: <201111251511.pAPFBBkP007292@glazunov.sibelius.xs4all.nl> (raw)
In-Reply-To: <83hb1s8l5c.fsf@gnu.org> (message from Eli Zaretskii on Fri, 25 Nov 2011 14:02:55 +0200)
> Date: Fri, 25 Nov 2011 14:02:55 +0200
> From: Eli Zaretskii <eliz@gnu.org>
>
> > Date: Thu, 24 Nov 2011 14:00:57 -0800
> > From: Joel Brobecker <brobecker@adacore.com>
> > Cc: Mark Kettenis <mark.kettenis@xs4all.nl>, gdb-patches <gdb-patches@sourceware.org>
> >
> > I mean, I understand that "index" might be part of a system's
> > include. But "block_found" (or was it "found_block") seems quite
> > surprising.
>
> If it surprised you, it means -Wsahdow did its job well.
No it didn't. It does a poor job, by flagging cases that can never
ever cause problems. A local variable "shadowing" a global function
name will never be a problem, because something like:
void foo(void);
void
bar(void)
{
int foo;
foo();
}
simply won't compile, even if you don't use -Werror.
> IOW, it's easy to avoid well-known names like `printf' or `strchr'.
> It's the not-so-well-known names that give you hell and high water.
Exactly. And since we enable -Werror by default, -Wshadow will break
GDB builds for no good reason. And remove some perfectly usable and
meaningful variable names.
> > Add the fact that includes and compiler vary from system to system,
> > and we're not sure that once clean on one machine, it'll be clean
> > everywhere else.
>
> But this is true of any other non-trivial piece of our code. E.g., if
> you declare a variable `long' expecting it to be a 64-bit type, this
> will break on MS-Windows, and you will never no until you actually try
> such a compilation.
Well, that would be a wrong assumption on any sane 32-bit platform as
well, so that issue could be caught on most platforms that GDB runs on.
> In general, we have no bullet-proof way of making sure our code works
> on all supported platforms, except by actually compiling it on those
> platforms. That's why platforms which lose their area maintainers
> bit-rot quite quickly. This compiler switch doesn't change this
> situation in any way.
I disagree. -Wshadow is a game changer because actually compiling on
*all* plaforms is the only way to make sure that I don't actually
break anything. That's extremely bad!
> > All of this to fix warnings that, as far as I could tell for the
> > most part, did not indicate an actual bug in the code.
Absolutely!
> It's a bug waiting to happen, though. That it didn't happen yet is
> just sheer luck.
Not really. Most people that contribute to GDB are fairly competent
programmers.
next prev parent reply other threads:[~2011-11-25 15:11 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-22 13:01 Andrey Smirnov
2011-11-22 18:03 ` Tom Tromey
2011-11-23 16:36 ` Mark Kettenis
2011-11-23 16:41 ` Ulrich Weigand
2011-11-23 18:21 ` Pedro Alves
2011-11-23 18:42 ` Joel Brobecker
2011-11-23 20:24 ` Mark Kettenis
2011-11-24 4:16 ` Andrey Smirnov
2011-11-24 11:36 ` Eli Zaretskii
2011-11-24 22:01 ` Joel Brobecker
2011-11-25 0:48 ` Andrey Smirnov
2011-11-25 14:26 ` Joel Brobecker
2011-11-25 15:52 ` About adding -Wshadow option by default (was Re: [PATCH 18/348] Fix -Wsahdow warnings) Pierre Muller
2011-11-25 16:36 ` Mark Kettenis
2011-11-29 19:18 ` [PATCH 18/348] Fix -Wsahdow warnings Tom Tromey
2011-11-30 3:48 ` Andrey Smirnov
2011-11-30 14:59 ` Tom Tromey
2011-12-01 4:15 ` Andrey Smirnov
2011-12-02 17:08 ` Tom Tromey
2011-11-25 12:03 ` Eli Zaretskii
2011-11-25 15:11 ` Mark Kettenis [this message]
2011-11-25 15:41 ` Eli Zaretskii
2011-11-25 16:26 ` Mark Kettenis
2011-11-25 18:20 ` Eli Zaretskii
2011-11-27 13:53 ` Mark Kettenis
2011-11-27 14:55 ` Pedro Alves
2011-11-27 16:35 ` Eli Zaretskii
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=201111251511.pAPFBBkP007292@glazunov.sibelius.xs4all.nl \
--to=mark.kettenis@xs4all.nl \
--cc=andrew.smirnov@gmail.com \
--cc=brobecker@adacore.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@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: link
Be 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