https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64432
Bug ID: 64432 Summary: [5 Regression] SYSTEM_CLOCK(COUNT_RATE=rate) wrong result for integer(4)::rate Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: anlauf at gmx dot de I just discovered that the 20141227 snapshot breaks SYSTEM_CLOCK when the COUNT_RATE argument is a 32-bit integer: % cat gfcbug128.f90 program gfcbug128 integer(4) :: count_rate, count_max call system_clock (count_rate=count_rate) call system_clock (count_max=count_max) print *, count_rate, count_max end GNU Fortran (GCC) 5.0.0 20141227 (experimental) produces: % head -11 gfcbug128.f90.003t.original gfcbug128 () { integer(kind=4) count_max; integer(kind=4) count_rate; { integer(kind=8) count_rate.0; _gfortran_system_clock_8 (0B, &count_rate.0, 0B); count_rate = (integer(kind=4)) count_rate.0; _gfortran_system_clock_4 (0B, 0B, &count_max); whereas my 4.9 or other older installations give: % head -7 gfcbug128.f90.003t.original-49 gfcbug128 () { integer(kind=4) count_max; integer(kind=4) count_rate; _gfortran_system_clock_4 (0B, &count_rate, 0B); _gfortran_system_clock_4 (0B, 0B, &count_max); On my Linux system, the _4 version has count_rate=1000, the _8 version is 1000000. :-(