Bug 32160 - g++ produces bogus warnings when -Wshadow is given
Summary: g++ produces bogus warnings when -Wshadow is given
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: gcc
Version: 7.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: David Lawrence
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-03-18 22:30 UTC by Wagner T. Correa
Modified: 2007-04-18 16:32 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2001-03-19 14:57:14 UTC
Embargoed:


Attachments (Terms of Use)

Description Wagner T. Correa 2001-03-18 22:30:23 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.2.16-22smp i686)


According to the man page, the purpose of -Wshadow is to warn whenever a
local variable shadows another  local variable.  However, it also gives you
undesirable warnings when a local variable shadows a global variable.

Reproducible: Always
Steps to Reproduce:
Just compile the code below with g++ -Wshadow

#include <algorithm>
#include <string>

int main ()
{
	return 0;
}


Actual Results:  In file included from
/usr/include/g++-3/std/bastring.h:661,
                 from /usr/include/g++-3/string:7,
                 from y.cpp:3:
/usr/include/g++-3/std/bastring.cc: In function `istream &getline 
(istream &, basic_string<charT, traits, Allocator> &, charT)':
/usr/include/g++-3/std/bastring.cc:479: warning: declaration of `count'
shadows global declaration


Expected Results:  Since count is global, g++ should not issue that
warning.

Maybe -shadow should be split into two: -shadow-local and -shadow-global.

Comment 1 Jakub Jelinek 2001-03-19 14:57:05 UTC
I've changed bastring.cc so that you don't get this warning for it.
Concerning behaviour of -Wshadow, the documentation is just incomplete,
gcc has been warning about shadowing many things for very long time and this
behaviour has not changed. E.g. it warns if a static function shadows
a builtin, local variable shadows a parameter etc.

Comment 2 Jakub Jelinek 2001-03-30 10:27:05 UTC
These two changes are in gcc 2.96-80.


Note You need to log in before you can comment on or make changes to this bug.