Re: perl 5.36, C99, -Wdeclaration-after-statement -Wshadow=compatible-local
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, pgsql-hackers@postgresql.org, David Rowley <dgrowleyml@gmail.com>, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Date: 2022-12-28T18:43:27Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > The attached *prototype* patch is a slightly different spin on the idea of > using -isystem: It adds a > #pragma GCC system_header > to plperl.h if supported by the compiler. That also avoids warnings from > within plperl and subsidiary headers. > I don't really have an opinion about whether using the pragma or -isystem is > preferrable. I chose the pragma because it makes it easier to grep for headers > where we chose to do this. This seems like a reasonable answer. It feels quite a bit less magic in the way that it suppresses warnings than -isystem, and also less likely to have unexpected side-effects (I have a nasty feeling that -isystem is more magic on macOS than elsewhere). So far it seems like only the Perl headers have much of an issue, though I can foresee Python coming along soon. > In the compiler test, I chose to not check whether -Werror=unknown-pragmas is > supported - it appears to be an old gcc flag, and the worst outcome is that > HAVE_PRAGMA_SYSTEM_HEADER isn't defined. > We could alternatively define HAVE_PRAGMA_SYSTEM_HEADER or such based on > __GNUC__ being defined. Hmm ... I guess the buildfarm would tell us whether that detection works correctly on platforms where it matters. Let's keep it simple if we can. regards, tom lane
Commits
-
perl: Hide warnings inside perl.h when using gcc compatible compiler
- 99f8bc335cbe 11.19 landed
- f0e13802f196 12.14 landed
- ce073d01445c 13.10 landed
- 7b5dec760f7d 14.7 landed
- c6e75e4c2703 15.2 landed
- 388e80132c00 16.0 landed