! from pr66311.f90 ! must be compiled and run with sanitized libgfortran !../../../gcc-150221/libgfortran/io/write.c:835:7: runtime error: negation of 0x80000000000000000000000000000000 cannot be represented in type '__int128'; cast to an unsigned type to negate this value to itself !../../../gcc-150221/libgfortran/runtime/string.c:199:11: runtime error: negation of 0x80000000000000000000000000000000 cannot be represented in type '__int128'; cast to an unsigned type to negate this value to itself use iso_fortran_env, only : ikinds => integer_kinds integer, parameter :: k = ikinds(size(ikinds)) write(*,*) -huge(0_k)-1 end
Good, I can confirm that. The code contains a comment about it: if (n < 0) { negative = 1; t = -n; /*must use unsigned to protect from overflow*/ } Full back-trace: /home/marxin/Programming/gcc2/libgfortran/io/write.c:835:7: runtime error: negation of 0x80000000000000000000000000000000 cannot be represented in type '__int128'; cast to an unsigned type to negate this value to itself #0 0x7ffff7844eec in write_decimal /home/marxin/Programming/gcc2/libgfortran/io/write.c:835 #1 0x7ffff7846d56 in write_integer /home/marxin/Programming/gcc2/libgfortran/io/write.c:1369 #2 0x7ffff7849b34 in list_formatted_write_scalar /home/marxin/Programming/gcc2/libgfortran/io/write.c:1894 #3 0x7ffff784a5eb in _gfortrani_list_formatted_write /home/marxin/Programming/gcc2/libgfortran/io/write.c:1972 #4 0x7ffff7812440 in wrap_scalar_transfer /home/marxin/Programming/gcc2/libgfortran/io/transfer.c:2382 #5 0x7ffff7812487 in _gfortran_transfer_integer /home/marxin/Programming/gcc2/libgfortran/io/transfer.c:2393 #6 0x7ffff78124b7 in _gfortran_transfer_integer_write /home/marxin/Programming/gcc2/libgfortran/io/transfer.c:2399 #7 0x400873 in check.0 (/home/marxin/Programming/testcases/a.out+0x400873) #8 0x4008b0 in MAIN__ (/home/marxin/Programming/testcases/a.out+0x4008b0) #9 0x4008e7 in main (/home/marxin/Programming/testcases/a.out+0x4008e7) #10 0x7ffff54edb24 in __libc_start_main (/lib64/libc.so.6+0x27b24) #11 0x40072d in _start (/home/marxin/Programming/testcases/a.out+0x40072d) @Janne: Can you please take a look?
Will be fixed by patch at https://gcc.gnu.org/pipermail/fortran/2021-December/057218.html
Fixed.