This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/32692] New: Inconsistent warning/error with static and non-static declarations


The attached testcase just produces warning or errors (depending on gcc
version) for func1, func3 and func5:

testwarning.c:5: error: static declaration of ?func1? follows non-static
declaration
testwarning.c:3: error: previous declaration of ?func1? was here
testwarning.c:25: error: static declaration of ?func3? follows non-static
declaration
testwarning.c:23: error: previous declaration of ?func3? was here
testwarning.c:46: error: static declaration of ?func5? follows non-static
declaration
testwarning.c:43: error: previous declaration of ?func5? was here

I'm not sure about any C standard implications here, but now that 'static
follows non-static' is an error in newer gcc, I believe the other way round
deserves at least a warning to. Noticed this while compiling source code with
HP's A.10.32.03 compiler, which warns about all 6 functions on the testcase
like this:
cc: "testwarning.c", line 53: warning 562: Redeclaration of "func6" with a
different storage class specifier: "func6" will have internal linkage.

Hope this helps,
Franz


-- 
           Summary: Inconsistent warning/error with static and non-static
                    declarations
           Product: gcc
           Version: 4.1.2
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sirl at gcc dot gnu dot org
 GCC build triplet: i586-suse-linux
  GCC host triplet: i586-suse-linux
GCC target triplet: i586-suse-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32692


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]