Re: apply pragma system_header to python headers

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Tom Lane <tgl@sss.pgh.pa.us>, Peter Eisentraut <peter@eisentraut.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-11-06T15:30:28Z
Lists: pgsql-hackers
On 2023-11-06 Mo 09:57, Tom Lane wrote:
> Peter Eisentraut <peter@eisentraut.org> writes:
>> Analogous to 388e80132c (which was for Perl) but for Python, I propose
>> adding #pragma GCC system_header to plpython.h.  Without it, you get
>> tons of warnings about -Wdeclaration-after-statement, starting with
>> Python 3.12.  (In the past, I have regularly sent feedback to Python to
>> fix their header files, but this is getting old, and we have an easier
>> solution now.)
> +1 for the concept --- I was just noticing yesterday that my buildfarm
> warning scraping script is turning up some of these.  However, we ought
> to try to minimize the amount of our own code that is subject to the
> pragma.  So I think a prerequisite ought to be to get this out of
> plpython.h:
>
> /*
>   * Used throughout, so it's easier to just include it everywhere.
>   */
> #include "plpy_util.h"
>
> Alternatively, is there a way to reverse the effect of the
> pragma after we've included what we need?


There's "GCC diagnostic push" and "GCC diagnostic pop" but I don't know 
if they apply to "GCC system_header". Instead of using "GCC 
system_header" we could just ignore the warnings we're seeing. e.g. "GCC 
diagnostic ignored \"-Wdeclaration-after-statement\""


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com




Commits

  1. Hide warnings from Python headers when using gcc-compatible compiler.