f951: internal compiler error: in replace_comp, at fortran/expr.c:4203
Tilo Schwarz
tilo@tilo-schwarz.de
Sat Jan 12 23:37:00 GMT 2013
Hi,
somehow my little program seems to be really evil (probably I just coded
something badly wrong ...)
(What I am actually trying to do is: Define an abstract type, which has a
type bound procedure getx returning a real array of a dimension given by
the bound procedure getdims.)
Now I get an ICE somewhere else:
% gfortran -v prg_abstract.f08
Driving: gfortran -v prg_abstract.f08 -l gfortran -l m -shared-libgcc
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.7/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-4'
--with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --enable-plugin --enable-objc-gc
--enable-targets=all --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-4)
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=i586'
/usr/lib/gcc/i486-linux-gnu/4.7/f951 prg_abstract.f08 -quiet -dumpbase
prg_abstract.f08 -mtune=generic -march=i586 -auxbase prg_abstract -version
-fintrinsic-modules-path /usr/lib/gcc/i486-linux-gnu/4.7/finclude -o
/tmp/ccpH60SQ.s
GNU Fortran (Debian 4.7.2-4) version 4.7.2 (i486-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version
3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU Fortran (Debian 4.7.2-4) version 4.7.2 (i486-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version
3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
f951: internal compiler error: in replace_comp, at fortran/expr.c:4203
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
% cat prg_abstract.f08
module pdfs
type, abstract :: pdf
contains
procedure(getdims), deferred :: getdims
procedure(getx), deferred :: getx
end type pdf
abstract interface
pure function getdims(this)
import pdf
class(pdf), intent(in) :: this
integer getdims
end function getdims
pure function getx(this)
import pdf
class(pdf), intent(in) :: this
real, dimension(getdims(this)) :: getx
end function getx
end interface
type point
real x, y
end type point
type, extends(pdf) :: pdf_point
type(point) p
contains
procedure :: getdims => pdf_point_getdims
procedure :: getx => pdf_point_getx
end type pdf_point
contains
pure function pdf_point_getdims(this) result(dims)
class(pdf_point), intent(in) :: this
integer dims
dims = 2
end function pdf_point_getdims
pure function pdf_point_getx(this) result(x)
class(pdf_point), intent(in) :: this
real x(2)
x(1) = this%p%x
x(2) = this%p%y
end function pdf_point_getx
end module pdfs
program abstract
use pdfs
type(pdf_point) pp
namelist /nml_pp/ pp
print nml_pp
print *, pp%getx()
contains
end program abstract
Regards,
Tilo
More information about the Fortran
mailing list