Re: Build failure with GCC 15 (defaults to -std=gnu23)

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter@eisentraut.org>, Sam James <sam@gentoo.org>, pgsql-bugs@lists.postgresql.org
Date: 2024-11-26T11:24:29Z
Lists: pgsql-bugs

Attachments

On Tue, Nov 26, 2024 at 3:25 PM Thomas Munro <thomas.munro@gmail.com> wrote:
> On Tue, Nov 26, 2024 at 3:13 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > Sounds plausible to me.  Will you work on making that happen?
>
> OK, trying it out...

Attached first attempt seems to work OK, tested on 9.2 and 15
branches.  I'm not sure if it's the best way to test, or in the best
place, etc, ideas welcome.  The reason for testing with > 201710
rather than >= 202311 is that there are some funny in between numbers
floating around: gcc14 -std=c23 -> 202000 (since you mentioned you'd
tested with that before), while gcc15 -std=c23 -> 202311 (the real
final standard number).  Also tested v15 with clang18 -std=c23, which
breaks, and is fixed, as expected.

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Require sizeof(bool) == 1.

  2. If a C23 compiler is detected, try asking for C17.

  3. Fix C23 compiler warning

  4. Rename C23 keyword

  5. Assume that <stdbool.h> conforms to the C standard.

  6. Revise tree-walk APIs to improve spec compliance & silence warnings.