aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/iresolve.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/iresolve.cc')
-rw-r--r--gcc/fortran/iresolve.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/fortran/iresolve.cc b/gcc/fortran/iresolve.cc
index d8b216b..6adc630 100644
--- a/gcc/fortran/iresolve.cc
+++ b/gcc/fortran/iresolve.cc
@@ -2012,6 +2012,20 @@ gfc_resolve_mask (gfc_expr *f, gfc_expr *i ATTRIBUTE_UNUSED,
f->value.function.name = gfc_get_string ("__maskr_i%d", f->ts.kind);
}
+void
+gfc_resolve_umasklr (gfc_expr *f, gfc_expr *i ATTRIBUTE_UNUSED,
+ gfc_expr *kind)
+{
+ f->ts.type = BT_UNSIGNED;
+ f->ts.kind = kind ? mpz_get_si (kind->value.integer)
+ : gfc_default_unsigned_kind;
+
+ if (f->value.function.isym->id == GFC_ISYM_UMASKL)
+ f->value.function.name = gfc_get_string ("__maskl_m%d", f->ts.kind);
+ else
+ f->value.function.name = gfc_get_string ("__maskr_m%d", f->ts.kind);
+}
+
void
gfc_resolve_merge (gfc_expr *f, gfc_expr *tsource,