http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55959
--- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-01-30
13:28:58 UTC ---
The behavior of the test in comment #0 modified with the following patch
--- pr55959.f90 2013-01-13 12:23:04.000000000 +0100
+++ pr55959_0_db.f90 2013-01-13 12:43:43.000000000 +0100
@@ -27,7 +27,8 @@ contains
function pdf_point_getx(this)
class(pdf_point), intent(in) :: this
- real pdf_point_getx(this%dims)
+! real pdf_point_getx(2)
+ real, dimension(getdims(this)) :: pdf_point_getx(x)
pdf_point_getx(1) = this%p%x
pdf_point_getx(2) = this%p%y
end function pdf_point_getx
@@ -40,7 +41,8 @@ program abstract
type(pdf_point) pp
namelist /nml_pp/ pp
- print nml_pp
- print pp%getx()
+ print *, nml_pp
+ print *, pp%getx()
+contains
-end program abstract
+end program abstract
has changed from
pr55959_0_db.f90:31.57:
real, dimension(getdims(this)) :: pdf_point_getx(x)
1
Error: Expression at (1) must be of INTEGER type, found REAL
f951: internal compiler error: in replace_comp, at fortran/expr.c:4356
f951: internal compiler error: Abort trap
gfortran: internal compiler error: Abort trap (program f951)
Abort
with revision 195548, to
pr55959_0_db.f90:31.57:
real, dimension(getdims(this)) :: pdf_point_getx(x)
1
Error: Expression at (1) must be of INTEGER type, found REAL
pr55959_0_db.f90:31.57:
real, dimension(getdims(this)) :: pdf_point_getx(x)
1
Error: Expression at (1) must be of INTEGER type, found REAL
pr55959_0_db.f90:31.57:
real, dimension(getdims(this)) :: pdf_point_getx(x)
1
Error: Expression at (1) must be of INTEGER type, found REAL
pr55959_0_db.f90:31.57:
real, dimension(getdims(this)) :: pdf_point_getx(x)
1
Error: Expression at (1) must be of INTEGER type, found REAL
pr55959_0_db.f90:31.57:
real, dimension(getdims(this)) :: pdf_point_getx(x)
1
Error: Expression at (1) must be of INTEGER type, found REAL
pr55959_0_db.f90:40.8:
use pdfs
1
Fatal Error: Can't open module file 'pdfs.mod' for reading at (1): No such file
or directory
with revision 195570 (likely due to r 195562), i.e., the ICE is gone, but the
error is duplicated 5 times.
Same thing with the following change
--- pr55959.f90 2013-01-13 12:23:04.000000000 +0100
+++ pr55959_0_db_1.f90 2013-01-13 12:45:10.000000000 +0100
@@ -27,7 +27,8 @@ contains
function pdf_point_getx(this)
class(pdf_point), intent(in) :: this
- real pdf_point_getx(this%dims)
+! real pdf_point_getx(2)
+ real, dimension(getdims(this)) :: pdf_point_getx
pdf_point_getx(1) = this%p%x
pdf_point_getx(2) = this%p%y
end function pdf_point_getx
@@ -40,7 +41,8 @@ program abstract
type(pdf_point) pp
namelist /nml_pp/ pp
- print nml_pp
- print pp%getx()
+ print *, nml_pp
+ print *, pp%getx()
+contains
-end program abstract
+end program abstract