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.