https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105371
--- Comment #4 from anlauf at gcc dot gnu.org ---
The following untested hackish patch leads to the same answer for both cases:
diff --git a/gcc/fortran/simplify.cc b/gcc/fortran/simplify.cc
index 233cc42137f..abd93956217 100644
--- a/gcc/fortran/simplify.cc
+++ b/gcc/fortran/simplify.cc
@@ -4946,7 +4946,8 @@ gfc_simplify_merge (gfc_expr *tsource, gfc_expr *fsource,
gfc_expr *mask)
{
result = gfc_copy_expr (mask->value.logical ? tsource : fsource);
/* Parenthesis is needed to get lower bounds of 1. */
- result = gfc_get_parentheses (result);
+ if (result->rank)
+ result = gfc_get_parentheses (result);
gfc_simplify_expr (result, 1);
return result;
}
Thing is, I have to find a compiler that gives the result the reporter expects.
E.g. Intel 2021.5 prints
1
for both cases.