This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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: [Patch, fortran] PR32962 - b = conjg(transpose(a)) is erroneous if b is an allocatable array


:REVIEWMAIL:

2007-08-12 Paul Thomas <pault@gcc.gnu.org>

   PR fortran/32962
   * trans-array.c (gfc_conv_array_transpose): Set the offset
   of the destination to zero if the loop is zero based.

OK, except for:


*************** gfc_conv_loop_setup (gfc_loopinfo * loop
*** 3220,3226 ****
  	  /* Criteria for choosing a loop specifier (most important first):
  	     doesn't need realloc
  	     stride of one
! 	     known stride
  	     known lower bound
  	     known upper bound
  	   */
--- 3225,3231 ----
  	  /* Criteria for choosing a loop specifier (most important first):
  	     doesn't need realloc
  	     stride of one
! 	     known stride (preferably a variable)
  	     known lower bound
  	     known upper bound
  	   */

Do you want this, or is this, like the following, part of another patch?


*************** gfc_conv_loop_setup (gfc_loopinfo * loop
*** 3232,3237 ****
--- 3237,3248 ----
  	  else if (INTEGER_CST_P (info->stride[n])
  		   && !INTEGER_CST_P (specinfo->stride[n]))
  	    loopspec[n] = ss;
+ #if 0
+ 	  else if (INTEGER_CST_P (info->stride[n])
+ 		   && ss->type != EXPR_FUNCTION
+ 		   && loopspec[n]->expr->expr_type == EXPR_FUNCTION)
+ 	    loopspec[n] = ss;
+ #endif
  	  else if (INTEGER_CST_P (info->start[n])
  		   && !INTEGER_CST_P (specinfo->start[n]))
  	    loopspec[n] = ss;


Thanks!
FX


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