https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113799
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |7.5.0, 8.5.0, 9.5.0 --- Comment #6 from anlauf at gcc dot gnu.org --- It appears that we have an inconsistency in the handling of arithmetic errors during simplification. check_result has: if (val == ARITH_OK || val == ARITH_OVERFLOW) *rp = r; else gfc_free_expr (r); while reduce_unary has: for (c = gfc_constructor_first (head); c; c = gfc_constructor_next (c)) { rc = reduce_unary (eval, c->expr, &r); if (rc != ARITH_OK) break; gfc_replace_expr (c->expr, r); } With -fno-range-check, ARITH_OVERFLOW does not appear.