> On 22 Nov 2021, at 16:06, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
>> .. but see
>> https://postgr.es/m/CAH2-WznwWU+9on9nZCnZtk7uA238MCTgPxYr1Ty7U_Msn5ZGwQ@mail.gmail.com
>> where this was already discussed. I think if we're going to workaround
>> PG_USED_FOR_ASSERTS_ONLY not actually working, we may as well get rid of
>> it entirely. My preference would be to fix it so that it works on more
>> platforms (at least Windows in addition to GCC).
>
> Yeah, I do not think there is a reason to change the code if it's using
> PG_USED_FOR_ASSERTS_ONLY properly. We should either make that macro
> work on $compiler, or ignore such warnings from $compiler.
So, to reach some conclusion on this thread; it seems the code is using
PG_USED_FOR_ASSERTS_ONLY - as it's currently implemented - properly, but it
doesn't work on MSVC and isn't likely to work in the shape it is today.
Reworking to support a wider range of compilers will also likely mean net new
code.
To silence the warnings in the meantime (if the rework at all happens) we
should either apply the patch from Greg or add C4101 to disablewarnings in
src/tools/msvc/Project.pm as mentioned above. On top of that, we should apply
the patch I proposed downthread to remove PG_USED_FOR_ASSERTS_ONLY where it's
no longer applicable. Personally I'm fine with either, and am happy to make it
happen, once we agree on what it should be.
Thoughts?
--
Daniel Gustafsson https://vmware.com/