diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc
index 440cbdd19ab..cfbbb33ec1f 100644
--- a/gcc/fortran/trans-intrinsic.cc
+++ b/gcc/fortran/trans-intrinsic.cc
@@ -4954,6 +4954,8 @@ gfc_conv_intrinsic_minmaxloc (gfc_se * se, gfc_expr * expr, enum tree_code op)
   bool dim_present = dim_arg->expr != nullptr;
   bool nested_loop = dim_present && expr->rank > 0;

+  strip_kind_from_actual (actual);
+
   /* The last argument, BACK, is passed by value. Ensure that
      by setting its name to %VAL. */
   for (gfc_actual_arglist *a = actual; a; a = a->next)
@@ -4993,7 +4995,6 @@ gfc_conv_intrinsic_minmaxloc (gfc_se * se, gfc_expr * expr, enum tree_code op)
       gcc_assert (expr->rank == 0);

       gfc_actual_arglist *a = actual;
-      strip_kind_from_actual (a);
       while (a)
        {
          if (a->name && strcmp (a->name, "dim") == 0)