https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118771
Bug ID: 118771
Summary: [15 regression] aarch64 bootstrap fails unless
--disable-werror
Product: gcc
Version: 15.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: mikpelinux at gmail dot com
Target Milestone: ---
Attempting to bootstrap gcc-15-20250202 on aarch64-linux-gnu fails with:
/mnt/scratch/objdir15/./prev-gcc/xg++ -B/mnt/scratch/objdir15/./prev-gcc/
-B/mnt/scratch/install15/aarch64-unknown-linux-gnu/bin/ -nostdinc++
-B/mnt/scratch/objdir15/prev-aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/mnt/scratch/objdir15/prev-aarch64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/mnt/scratch/objdir15/prev-aarch64-unknown-linux-gnu/libstdc++-v3/include/aarch64-unknown-linux-gnu
-I/mnt/scratch/objdir15/prev-aarch64-unknown-linux-gnu/libstdc++-v3/include
-I/mnt/scratch/gcc-15-20250202/libstdc++-v3/libsupc++
-L/mnt/scratch/objdir15/prev-aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/mnt/scratch/objdir15/prev-aarch64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-fno-PIE -c -g -O2 -fno-checking -gtoggle -DIN_GCC -fno-exceptions
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-error=narrowing
-Wwrite-strings -Wcast-qual -Wmissing-format-attribute
-Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -Werror -DHAVE_CONFIG_H -fno-PIE
-I. -I. -I/mnt/scratch/gcc-15-20250202/gcc -I/mnt/scratch/gcc-15-20250202/gcc/.
-I/mnt/scratch/gcc-15-20250202/gcc/../include
-I/mnt/scratch/gcc-15-20250202/gcc/../libcpp/include
-I/mnt/scratch/gcc-15-20250202/gcc/../libcody
-I/home/mikpe/pkgs/linux-aarch64/gmp-6.3.0/include
-I/home/mikpe/pkgs/linux-aarch64/mpfr-4.2.1/include
-I/home/mikpe/pkgs/linux-aarch64/mpc-1.3.1/include
-I/mnt/scratch/gcc-15-20250202/gcc/../libdecnumber
-I/mnt/scratch/gcc-15-20250202/gcc/../libdecnumber/bid -I../libdecnumber
-I/mnt/scratch/gcc-15-20250202/gcc/../libbacktrace -o aarch64.o -MT aarch64.o
-MMD -MP -MF ./.deps/aarch64.TPo
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc: In function
'fractional_cost aarch64_detect_vector_stmt_subtype(vec_info*,
vect_cost_for_stmt, stmt_vec_info, slp_tree, tree, vect_cost_model_location,
fractional_cost)':
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc:17148:29: warning:
narrowing conversion of '(int)sve_costs->sve_vec_cost::gather_load_x64_cost'
from 'int' to 'uint32_t' {aka 'unsigned int'} [-Wnarrowing]
17148 | return { sve_costs->gather_load_x64_cost, nunits };
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc:17149:27: warning:
narrowing conversion of '(int)sve_costs->sve_vec_cost::gather_load_x32_cost'
from 'int' to 'uint32_t' {aka 'unsigned int'} [-Wnarrowing]
17149 | return { sve_costs->gather_load_x32_cost, nunits };
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc: In function 'void
aarch64_split_move(rtx, rtx, machine_mode)':
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc:3418:31: error:
'*(rtx_def**)((char*)&dst_pieces + offsetof(auto_vec<rtx_def*,
4>,auto_vec<rtx_def*, 4>::m_data[0]))' may be used uninitialized
[-Werror=maybe-uninitialized]
3418 | if (reg_overlap_mentioned_p (dst_pieces[0], src))
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/mnt/scratch/gcc-15-20250202/gcc/config/aarch64/aarch64.cc:3408:20: note:
'dst_pieces' declared here
3408 | auto_vec<rtx, 4> dst_pieces, src_pieces;
| ^~~~~~~~~~
cc1plus: all warnings being treated as errors
make[3]: *** [Makefile:2716: aarch64.o] Error 1
make[3]: Leaving directory '/mnt/scratch/objdir15/gcc'
make[2]: *** [Makefile:5099: all-stage2-gcc] Error 2
make[2]: Leaving directory '/mnt/scratch/objdir15'
make[1]: *** [Makefile:29342: stage2-bubble] Error 2
make[1]: Leaving directory '/mnt/scratch/objdir15'
make: *** [Makefile:29546: bootstrap] Error 2
This has been going on since at least gcc-15-20241117, gcc-15-20241103 and
earlier built fine, gcc-14 builds fine.
The build passes if I configure with --disable-werror.
The host is aarch64-linux-gnu, Fedora 41 (Asahi spin), Apple M1 mini. The host
compiler is based on gcc-13.3.1 20241004.
Full configuration line:
/mnt/scratch/gcc-15-20250202/configure --enable-languages=c,ada,c++,d,m2
--enable-shared --enable-treads=posix --enable-checking=release
--enable-multilib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id
--with-linker-hash-style=gnu --disable-plugin --enable-initfini-array
--enable-gnu-indirect-function --build=aarch64-unknown-linux-gnu
--prefix=/mnt/scratch/install15
--with-gmp=/home/mikpe/pkgs/linux-aarch64/gmp-6.3.0
--with-mpfr=/home/mikpe/pkgs/linux-aarch64/mpfr-4.2.1
--with-mpc=/home/mikpe/pkgs/linux-aarch64/mpc-1.3.1 --without-isl --disable-lto
--disable-nls --disable-libmudflap --enable-libsanitizer