[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: fortran compiler bug



Steven Jones wrote:

We seem to be having issues getting a bug registered....the site listed
is somewhat obtuse with its instructions...

:(
Sorry that you are having problems with reporting the bug. The following are the relevant links.

To report a bug open an account in gcc bugzilla by going to http://gcc.gnu.org/bugzilla/ . After that login with this account and click on the 'new' link in the 'actions:' tab. Before doing this just search the previous bug reports if your problem is already reported. Next choose the product - say gcc. In that page you can enter your bug report and the important things are to choose version, component. If it is a fortran bug, choose fortran or libfortran whichever is relevant. If you are not sure, just choose fortran and the maintainers will reassign it appropriately if there is a mistake.


Also there is a gfortran mailing list (http://gcc.gnu.org/lists.html) if you are interested. The archives of this mailing list are located at http://gcc.gnu.org/ml/fortran/

How did it go?

Internal compiler error on my favourite program for timing, which
compiles and runs with 4 other compilers (mahoe f95 and nagf95, and Sun
f95 and g95), and I don't understand the detail of how gfortran wants
bugs reported :-( because I don't know what the bug-reporting web site
   http://gcc.gnu.org/bugzilla/enter_bug.cgi
means by host,target and build triplets.

The program:

jabber:~/Jfh% cat testspeed.f90
INTEGER,PARAMETER::DP=KIND(1.0d0)
REAL(DP):: y(1000,1000),x(1000)=(/(i*7,i=1,1000)/)
tstart = 0.0
CALL timeit(6,' ',tstart,CPU)
DO i=1,1000
   y(:,i) = x**(1/3.d0)/i
END DO
PRINT*,'Check:
y(10,100)=(70.**(1/3.)/100)?',y(10,100),70.d0**(1/3.d0)/100
CALL timeit(6,'y(:,i) stuff',tstart,CPU) DO i = 1,1000
   y(i,:) = x**(1/3.d0)/i
END DO
PRINT*,'Check:
y(100,10)=70.**(1/3.)/100)?',y(100,10),70.d0**(1/3.d0)/100
CALL timeit(6,'y(i,:) stuff',tstart,CPU) END
  SUBROUTINE timeit(    iunit,stuff    ,tstart,CPU) ! Needs f95
    INTEGER,INTENT(IN)::iunit
    CHARACTER,INTENT(IN)::    stuff*(*)
    REAL,INTENT(INOUT)  ::              tstart
    REAL,INTENT(OUT)    ::                     CPU
! Make tstart = 0.0 before first call, and stuff = ' ' at the first
call.
! Writes to iunit CPU time since last call if stuff non-blank and tstart
! is not altered outside timeit calls . The character string stuff
should ! describe what has just been done after the first call.
    REAL tstop
    CALL CPU_TIME(tstop)
    CPU = tstop - tstart
    IF(TRIM(stuff)/='') WRITE(iunit,"(3A,F0.3,A)") &
         ' CPU time taken for ',stuff,' was ',CPU,' sec.'
    tstart = tstop
  END SUBROUTINE timeit

What happened at compile time:



I tried this with gcc on sid and there were some compile time warnings. The output is as follows.


$gfortran testspeed.f90
In file testspeed.f90:8

PRINT*,'Check:
     1
Error: Unterminated character constant beginning at (1)
In file testspeed.f90:9

y(10,100)=(70.**(1/3.)/100)?',y(10,100),70.d0**(1/3.d0)/100
1
Error: Unclassifiable statement at (1)
In file testspeed.f90:10

CALL timeit(6,'y(:,i) stuff',tstart,CPU) DO i = 1,1000
                                      1
Error: Syntax error in CALL statement at (1)
In file testspeed.f90:12

END DO
 1
Error: Expecting END PROGRAM statement at (1)
In file testspeed.f90:13

PRINT*,'Check:
     1
Error: Unterminated character constant beginning at (1)
In file testspeed.f90:14

y(100,10)=70.**(1/3.)/100)?',y(100,10),70.d0**(1/3.d0)/100
1
Error: Unclassifiable statement at (1)
In file testspeed.f90:15

CALL timeit(6,'y(i,:) stuff',tstart,CPU) END
                                      1
Error: Syntax error in CALL statement at (1)
In file testspeed.f90:16

  SUBROUTINE timeit(    iunit,stuff    ,tstart,CPU) ! Needs f95
 1
Error: Unclassifiable statement at (1)
In file testspeed.f90:17

    INTEGER,INTENT(IN)::iunit
                            1
Error: Unexpected data declaration statement at (1)
In file testspeed.f90:18

    CHARACTER,INTENT(IN)::    stuff*(*)
                                      1
Error: Unexpected data declaration statement at (1)
In file testspeed.f90:19

    REAL,INTENT(INOUT)  ::              tstart
                                             1
Error: Unexpected data declaration statement at (1)
In file testspeed.f90:20

    REAL,INTENT(OUT)    ::                     CPU
                                                 1
Error: Unexpected data declaration statement at (1)
In file testspeed.f90:25

    REAL tstop
             1
Error: Unexpected data declaration statement at (1)
In file testspeed.f90:31

  END SUBROUTINE timeit
    1
Error: Expecting END PROGRAM statement at (1)
Error: Unexpected end of file in 'testspeed.f90'



I am using Debian sid. gfortran was installed by apt-get install gfortran

$gfortran -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-libstdcxx-allocator=mt --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 20051023 (prerelease) (Debian 4.0.2-3)


bye
raju

--
Kamaraju S Kusumanchi
http://www.people.cornell.edu/pages/kk288/
http://malayamaarutham.blogspot.com/



Reply to: