http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48713

           Summary: Error: invalid instruction suffix for push
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ian.chiv...@chiversandbryan.co.uk


I get the above error when trying to compile the following fortran module.

module timing_module
implicit none

integer , dimension(8) , private :: dt
real                   , private :: h,m,s,ms,tt
real                   , private :: last_tt

contains

subroutine start_timing()
implicit none
  call  date_and_time(values=dt)
  print 100 , dt(1:3),dt(5:8)
  100 format( 1x,i4,'/',i2,'/',i2,1x,i2,':',i2,':',i2,1x,i3)
  h  = real(dt(5))
  m  = real(dt(6))
  s  = real(dt(7))
  ms = real(dt(8))
  last_tt = 60*(60*h+m) + s + ms/1000.0
end subroutine start_timing

subroutine print_date_and_time
implicit none
  call  date_and_time(values=dt)
  print 100 , dt(1:3),dt(5:8)
  100 format( 1x,i4,'/',i2,'/',i2,1x,i2,':',i2,':',i2,1x,i3)
end subroutine print_date_and_time

subroutine print_hms
implicit none
  call  date_and_time(values=dt)
  print 100 , dt(5:8)
  100 format( 1x,i2,':',i2,':',i2,1x,i3)
end subroutine print_hms

subroutine print_ms
implicit none
  call  date_and_time(values=dt)
  h  = real(dt(5))
  m  = real(dt(6))
  s  = real(dt(7))
  ms = real(dt(8))
  tt = 60*(60*h+m) + s + ms/1000.0
  print 100 , tt
  100 format( 1x,f14.3)
end subroutine print_ms

subroutine print_time_difference
implicit none
  call  date_and_time(values=dt)
  h  = real(dt(5))
  m  = real(dt(6))
  s  = real(dt(7))
  ms = real(dt(8))
  tt = 60*(60*h+m) + s + ms/1000.0
  print 100 , (tt-last_tt)
  100 format( 1x,f14.3)
  last_tt=tt
end subroutine print_time_difference

real function time_difference()
implicit none
  tt      = 0.0
  call  date_and_time(values=dt)
  h  = real(dt(5))
  m  = real(dt(6))
  s  = real(dt(7))
  ms = real(dt(8))
  tt = 60*(60*h+m) + s + ms/1000.0
  time_difference=tt-last_tt
end function time_difference

end module timing_module 

Here is the output from gfortran -v

d:\document\fortran\newbook\examples\ch28\gfortran>gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=c:/program files
(x86)/gfortran/bin/../libexec/gcc/i586-pc-m
ingw32/4.6.0/lto-wrapper.exe
Target: i586-pc-mingw32
Configured with: ../gcc-trunk/configure --prefix=/mingw
--enable-languages=c,for
tran --with-gmp=/home/brad/gfortran/dependencies --disable-werror
--enable-threa
ds --disable-nls --build=i586-pc-mingw32 --enable-libgomp --enable-shared
--disa
ble-win32-registry --with-dwarf2 --disable-sjlj-exceptions --enable-lto
Thread model: win32
gcc version 4.6.0 20110214 (experimental) [trunk revision 170140] (GCC)

d:\document\fortran\newbook\examples\ch28\gfortran>

This system is running Windows Vista Home Premium, 64 bit, sp2.

Reply via email to