Bug#762005: gcc-4.9: prototype subroutine (non-static) != functional subroutine (static)
Package: gcc-4.9
Version: 4.9.1-12
Severity: normal
Dear Maintainer,
* What led up to the situation?
My program has interlocking subroutines.
a() is called by any mouse click. Depending on state, it may call b(), which creates a subwindow (OpenGL)
Creation of a subwindow invokes c(), which associates mouse activity with that subwindow
A mouse click on the subwindow invokes c(), which calls a().
Accordingly, a prototype of a(); is placed before c(){...}, followed by b(){...}, followed by the actual implementation of a(){...}.
This construction results in an error message:
"error: static declaration of 'a()' follows non-static declaration void a(){"
* What exactly did you do (or not do) that was effective (or
ineffective)?
I changed the repository to "jessie" from "wheezy", and upgraded the gcc package. (no joy).
I placed the keyword "static" in the prototype declaration: "static void a();"
* What was the outcome of this action?
an error message, "invalid storage class for function 'a'"
* What outcome did you expect instead?
compile without error
This construction has compiled successfully on Debian stable amd64 for the past year.
Note to upstream: The use of the keyword "static" to indicate that the subroutine is local to
the file in which it is found is inconsistent with the meaning elsewhere in the C language;
i.e. "static" implies pesistent vs volatile. A more appropriate keyword would be "local".
-- System Information:
Debian Release: 7.6
APT prefers testing-updates
APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 3.2.0-4-686-pae (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages gcc-4.9 depends on:
ii binutils 2.24.51.20140903-1
ii cpp-4.9 4.9.1-12
ii gcc-4.9-base 4.9.1-12
ii libc6 2.19-11
ii libcloog-isl4 0.18.2-1
ii libgcc-4.9-dev 4.9.1-12
ii libgmp10 2:6.0.0+dfsg-6
ii libisl10 0.12.2-2
ii libmpc3 1.0.2-1
ii libmpfr4 3.1.2-1
ii zlib1g 1:1.2.7.dfsg-13
Versions of packages gcc-4.9 recommends:
ii libc6-dev 2.19-11
Versions of packages gcc-4.9 suggests:
ii binutils [binutils-gold] 2.24.51.20140903-1
pn gcc-4.9-doc <none>
pn gcc-4.9-locales <none>
pn gcc-4.9-multilib <none>
pn libasan1-dbg <none>
pn libatomic1-dbg <none>
pn libcilkrts5-dbg <none>
pn libgcc1-dbg <none>
pn libgomp1-dbg <none>
pn libitm1-dbg <none>
pn liblsan0-dbg <none>
pn libquadmath0-dbg <none>
pn libtsan0-dbg <none>
pn libubsan0-dbg <none>
pn libvtv0-dbg <none>
-- no debconf information
Reply to: