https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69514
lkrupp at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lkrupp at gcc dot gnu.org --- Comment #3 from lkrupp at gcc dot gnu.org --- This slightly simpler program reproduces the problem at version 7.0: program p implicit none real, parameter :: w(1) = 3.0 * [ real :: 2 ] write(*,*) w end program p The problem seems to be that the constructed array is REAL (in ts.type field) and its element 2 is an INTEGER, but the 3.0 and 2 are multiplied (in gfc_arith_times) as if both were REAL.