https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89274
Bug ID: 89274 Summary: Inconsistent list directed output of INTEGER(16) Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran Assignee: unassigned at gcc dot gnu.org Reporter: dominiq at lps dot ens.fr CC: jvdelisle at gcc dot gnu.org Target Milestone: --- The following test integer(8) :: i(2) integer(16) :: j(2) i = -huge(1) print *, i i = -huge(1_8) print *, i j = huge(1) print *, j j = huge(1_8) print *, j j = huge(1_16) print *, j j = -huge(1) print *, j j = -huge(1_8) print *, j j = -huge(1_16) print *, j end gives at run time -2147483647 -2147483647 -9223372036854775807 -9223372036854775807 2147483647 2147483647 9223372036854775807 9223372036854775807 170141183460469231731687303715884105727 170141183460469231731687303715884105727 -2147483647 -2147483647 -9223372036854775807 -9223372036854775807 -170141183460469231731687303715884105727 -170141183460469231731687303715884105727 since at least 4.8 up to trunk (9.0). After applying the following patch --- ../_clean/libgfortran/io/write.c 2019-01-01 13:40:19.000000000 +0100 +++ libgfortran/io/write.c 2019-02-10 11:03:35.000000000 +0100 @@ -1342,6 +1342,10 @@ write_integer (st_parameter_dt *dtp, con width = 20; break; + case 16: + width = 40; + break; + default: width = 0; break; one gets -2147483647 -2147483647 -9223372036854775807 -9223372036854775807 2147483647 2147483647 9223372036854775807 9223372036854775807 170141183460469231731687303715884105727 170141183460469231731687303715884105727 -2147483647 -2147483647 -9223372036854775807 -9223372036854775807 -170141183460469231731687303715884105727 -170141183460469231731687303715884105727