This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch, fortran] PR32962 - b = conjg(transpose(a)) is erroneous if b is an allocatable array
- From: FX Coudert <fxcoudert at gmail dot com>
- To: Paul Thomas <paulthomas2 at wanadoo dot fr>
- Cc: Fortran List <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Sun, 12 Aug 2007 20:31:04 +0100
- Subject: Re: [Patch, fortran] PR32962 - b = conjg(transpose(a)) is erroneous if b is an allocatable array
- Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:in-reply-to:references:mime-version:content-type:message-id:cc:content-transfer-encoding:from:subject:date:to:x-mailer; b=Q3dZCVQU/ueU5YwKjXA8YcP8zMEJGM++A5aVR37BkbEmcp+MJdAXtfT/BJjuouDH2NFDHjx17AGhT5PBZsRYILTa1qO6k+UNJVvol7Jzv56o2rDeerDAJN7e0GRQIzFPlRBxBswyieP+2Vt2ohOTvWTL1IkLvepzbb94n1alLCQ=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:in-reply-to:references:mime-version:content-type:message-id:cc:content-transfer-encoding:from:subject:date:to:x-mailer; b=FVAjwSwsj4sKz3K8Niy+ziQTda+AxZDFRnSApFgUL+ayvtJzi1T01Cjiz9B1EHEyZZFqJWnMyVTnboO8txVes2J+Fo7EW8zY9j5Lf7DUfAPhyDAqu3TooPwRZOBSYkubE6XltTnBdIuSEbNLxzxjYpRU0h7H8F632ZjmZYI1NiU=
- References: <46BEF200.4010705@wanadoo.fr>
: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