Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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.


  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