Your change is OK (we don’t want to use the type of the result, but the type of 
the argument indeed).


> Index: gcc/fortran/trans-intrinsic.c
> ===================================================================
> --- gcc/fortran/trans-intrinsic.c     (revision 218211)
> +++ gcc/fortran/trans-intrinsic.c     (working copy)
> @@ -3729,7 +3729,7 @@ gfc_conv_intrinsic_minmaxloc (gfc_se * s
>      possible value is HUGE in both cases.  */
>   if (op == GT_EXPR)
>     tmp = fold_build1_loc (input_location, NEGATE_EXPR, TREE_TYPE (tmp), tmp);
> -  if (op == GT_EXPR && expr->ts.type == BT_INTEGER)
> +  if (op == GT_EXPR && arrayexpr->ts.type == BT_INTEGER)
>     tmp = fold_build2_loc (input_location, MINUS_EXPR, TREE_TYPE (tmp), tmp,
>                          build_int_cst (type, 1));


Logic would dictate that it is "build_int_cst (TREE_TYPE (tmp), 1)” instead of 
"build_int_cst (type, 1)” in that last line. Probably doesn’t matter much, as 
it will be all folded into the same value anyway, but could you test and commit 
that change together, while you’re at it?


Thanks,
FX

Reply via email to