Re: C11 / VS 2019 - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: C11 / VS 2019
Date
Msg-id 46154df9-f514-4d79-89bb-df4af46b1b9f@eisentraut.org
Whole thread Raw
In response to Re: C11 / VS 2019  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 06.07.25 00:27, Tom Lane wrote:
> Peter Eisentraut <peter@eisentraut.org> writes:
>> On 04.06.25 08:15, Peter Eisentraut wrote:
>>> For an explanation, the background is that MSVC has a "traditional"
>>> preprocessor and a new "conforming" one.  The latter is available
>>> starting in VS 2019, but it's not the default.  We have some code,
>>> especially around __VA_ARGS__ that specifically caters to this
>>> traditional preprocessor.
> 
>> I have committed this.
> 
> Buildfarm member drongo has been failing in initdb since 1 July:
> 
> selecting default time zone ... UTC
> creating configuration files ... ok
> running bootstrap script ...
> ----------------------------------- stderr -----------------------------------
> TRAP: failed Assert("SysCache[cacheId]->cc_nkeys == 2"), File: "../pgsql/src/backend/utils/cache/syscache.c", Line:
237,PID: 2684
 
> child process was terminated by exception 0xC0000409
> 
> While there are 19 new commits in the first run that shows this
> failure [1], the only one that looks plausibly related is
> 
> 8fd9bb1d965 Tue Jul 1 07:41:40 2025 UTC  Enable MSVC conforming preprocessor
> 
> because that changed our implementation of VA_ARGS_NARGS(), which is
> what's used to compute the cc_nkeys fields for syscaches.
> 
> My conclusion is that Microsoft's "standards conforming" preprocessor
> is not so standards conforming as all that.

Hmm.  We have the (allegedly) same VS version in Cirrus CI, and it's 
never shown a problem like this.

I wonder if there could be a local problem on this host.  Perhaps the 
ccache or pch cache could use a cleaning up?




pgsql-hackers by date:

Previous
From: Jim Jones
Date:
Subject: Re: Allow ON CONFLICT DO UPDATE to return EXCLUDED values
Next
From: Arseniy Mukhin
Date:
Subject: Re: amcheck support for BRIN indexes