On Mon, 1 Dec 2014, FX wrote:

> 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?

Sure, will re-test and commit tomorrow.

Thanks,
Richard.

Reply via email to