This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Emit warning for function declaration with qualified void return type
On Jan 4, 2005, at 11:51 AM, Joseph S. Myers wrote:
On Tue, 4 Jan 2005, Devang Patel wrote:
This patch enables pedantic warning, in c99 mode, for function
that has qualified void return type. GCC already emits warning for
My understanding of the standard is that the constraint in 6.9.1#3 is
for function definitions, not for function declarations and certainly
for arbitrary function type declarators. For function type declarators
the constraints are the weaker ones in 220.127.116.11#1. Things are a bit
clear about declarations of functions which are not definitions, but my
view is that the correct interpretation is that the constraint in the
subclause "Function definitions" should only apply to such definitions.
We looked at 6.9.1#3 and 18.104.22.168#1 and had some discussions. Since
trivial, I decided to request feedback along with actual patch.
I haven't yet put this in my list of pre-DRs, but I discussed it with
Derek Jones last month and he agreed with my interpretation.
Interpreting it otherwise would also forbid
struct s f();
// struct s gets defined later before f is defined or called.
which is a natural reason for the constraints on function declarators
be weaker than those on definitions.
Please note also:
* The same constraint is in C90 6.7.1; there should not be a C99
I did not check C90 :)
* The examples in DR#113 (supposing you came across this issue as a
failure in a testsuite referencing that DR) only involve function
definitions; the question of other declarations was not raised there.
Indeed, we came across this issue as a testsuite failure.
This is a regression from earlier GCC.
This is a deliberate change from earlier GCC.