https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118406
Bug ID: 118406 Summary: Printing large UNSIGNED(kind=16) crashes Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: anlauf at gcc dot gnu.org Target Milestone: --- While preparing some testcases, I hit the following: program print_large_unsigned print *, uint (huge(0_16),16) ! OK ! 170141183460469231731687303715884105727 print *, uint (huge(0_16),16) + & uint (huge(0_8), 16) * uint (huge(0_4),16) ! OK ! 170141183480276272351030016075267833856 print *, uint (huge(0_16),16) / 2U_16 * 3U_16 ! crash ! expect: 255211775190703847597530955573826158590 print *, huge(0U_16) ! crash ! expect: 340282366920938463463374607431768211455 end gfc-15 pr-unsigned.f90 -funsigned -static-libgfortran -g && ./a.out 170141183460469231731687303715884105727 170141183480276272351030016075267833856 a.out: ../../../gcc-trunk/libgfortran/runtime/string.c:254: gfc_itoa: Assertion `n <= UINT64_MAX' failed. Program received signal SIGABRT: Process abort signal. Backtrace for this error: #0 0x7fd7dd05797f in ??? #1 0x7fd7dd0a949c in ??? #2 0x7fd7dd0578c1 in ??? #3 0x7fd7dd03f64e in ??? #4 0x7fd7dd03f566 in ??? #5 0x7fd7dd04fbb1 in ??? #6 0x40f69a in write_decimal_unsigned at ../../../gcc-trunk/libgfortran/io/write.c:995 #7 0x414acd in write_unsigned at ../../../gcc-trunk/libgfortran/io/write.c:1581 #8 0x414acd in list_formatted_write_scalar at ../../../gcc-trunk/libgfortran/io/write.c:2123 #9 0x402a11 in print_large_unsigned at /home/anlauf/gcc-bugs/pr-unsigned.f90:9 #10 0x402ab7 in main at /home/anlauf/gcc-bugs/pr-unsigned.f90:14