[Bug web/87803] New: GCC 6.5.0 release directory is misnamed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87803 Bug ID: 87803 Summary: GCC 6.5.0 release directory is misnamed Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: web Assignee: unassigned at gcc dot gnu.org Reporter: ats-gccbugs at offog dot org Target Milestone: --- I'm not sure this really counts as a bug in GCC as such, but... Within ftp://ftp.gnu.org/gnu/gcc/, the subdirectory for each release is usually named gcc-X.Y.Z - however, the subdirectory for GCC 6.5.0 is just called 6.5.0, rather than gcc-6.5.0. I spotted this because I have a packaging tool that scans for new releases, and it wasn't picking up 6.5.0 because it didn't follow the usual pattern. I think it'd be a good idea to rename the directory to match the others (but keep a symlink called 6.5.0 in case anyone's already changed their packaging).
[Bug target/113086] New: m68k: ICE at emit-rtl.cc:2287 with -fzero-call-used-regs=all -fPIE compiling openssh 9.6p1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113086 Bug ID: 113086 Summary: m68k: ICE at emit-rtl.cc:2287 with -fzero-call-used-regs=all -fPIE compiling openssh 9.6p1 Product: gcc Version: 13.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ats-gccbugs at offog dot org Target Milestone: --- Created attachment 56906 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56906&action=edit Preprocessed source This may be a duplicate of 110934. GCC 13.2.0 running on x86_64-pc-linux-gnu, targeting m68k-linux-gnu. Preprocessed source attached. The code being cross-compiled is misc.c from openssh 9.6p1, cut down to just the bandwidth_limit function - the same ICE comes up in other OpenSSH files too. Removing either -fzero-call-used-regs=used or -fPIE prevents the ICE. $ /gar/bin/m68k-linux-gnu-gcc -v -save-temps -freport-bug -g -O2 -fno-strict-aliasing -ftrapv -fzero-call-used-regs=used -ftrivial-auto-var-init=zero -fno-builtin-memset -fstack-protector-strong -fPIE -I. -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE -DHAVE_CONFIG_H -o misc-cutdown.o -c misc-cutdown.c Using built-in specs. COLLECT_GCC=/gar/bin/m68k-linux-gnu-gcc Target: m68k-linux-gnu Configured with: /src/devel/gcc-m68k/work/gcc-13.2.0/configure --prefix=/gar --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/com --target=m68k-linux-gnu --with-sysroot=/cross/linux-m68k --disable-libssp --disable-libcc1 --disable-multilib --with-system-zlib --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ Thread model: posix Supported LTO compression algorithms: zlib gcc version 13.2.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-freport-bug' '-g' '-O2' '-fno-strict-aliasing' '-ftrapv' '-fzero-call-used-regs=used' '-ftrivial-auto-var-init=zero' '-fno-builtin-memset' '-fstack-protector-strong' '-fPIE' '-I' '.' '-D' '_XOPEN_SOURCE=600' '-D' '_BSD_SOURCE' '-D' '_DEFAULT_SOURCE' '-D' '_GNU_SOURCE' '-D' 'HAVE_CONFIG_H' '-o' 'misc-cutdown.o' '-c' '-mcpu=68020' /gar/packages/gcc-m68k-13.2.0/bin/../libexec/gcc/m68k-linux-gnu/13.2.0/cc1 -E -quiet -v -I . -iprefix /gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/m68k-linux-gnu/13.2.0/ -D _XOPEN_SOURCE=600 -D _BSD_SOURCE -D _DEFAULT_SOURCE -D _GNU_SOURCE -D HAVE_CONFIG_H misc-cutdown.c -mcpu=68020 -freport-bug -fno-strict-aliasing -ftrapv -fzero-call-used-regs=used -ftrivial-auto-var-init=zero -fno-builtin-memset -fstack-protector-strong -fPIE -g -fworking-directory -O2 -fpch-preprocess -o misc-cutdown.i ignoring duplicate directory "/gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/../../lib/gcc/m68k-linux-gnu/13.2.0/include" ignoring nonexistent directory "/cross/linux-m68k/usr/local/include" ignoring duplicate directory "/gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/../../lib/gcc/m68k-linux-gnu/13.2.0/include-fixed" ignoring duplicate directory "/gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/../../lib/gcc/m68k-linux-gnu/13.2.0/../../../../m68k-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: . /gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/m68k-linux-gnu/13.2.0/include /gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/m68k-linux-gnu/13.2.0/include-fixed /gar/packages/gcc-m68k-13.2.0/bin/../lib/gcc/m68k-linux-gnu/13.2.0/../../../../m68k-linux-gnu/include /cross/linux-m68k/usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-freport-bug' '-g' '-O2' '-fno-strict-aliasing' '-ftrapv' '-fzero-call-used-regs=used' '-ftrivial-auto-var-init=zero' '-fno-builtin-memset' '-fstack-protector-strong' '-fPIE' '-I' '.' '-D' '_XOPEN_SOURCE=600' '-D' '_BSD_SOURCE' '-D' '_DEFAULT_SOURCE' '-D' '_GNU_SOURCE' '-D' 'HAVE_CONFIG_H' '-o' 'misc-cutdown.o' '-c' '-mcpu=68020' /gar/packages/gcc-m68k-13.2.0/bin/../libexec/gcc/m68k-linux-gnu/13.2.0/cc1 -fpreprocessed misc-cutdown.i -quiet -dumpbase misc-cutdown.c -dumpbase-ext .c -mcpu=68020 -g -O2 -version -freport-bug -fno-strict-aliasing -ftrapv -fzero-call-used-regs=used -ftrivial-auto-var-init=zero -fno-builtin-memset -fstack-protector-strong -fPIE -o misc-cutdown.s GNU C17 (GCC) version 13.2.0 (m68k-linux-gnu) compiled by GNU C version 13.2.0, GMP version 6.3.0, MPFR ver
[Bug target/120070] New: m68k-linux-gnu-gcc -Os ICE segfault compiling xfs_trans_ail.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120070 Bug ID: 120070 Summary: m68k-linux-gnu-gcc -Os ICE segfault compiling xfs_trans_ail.c Product: gcc Version: 15.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ats-gccbugs at offog dot org Target Milestone: --- Created attachment 61275 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61275&action=edit Minimised example The attached example was minimised using cvise from Linux 6.14.5's fs/xfs/xfs_trans_ail.c. It causes a segfault when being compiled for m68k-linux-gnu with -Os, both using a cross-compiler from x86-64 and natively on m68k. $ m68k-linux-gnu-gcc -v -Os -c in3.c Using built-in specs. COLLECT_GCC=m68k-linux-gnu-gcc Target: m68k-linux-gnu Configured with: /src/devel/gcc-m68k/work/gcc-15.1.0/configure --prefix=/gar --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/com --target=m68k-linux-gnu --with-sysroot=/cross/linux-m68k --disable-libssp --disable-libcc1 --disable-multilib --with-system-zlib --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ Thread model: posix Supported LTO compression algorithms: zlib gcc version 15.1.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-Os' '-c' '-mcpu=68020' /gar/packages/gcc-m68k-15.1.0/bin/../libexec/gcc/m68k-linux-gnu/15.1.0/cc1 -quiet -v -iprefix /gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/m68k-linux-gnu/15.1.0/ in3.c -quiet -dumpbase in3.c -dumpbase-ext .c -mcpu=68020 -Os -version -o /tmp/ccYE2g4p.s GNU C23 (GCC) version 15.1.0 (m68k-linux-gnu) compiled by GNU C version 15.1.0, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring duplicate directory "/gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/../../lib/gcc/m68k-linux-gnu/15.1.0/include" ignoring nonexistent directory "/cross/linux-m68k/usr/local/include" ignoring duplicate directory "/gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/../../lib/gcc/m68k-linux-gnu/15.1.0/include-fixed" ignoring duplicate directory "/gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/../../lib/gcc/m68k-linux-gnu/15.1.0/../../../../m68k-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/m68k-linux-gnu/15.1.0/include /gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/m68k-linux-gnu/15.1.0/include-fixed /gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/m68k-linux-gnu/15.1.0/../../../../m68k-linux-gnu/include /cross/linux-m68k/usr/include End of search list. Compiler executable checksum: 934e09e57f147491320a4df4b8da0612 during RTL pass: reload in3.c: In function ‘xfsaild’: in3.c:32:1: internal compiler error: Segmentation fault 32 | } | ^ 0x7fb219ef977f ??? /src/sys/glibc/work/5b4c4617016d28569106549dff6f9fec73eed5ce/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0 0x7fb219ee3db4 __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 0x7fb219ee3e66 __libc_start_main_impl ../csu/libc-start.c:360 0xcb6010 _start ../sysdeps/x86_64/start.S:115 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. The backtrace there doesn't look very helpful, so here's one from gdb: $ gdb --args /gar/packages/gcc-m68k-15.1.0/bin/../libexec/gcc/m68k-linux-gnu/15.1.0/cc1 -quiet -v -iprefix /gar/packages/gcc-m68k-15.1.0/bin/../lib/gcc/m68k-linux-gnu/15.1.0/ in3.c -quiet -dumpbase in3.c -dumpbase-ext .c -mcpu=68020 -Os -version -o /tmp/ccjA6b45.s GNU gdb (GDB) 16.3 (gdb) run [... same output as above ...] Compiler executable checksum: 934e09e57f147491320a4df4b8da0612 Program received signal SIGSEGV, Segmentation fault. 0x00f5ff7d in df_install_refs(basic_block_def*, vec const*, df_reg_info**, df_ref_info*, bool) () (gdb) where #0 0x00f5ff7d in df_install_refs(basic_block_def*, vec const*, df_reg_info**, df_ref_info*, bool) () #1 0x00f6014f in df_refs_add_to_chains(df_collection_rec*, basic_block_def*, rtx_insn*, unsigned int) () #2 0x00f62064 in df_bb_refs_record(int, bool) () #3 0x00f5bb21 in df_scan_blocks() () #4 0x01284179 in do_reload() () #5 0x01284447 in (anonymous namespace)::pass_reload::execute(function*) () #6 0x013e4563 in execute_one_pass(opt_pass*) () #7 0x013e492e in execute_pass_list_1(opt_pass*) () #8 0x013e495f in execute_pass_list_1(opt_pass*) () #9 0x013e49b8 in execute_pass_list(function*, opt_pass*) () #10 0x00f2cebe in cgraph_node::expand() () #11 0x00f2d
[Bug c++/120075] New: -Wuninitialized warning with internal "SR" variable name, compiling hb-subset-plan-layout.cc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120075 Bug ID: 120075 Summary: -Wuninitialized warning with internal "SR" variable name, compiling hb-subset-plan-layout.cc Product: gcc Version: 15.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ats-gccbugs at offog dot org Target Milestone: --- Created attachment 61276 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61276&action=edit Minimised example The attached example in4.cc is minimised with cvise from Harfbuzz 11.2.0's src/hb-subset-plan-layout.cc, being compiled on arm-linux-gnueabihf. (I'll also attach the non-minimised version in1.cc, in case minimisation has introduced additional warnings.) Cross-compiling or native-compiling in4.cc with arm-linux-gnueabihf-g++ -O2 -Wuninitialized -g produces "warning: ‘SR.7’ is used uninitialized" - i.e. a warning with a GCC-generated internal variable name. Full output below. I tried cross-compiling the minimised file for other targets: it does the same for i686-pc-linux-gnu, but produces a warning with a correct variable name (and a different location) for all other targets. The real Harfbuzz code compiled cleanly on all platforms except arm-linux-gnueabihf. $ arm-linux-gnueabihf-g++ -v -O2 -Wuninitialized -g -c in4.cc Using built-in specs. COLLECT_GCC=arm-linux-gnueabihf-g++ Target: arm-linux-gnueabihf Configured with: /src/devel/gcc-armv7/work/gcc-15.1.0/configure --prefix=/gar --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/com --target=arm-linux-gnueabihf --with-sysroot=/cross/linux-armv7 --disable-libssp --disable-libcc1 --disable-multilib --with-system-zlib --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 Thread model: posix Supported LTO compression algorithms: zlib gcc version 15.1.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-O2' '-Wuninitialized' '-g' '-c' '-shared-libgcc' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mtls-dialect=gnu' '-marm' '-mlibarch=armv7-a+fp' '-march=armv7-a+fp' /gar/packages/gcc-armv7-15.1.0/bin/../libexec/gcc/arm-linux-gnueabihf/15.1.0/cc1plus -quiet -v -iprefix /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/ -D_GNU_SOURCE in4.cc -quiet -dumpbase in4.cc -dumpbase-ext .cc -mfloat-abi=hard -mfpu=vfpv3-d16 -mtls-dialect=gnu -marm -mlibarch=armv7-a+fp -march=armv7-a+fp -g -O2 -Wuninitialized -version -o /tmp/ccw0kyGy.s GNU C++17 (GCC) version 15.1.0 (arm-linux-gnueabihf) compiled by GNU C version 15.1.0, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring duplicate directory "/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0" ignoring duplicate directory "/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/arm-linux-gnueabihf" ignoring duplicate directory "/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/backward" ignoring duplicate directory "/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/include" ignoring nonexistent directory "/cross/linux-armv7/usr/local/include" ignoring duplicate directory "/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/include-fixed" ignoring duplicate directory "/gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include" #include "..." search starts here: #include <...> search starts here: /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0 /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/arm-linux-gnueabihf /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include/c++/15.1.0/backward /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/include /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/include-fixed /gar/packages/gcc-armv7-15.1.0/bin/../lib/gcc/arm-linux-gnueabihf/15.1.0/../../../../arm-linux-gnueabihf/include /cross/linux-armv7/usr/include End of search list. Compiler executable checksum: 2346e57d66b2417563d1c0228a0b0866 In constructor ‘hb_map_i
[Bug c++/120075] -Wuninitialized warning with internal "SR" variable name, compiling hb-subset-plan-layout.cc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120075 --- Comment #1 from Adam Sampson --- Created attachment 61277 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61277&action=edit Non-minimised example
[Bug target/120070] [15/16 regression] m68k-linux-gnu-gcc -Os ICE segfault compiling xfs_trans_ail.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120070 --- Comment #6 from Adam Sampson --- Created attachment 61518 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61518&action=edit Minimised example 2 I've just run into a second example of this while crossbuilding libzip 1.11.4 - the attached pr120070b.c is minimised from zip_hash.c. "m68k-linux-gnu-gcc -O2 -c pr120070b.c" produces an ICE in the same place, and looking at -fdump-rtl-all output shows that reload is producing "(reg:DI -1 [+-4 ])" as above. Adding -mrla fixes it.
[Bug objc/121031] New: if condition misparsed as declaration in Objective C method
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121031 Bug ID: 121031 Summary: if condition misparsed as declaration in Objective C method Product: gcc Version: 15.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: objc Assignee: unassigned at gcc dot gnu.org Reporter: ats-gccbugs at offog dot org CC: iains at gcc dot gnu.org Target Milestone: --- Created attachment 61836 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61836&action=edit Minimised example The attached example is minimised from Oolite's OOPriorityQueue.m. There are a couple of cases in Oolite where GCC 15.1.0 is apparently misparsing a straightforward if condition as a pointer declaration (https://github.com/OoliteProject/oolite/pull/520) - adding brackets around the LHS makes it happy. Compiling with GCC 15.1.0 fails like this: $ gcc -v -c ifparse.m Using built-in specs. COLLECT_GCC=gcc Target: x86_64-pc-linux-gnu Configured with: /src/devel/gcc/work/gcc-15.1.0/configure --prefix=/gar --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/com --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --enable-__cxa_atexit --enable-threads=posix --enable-shared --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --with-local-prefix=/gar --disable-multilib --with-system-zlib Thread model: posix Supported LTO compression algorithms: zlib gcc version 15.1.0 (GCC) COLLECT_GCC_OPTIONS='-v' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' /gar/packages/gcc-15.1.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/15.1.0/cc1obj -quiet -v -iprefix /gar/packages/gcc-15.1.0/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.0/ ifparse.m -quiet -dumpbase ifparse.m -dumpbase-ext .m -mtune=generic -march=x86-64 -version -o /tmp/cccqBcCZ.s GNU Objective-C (GCC) version 15.1.0 (x86_64-pc-linux-gnu) compiled by GNU C version 15.1.0, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.18-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory "/gar/packages/gcc-15.1.0/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.0/../../../../x86_64-pc-linux-gnu/include" ignoring duplicate directory "/gar/packages/gcc-15.1.0/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/15.1.0/include" ignoring duplicate directory "/gar/packages/gcc-15.1.0/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/15.1.0/include-fixed" ignoring nonexistent directory "/gar/packages/gcc-15.1.0/bin/../lib/gcc/../../lib/gcc/x86_64-pc-linux-gnu/15.1.0/../../../../x86_64-pc-linux-gnu/include" ignoring duplicate directory "/usr/include" #include "..." search starts here: #include <...> search starts here: /gar/packages/gcc-15.1.0/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.0/include /gar/packages/gcc-15.1.0/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.0/include-fixed /gar/include End of search list. Compiler executable checksum: 7eea9bb219287c09feb0e71d34f602c8 ifparse.m:13:1: warning: class ‘OOPriorityQueue’ defined without specifying a base class [-Wobjc-root-class] 13 | - (void)removeObjectAtIndex:(int)i | ^ ifparse.m: In function ‘-[OOPriorityQueue removeObjectAtIndex:]’: ifparse.m:15:13: error: unknown type name ‘_count’ 15 | if (_count * 2 < _count) | ^~ ifparse.m:15:22: error: expected identifier or ‘(’ before numeric constant 15 | if (_count * 2 < _count) | ^ ifparse.m:15:13: error: declaration in the controlling expression must have an initializer 15 | if (_count * 2 < _count) | ^~ Here's this example on Compiler Explorer: https://godbolt.org/z/5sfvxTbWe It fails there with trunk and 15.1.0, and works with 14.3 and older versions.