https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85505

            Bug ID: 85505
           Summary: Code accepted despite a variable using the same name
                    as a parameter
           Product: gcc
           Version: 8.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: abbeyj+gcc at gmail dot com
  Target Milestone: ---

The following code is accepted by GCC although I believe it should not be. 
This happens on all versions and all platforms currently available on
https://gcc.godbolt.org/

Test case:
class C {
public:
  ~C();
};
void Foo(int data) {
  switch (0) {
  case 0:;
  }
  C b;
  float data;
}


I would have expected an error here like:
error: declaration of 'float data' shadows a parameter

Note that you do get this error if you comment out (seemingly unrelated) lines
from the test case.

Shout out to https://embed.cs.utah.edu/creduce/ for providing the above reduced
test case.

Reply via email to