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