module ice6

  type :: lin_approx_cont_type
     real,dimension(:),allocatable::values
   contains
     procedure::get_array
     procedure::get_element
     generic::get_something=>get_element,get_array
  end type lin_approx_cont_type

  contains

  pure function get_element(this,index)
    class(lin_approx_cont_type),intent(in)::this
    integer,intent(in)::index
    real::get_element
    get_element=this%values(index)
  end function get_element

  pure function get_array(this)
    class(lin_approx_cont_type),intent(in)::this
    real,dimension(this%dim)::get_array
    get_array=this%values
  end function get_array

  subroutine do_something(this)
    class(lin_approx_cont_type),intent(in)::this
    call really_do_something(this%get_something())
  end subroutine do_something

  subroutine really_do_something(array)
    real,dimension(:),intent(in)::array
  end subroutine really_do_something

end module ice6


compiling with GNU Fortran (GCC) 4.6.0 20100616 results in:
ice6.f03:35:0: interner Compiler-Fehler: in gimplify_expr, bei gimplify.c:7389


-- 
           Summary: [OOP] ICE in gimplify_expr when passing generic function
                    as argument
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: boschmann at tp1 dot physik dot uni-siegen dot de


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

Reply via email to