https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118221
--- Comment #5 from Trampas Stern <trampas at gmail dot com> --- The project in attachment is a makefile project. The readme.md has instructions on how to build in windows, by installing xpack utility. If you build in linux then just edit the path to the arm-none-eabi-gcc compiler and path to build tools you want use and then issue `make debug` The build/debug/lora.lst should show the error when built with GCC11 or greater: 0000016c <configure_clocks>: D:\Projects\SECA\LoRa\firmware/src/drivers/sercom/sercom.cpp:102 16c: b500 push {lr} 16e: 4b98 ldr r3, [pc, #608] ; (3d0 <HEAP_SIZE+0x1d0>) 170: 2280 movs r2, #128 ; 0x80 D:\Projects\SECA\LoRa\firmware/src/drivers/sercom/sercom.cpp:106 172: 0052 lsls r2, r2, #1 174: 609a str r2, [r3, #8] D:\Projects\SECA\LoRa\firmware/src/drivers/sercom/sercom.cpp:107 176: 4b97 ldr r3, [pc, #604] ; (3d4 <HEAP_SIZE+0x1d4>) 178: 3afd subs r2, #253 ; 0xfd Specifically the configure_clocks() function does not exist in the sercom.cpp file. When built with GCC 10 tools the results are as expected.