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.

Reply via email to