[Bug fortran/103777] ICE in gfc_simplify_maskl, at fortran/simplify.c:4918

anlauf at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 20 21:38:45 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103777

--- Comment #3 from anlauf at gcc dot gnu.org ---
Minimal fix (for maskl):

diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 90067b6bbe6..45080e8b912 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -4909,6 +4909,9 @@ gfc_simplify_maskl (gfc_expr *i, gfc_expr *kind_arg)
   bool fail = gfc_extract_int (i, &arg);
   gcc_assert (!fail);

+  if (!gfc_check_mask (i, kind_arg))
+    return &gfc_bad_expr;
+
   result = gfc_get_constant_expr (BT_INTEGER, kind, &i->where);

   /* MASKL(n) = 2^bit_size - 2^(bit_size - n) */


More information about the Gcc-bugs mailing list