[PATCH] Emit warning for function declaration with qualified void return type
Devang Patel
dpatel@apple.com
Tue Jan 4 20:04:00 GMT 2005
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
>> declarations
>> that has qualified void return type. GCC already emits warning for
>> function
>> definitions.
>
> My understanding of the standard is that the constraint in 6.9.1#3 is
> only
> for function definitions, not for function declarations and certainly
> not
> for arbitrary function type declarators. For function type declarators
> the constraints are the weaker ones in 6.7.5.3#1. Things are a bit
> less
> 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 6.7.5.3#1 and had some discussions. Since
patch is
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;
> 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
> to
> be weaker than those on definitions.
>
> Please note also:
>
> * The same constraint is in C90 6.7.1; there should not be a C99
> conditional here.
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.
Thanks.
-
Devang
More information about the Gcc-patches
mailing list