This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, fortran] PR35759 - WHERE with overlap with ELSEWHERE error
- From: "Paul Richard Thomas" <paul dot richard dot thomas at gmail dot com>
- To: "Dominique Dhumieres" <dominiq at lps dot ens dot fr>, "Fortran List" <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 1 Apr 2008 07:30:20 +0200
- Subject: Re: [Patch, fortran] PR35759 - WHERE with overlap with ELSEWHERE error
- References: <339c37f20803301230g7bbe6d9bmc3484fae78539744@mail.gmail.com> <339c37f20803310430p77cf3277g7f1e7f1091006726@mail.gmail.com> <20080331163255.073C53BE7B@mailhost.lps.ens.fr> <339c37f20803311006ma2265a6v447214137f0e704d@mail.gmail.com> <20080331172815.64D4F3BE71@mailhost.lps.ens.fr> <339c37f20803311034i15e57996safdd4550a50efba6@mail.gmail.com> <20080331213838.9DB7C3BE71@mailhost.lps.ens.fr>
Dominique,
Thank you for being stubborn!
On Mon, Mar 31, 2008 at 11:38 PM, Dominique Dhumieres
<dominiq@lps.ens.fr> wrote:
> Paul,
>
> Since I am very stuborn, I tried the following test:
>
> logical :: la(6) = (/(2*(i/2) /= i, i = 1, 6)/), lb(6)
> lb = la
> print *, la
> where(la)
> la = .false.
> elsewhere
> la = .true.
> end where
> print *, la
> if (any(la .eqv. lb)) call abort()
> end
>
> ifort, gfortran 4.3, and g95 give:
>
> T F T F T F
> F T F T F T
>
> with your patch, I get:
>
> T F T F T F
> T T T T T T
> Abort
>
> Dominique
>
Since there are problems with allocatable components, another of
Dick's recent PRs (35745) breaks all manifestations of WHERE and now
this, I'll retire to a safe distance for a while and do a proper job
of it.
Many thanks
Paul