Re: Enable -Wstrict-prototypes and -Wold-style-definition by default

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2026-03-23T15:13:20Z
Lists: pgsql-hackers

Attachments

On 18.03.26 14:32, Peter Eisentraut wrote:
> On 16.03.26 10:55, Peter Eisentraut wrote:
>> On 09.03.26 17:39, Bertrand Drouvot wrote:
>>> 0001: Prevent -Wstrict-prototypes and -Wold-style-definition warnings
>>>
>>> It fixes the remaining warnings that those new flags would generate.
>>
>> I have committed this one.  I'll look at the rest next.
> 
> Also committed.

I have a couple of follow-up patches that I had developed while playing 
with this.

There is a warning option for MSVC that appears to have a very similar 
effect to the ones we added here, so I propose we add that one as well.

Additionally, there is an option for MSVC to disable warnings in system 
headers, similar to the default behavior of GCC.  This would be required 
here because some system header files have non-strict prototypes.

Additionally, I propose to add -Wold-style-declaration, which is 
completely unrelated to -Wold-style-definition, but it has popped up a 
few times via the buildfarm (grep for it in git log), so I think we 
might as well add it so that everyone sees it.

Finally, I think we can remove the option -Wendif-labels, which doesn't 
do anything anymore that isn't the default.  (It was only not the 
default before gcc 4.0.)

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add warning option -Wold-style-declaration

  2. configure: Apply -Werror=vla to C++ as well as C

  3. Enable warning like -Wstrict-prototypes on MSVC as well

  4. Remove compiler warning option -Wendif-labels

  5. Disable warnings in system headers in MSVC

  6. Fix -Wstrict-prototypes warning in ecpg_init_sqlca() declaration.