https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119355
Bug ID: 119355 Summary: ICE / assertion in "during RTL pass: avr-fuse-move" for avr-linux cross-compiler Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: dan at danny dot cz Target Milestone: --- Created attachment 60803 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60803&action=edit preprocessed source Building libgcc for the avr-linux target throws an ICE / assertion. The host is Fedora 40 ppc64le for me, but as https://koji.fedoraproject.org/koji/taskinfo?taskID=130394432 shows, it fails everywhere. Seems the target compiler needs to built with "-Wp,-D_GLIBCXX_ASSERTIONS". [dan@talos libgcc]$ /mnt/dan/gcc-15.0.1-20250313/avr32-linux/./gcc/xgcc -B/mnt/dan/gcc-15.0.1-20250313/avr32-linux/./gcc/ -B/usr/local/avr-linux/bin/ -B/usr/local/avr-linux/lib/avr25/ -isystem /usr/local/avr-linux/include -isystem /usr/local/avr-linux/sys-include -g -O2 -Wall -fexceptions -mmcu=avr25 -O2 -g -O2 -Wall -fexceptions -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-error=narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -Dinhibit_libc -mcall-prologues -Os -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -Dinhibit_libc -mcall-prologues -Os -I. -I. -I../../.././gcc -I../../../../libgcc -I../../../../libgcc/. -I../../../../libgcc/../gcc -I../../../../libgcc/../include -DHAVE_CC_TLS -DUSE_EMUTLS -o _clrsbdi.o -MT _clrsbdi.o -MD -MP -MF _clrsbdi.dep -DL__clrsbdi -DL_LABEL=_clrsbdi -DL_clrsb \ -c ../../../../libgcc/config/avr/lib2funcs.c -fvisibility=hidden -DHIDE_EXPORTS /usr/include/c++/14/array:208: std::array<_Tp, _Nm>::value_type& std::array<_Tp, _Nm>::operator[](size_type) [with _Tp = unsigned char; long unsigned int _Nm = 32; reference = unsigned char&; size_type = long unsigned int]: Assertion '__n < this->size()' failed. during RTL pass: avr-fuse-move ../../../../libgcc/config/avr/lib2funcs.c: In function ‘__clrsbdi2’: ../../../../libgcc/config/avr/lib2funcs.c:164:1: internal compiler error: Neúspěšně ukončen (SIGABRT) 164 | } | ^ 0x12150e1f internal_error(char const*, ...) ../../gcc/diagnostic-global-context.cc:517 0x10d1b523 crash_signal ../../gcc/toplev.cc:322 0x1143ac1f std::array<unsigned char, 32ul>::operator[](unsigned long) /usr/include/c++/14/array:208 0x1143ac1f std::array<unsigned char, 32ul>::operator[](unsigned long) /usr/include/c++/14/array:206 0x1143ac1f apply ../../gcc/config/avr/avr-passes.cc:2202 0x11441eab find_plies ../../gcc/config/avr/avr-passes.cc:2380 0x11443b6f find_plies ../../gcc/config/avr/avr-passes.cc:2437 0x114444b7 run_find_plies ../../gcc/config/avr/avr-passes.cc:2509 0x11447b6b try_split_ldi ../../gcc/config/avr/avr-passes.cc:2699 0x11447b6b optimize_one_block ../../gcc/config/avr/avr-passes.cc:3155 0x1144a7ab optimize_one_function ../../gcc/config/avr/avr-passes.cc:3264 0x1144a7ab execute ../../gcc/config/avr/avr-passes.cc:1243 0x1144a7ab execute ../../gcc/config/avr/avr-passes.cc:1236 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. PS: please ignore the avr32 prefix, it's a packaging oddity in Fedora, should be just avr