Re: Windows build warnings

Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>

From: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
To: Daniel Gustafsson <daniel@yesql.se>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Greg Nancarrow <gregn4422@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-11-23T13:58:33Z
Lists: pgsql-hackers
On Tue, Nov 23, 2021 at 2:11 PM Daniel Gustafsson <daniel@yesql.se> wrote:

> > On 22 Nov 2021, at 16:40, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> > I can't find anything that is providing a non-empty definition of
> > PG_USED_FOR_ASSERTS_ONLY (a/k/a pg_attribute_unused) for anything
> > except GCC.
>
> It's supported in clang as well per the documentation [0] in at least some
> configurations or distributions:
>
>         "The [[maybe_unused]] (or __attribute__((unused))) attribute can be
>         used to silence such diagnostics when the entity cannot be removed.
>         For instance, a local variable may exist solely for use in an
> assert()
>         statement, which makes the local variable unused when NDEBUG is
>         defined."
>
> [[maybe_unused]] is also recognized from Visual Studio 2017 onwards [1].

[1] https://docs.microsoft.com/en-us/cpp/cpp/attributes?view=msvc-170

Regards,

Juan José Santamaría Flecha

Commits

  1. Disable unused-variable warning C4101 in MSVC

  2. Remove PF_USED_FOR_ASSERTS_ONLY from variables in general use

  3. Fix handling of non-key columns get_index_column_opclass()