https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66193
--- Comment #6 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- The problem manifests itself in reduce_binary_ca. This function gets handed an array constructor of type real whose elements are integer. This makes no sense. (gdb) p *op1 $6 = {expr_type = EXPR_CONSTANT, ts = {type = BT_REAL, kind = 4, ... (gdb) p *op2 $7 = {expr_type = EXPR_ARRAY, ts = {type = BT_REAL, kind = 4, u = {derived = 0x0, cl = 0x0, pad = 0}, ... (gdb) p *(c->expr) $9 = {expr_type = EXPR_CONSTANT, ts = {type = BT_INTEGER, kind = 4, u = {derived = 0x0, cl = 0x0, So the real error is somewhere else.