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

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Munro <thomas.munro@gmail.com>, tharakan@gmail.com, Peter Eisentraut <peter@eisentraut.org>, Sam James <sam@gentoo.org>, pgsql-bugs@lists.postgresql.org
Date: 2024-11-27T18:50:59Z
Lists: pgsql-bugs
Hi,

On 2024-11-27 13:28:24 -0500, Tom Lane wrote:
> Thomas Munro <thomas.munro@gmail.com> writes:
> > Pushed.  Alligator is turning green in the back branches, only one more to go.
> > I see that Peter also pushed the reserved word patches.  Apparently
> > that gcc bug it's blowing up on might go away with -g0 (see link
> > earlier), but anyway it's a nightly build compiler so fingers crossed
> > for a fix soon.  The newer branches are building and running for me on
> > { gcc14, gcc15, clang18 } -std=gnu23, and apparently the bug was even
> > in gcc14, so it must require some unlikely conditions that alligator
> > has stumbled on.
> 
> Looks like flaviventris and serinus just updated to the same broken
> compiler version that alligator is using :-(.  Maybe we'd better
> file a formal bug report?

I run a development gcc locally, and I just had updated it this morning
(4a868591169). Interestingly I don't see the ICE with it.

But I can reproduce it with debian sid's gcc-snapshot, with exactly the same
compiler arguments. The snapshot's version:
     gcc (Debian 20241123-1) 15.0.0 20241123 (experimental) [master r15-5606-g4aa4162e365]

so it looks like the bug might have been fixed recently?

I'm not sure this is really the bug linked to earlier [1]. I can't repro the
issue with 14, for example.

It's possible it requires specific gcc configure flags to be triggered?

Luckily -g1 does, at least locally, work around the issue with
gcc-snapshot. So I guess I'll make flaviventris and serinus use that for now
:/

Greetings,

Andres Freund

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113688



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.