Peter Eisentraut <pe...@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. regards, tom lane [1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=drongo&dt=2025-07-01%2016%3A09%3A21