static declaration follows non-static one

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On compiling the following code with gcc (Debian 4.7.2-5) 4.7.2

	#include <stdio.h>

	extern int foo(void);

	static int foo(void) { return 271828; }

	int main(void)
	{
	      printf("foo = %d\n", foo());
	      return 0;
	}

the compiler reports the error:

	foo.c:5:12: error: static declaration of ‘foo’ follows non-static
declaration
	foo.c:3:12: note: previous declaration of ‘foo’ was here

However, the Standard says:

	If the declaration of an identifier for an object or a function 
	contains the storage-class specifier extern, the identifier has 
	the same linkage as any visible declaration of the identifier 
	with file scope.

Is it a gcc bug or I misunderstand something?

Thanks,

Andrew Makhorin






[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux