This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [fortran patch] Don't use TREE_LISTs for storing arguments to intrinsic functions

Hi Lee,

Sorry it took so much time for me to take time and read through your new patch, but here I am... The patch is OK, with the following modifications:

* your testcases need to have a "! { dg-do run }" (without quotes) line; every Fortran source file in gcc/testsuite/gfortran.dg should have at least a dg-do directive (compile, link, run, ...)

* once again, you have a problem with gfc_conv_intrinsic_minmax:
   mvar = gfc_create_var (type, "M");
   elsecase = build2_v (MODIFY_EXPR, mvar, limit);
-  for (arg = TREE_CHAIN (arg), i = 0, argexpr = argexpr->next;
-       arg != NULL_TREE; arg = TREE_CHAIN (arg), i++)
+  for (i = 0; i < nargs; i++)
       tree cond;
The new loop should be changed into "for (i = 1; i < nargs; i++)"; for MIN or MAX, we generate a series of comparisons; the first comparison is to compare arg[1] with arg[0], not arg[0] with itself.

Other than that, I've not spotted any error. Of course, these long mechanical patches tend to be hard to write and review, and thus prone to errors; please keep in touch with the fortran mailing-list in the next week so that you can quickly spot any suspicious issue.

Thanks again for your hard work,

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]