agora inbox for pgsql-committers@postgresql.org  
help / color / mirror / Atom feed
From: Peter Eisentraut <peter@eisentraut.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Use warning option -Wshadow=local
Date: Thu, 24 Sep 2026 09:23:16 +0000
Message-ID: <E1x9ffg-000000012Sy-2MLI@gemulon.postgresql.org> (raw)

Use warning option -Wshadow=local

Change the existing -Wshadow=compatible-local to -Wshadow=local.  This
covers more cases than before.  In particular, some types are
assignable to each other, such as char * and const char *, or bool and
some integer type, but they are not "compatible" in the C sense, so
they are missed by the previous warning setting, but they are really
the same basic problem.

The warnings were already fixed in commit f9fc9a78a36.  This just
enables the compiler option.

But: The LLVM headers are not clean for this option, so we need to
disable this option for those headers.  We do this by also detecting
in configure and meson the negative form of the warning option and
applying it when compiling the respective files, similar to how other
per-file warning disabling already works.

This technically loses the previous -Wshadow=compatible-local checking
of the LLVM-using files, but this worked only by accident anyway and
there is no guarantee that future LLVM versions wouldn't run afoul of
that warning level.

The variables are intentionally named "...shadow", not
"...shadow_local" or similar, so that other shadow warning option
variants could be substituted easily.

In the long run, a better solution might be to use -isystem for the
LLVM include directories, as was attempted in commit 704ef84ef23 but
then reverted in 7a0aa99e51c, because porting that logic from meson
accurately to configure is complicated and fragile and hard to test
and maintain.

Discussion: https://www.postgresql.org/message-id/flat/84b6f128-91f5-480e-8a9e-7d0e8f538cea%40eisentraut.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/3ee0edb9169ff7b46bc858062007bb97c7cc1ae7

Modified Files
--------------
configure                        | 187 +++++++++++++++++++++------------------
configure.ac                     |  16 +++-
meson.build                      |   9 +-
src/Makefile.global.in           |   1 +
src/backend/jit/llvm/Makefile    |   2 +-
src/backend/jit/llvm/meson.build |   2 +-
src/makefiles/meson.build        |   2 +
7 files changed, 127 insertions(+), 92 deletions(-)



Message-ID: <E1x9ffg-000000012Sy-2MLI@gemulon.postgresql.org>
Permalink:  ../E1x9ffg-000000012Sy-2MLI@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1x9ffg-000000012Sy-2MLI@gemulon.postgresql.org

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-committers@postgresql.org
  Cc: peter@eisentraut.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Use warning option -Wshadow=local
  In-Reply-To: <E1x9ffg-000000012Sy-2MLI@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox