--- Comment #12 from fxcoudert at gcc dot gnu dot org 2006-10-13 12:20
---
Subject: Bug 29391
Author: fxcoudert
Date: Fri Oct 13 12:20:28 2006
New Revision: 117691
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117691
Log:
PR fortran/29391
* trans-intrinsic.c (
--- Comment #11 from paulthomas2 at wanadoo dot fr 2006-10-12 15:57 ---
Subject: Re: LBOUND(TRANSPOSE(I)) doesn't work
FX
! if (upper)
! {
! cond1 = fold_build2 (GE_EXPR, boolean_type_node, ubound, lbound);
! cond2 = fold_build2 (LE_EXPR, boolean_type_node, uboun
--- Comment #10 from fxcoudert at gcc dot gnu dot org 2006-10-12 13:15
---
Created an attachment (id=12417)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12417&action=view)
New patch
This updated patch is the result of re-reading the Standard about assumed-size
arrays.
--
fxc
--- Comment #9 from fxcoudert at gcc dot gnu dot org 2006-10-12 11:15
---
Created an attachment (id=12416)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12416&action=view)
Patch for LBOUND/UBOUND
This patch fixes this bug completely. It builds fine, regtest and works fine
with a
--- Comment #8 from paulthomas2 at wanadoo dot fr 2006-10-11 08:02 ---
Subject: Re: LBOUND(TRANSPOSE(I)) doesn't work
FX,
>I get all intrinsics that work through temporaries working right:
>
>
>
Great!
>So I only have PRODUCT, SUM, MATMUL, PACK and UNPACK to work on.
>
>
>
>
I wo
--- Comment #7 from fxcoudert at gcc dot gnu dot org 2006-10-11 07:32
---
(In reply to comment #6)
Forget that patch, it's breaking lots of things :(
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29391
--- Comment #6 from fxcoudert at gcc dot gnu dot org 2006-10-11 07:26
---
With the following patch:
Index: trans-array.c
===
--- trans-array.c (revision 117560)
+++ trans-array.c (working copy)
@@ -661,10 +661,
--- Comment #5 from paulthomas2 at wanadoo dot fr 2006-10-11 06:11 ---
Subject: Re: LBOUND(TRANSPOSE(I)) doesn't work
FX,
>
>That's because of F95 13.14.53:
>
>Case (i): For an array section or for an array expression other than a whole
>array or array structure component, LBOUND(ARRA
--- Comment #4 from fxcoudert at gcc dot gnu dot org 2006-10-10 22:04
---
(In reply to comment #3)
> Are you sure that this renormalization of the bounds is required? After all:
> (i) indices should always be realtive to lbound, whatever it is; and
> (ii) why would anybody be interested
--- Comment #3 from pault at gcc dot gnu dot org 2006-10-10 19:36 ---
(In reply to comment #2)
> One last comment: I'm not sure the stride shouldn't be set to one. The patch
> above regtests fine, and can compile correctly everything I threw at it, but
> maybe I have not been clever eno
--- Comment #2 from fxcoudert at gcc dot gnu dot org 2006-10-10 07:31
---
For the TRANSPOSE case, the generated code shows that the {u,l}bounds simply
aren't set right:
$ cat pr29391.f90
integer :: i(-1:1,-1:1)=0, j(2)
j = lbound(transpose(i))
end
$ cat pr29391.f90.003t.original
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2006-10-09 11:39
---
The same thing is true for all the array manipulation functions:
integer :: i(-1:1,-1:1) = 0
integer :: j(-1:2) = 0
! This is working correctly
write(*,*) lbound(i(-1:1,-1:1)), ubound(i(-1:1,-1:1))
wri
--
fxcoudert at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last recon
13 matches
Mail list logo