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

Reply via email to