v16 fails to build w/ Visual Studio 2015

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: pgsql-hackers@postgresql.org
Date: 2023-06-07T18:54:58Z
Lists: pgsql-hackers

Attachments

Visual Studio 2015 version "14.0.25431.01 Update 3" has an apparent compiler
bug that causes the build to fail with "readfuncs.switch.c(522): fatal error
C1026: parser stack overflow, program too complex (compiling source file
src/backend/nodes/readfuncs.c)".  While I wouldn't mind revoking support for
Visual Studio 2015, changing the code to cope is easy.  See attached.
https://stackoverflow.com/a/34266725/16371536 asserts having confirmation of
the compiler bug, but its reference is now a dead link.  This became a problem
in v16 due to the 135% increase in node types known to parseNodeString().

https:/postgr.es/m/20221124004144.iosgze2qnmcctgsh@awork3.anarazel.de
previously reported this error message when overriding USE_READLINE in a
Visual Studio build, for tab-complete.c.  If that combination ever becomes
supported, we may face a similar decision there.

Commits

  1. Make parseNodeString() C idiom compatible with Visual Studio 2015.

  2. Automatically generate node support functions