This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
unsupported f95 syntax
I've offered to post bugzillas on unsupported syntax, but hesitated, not
knowing whether these stereotypes are of any interest. I have seen no
change in their behavior on cygwin or 32-bit linux over the last 3 months.
1. vector subscript syntax, compiler reports "to do:" (discussed
previously on this list)
a(n1:n)= b(n1:n)+c(n-ip(n1:n)+1)*d(n1:n)
2. statement function in forall(), compiler reports as illegal function call
f(x,y)= x*y
forall( i= 1:n)
a(i)= a(i)+f(b(i),c(i))
endforall
This one looks trivial, but is commonly used, because it may be necessary
to have a way to switch in dprod(). Internal functions tend not to be
optimized as well, are relatively clumsy, and probably aren't allowed in
this context.
3. array assignment in forall(), gfortran apparently doesn't initialize
the loop counter, or it gets clobbered, so it seg faults
forall( j= 2:n)
aa(1:j-1,j)= aa(j,1:j-1)+bb(1:j-1,j)
endforall
4. unpack() seg faults
a(:n)= unpack(b,a(:n)>0.,a(:n))
No, I've never seen unpack() used by anyone interested in performance, but
it is in f90 standard, and it replaces about 6 statements of f77 source.
Would any of those make useful bugzilla entries? With full
Levine-Callahan-Dongarra test harness, individual cases, more diagnosis?
Or, should they wait for some future version?
Tim Prince