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

            Bug ID: 78359
           Summary: Redeclaration of global variables is not reported
           Product: gcc
           Version: 5.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: robert.kollataj at ac dot com.pl
  Target Milestone: ---

The problem concerns GCC compiler for embedded v. 5.2.0. (pure C language)
The compiler does not report redeclaration of global variables. The following
example shows how it happens:

int Counter, Counter, Counter;

int main(void)
{
  Counter++;
  if (Counter > 0)
  {
    ......
  }
}

This code is compiled without errors (I wonder which copy of "Counter" is
really taken into account by the compiler...)

When the "Counter" is declared as local variable, the compiler reports an
error:



int main(void)
{

  int Counter, Counter, Counter;

  Counter++;
  if (Counter > 0)
  {
    ......
  }
}

 error: redeclaration of 'Counter' with no linkage

Reply via email to