re PR fortran/42858 (ICE in gfc_array_dimen_size at ../../trunk/gcc/fortran/array.c:2063)

2010-01-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/42858
        * array.c (gfc_array_dimen_size): Fix intrinsic procedure
        check.

2010-01-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/42858
        * gfortran.dg/generic_21.f90: New test.

From-SVN: r156214
This commit is contained in:
Tobias Burnus 2010-01-25 17:21:42 +01:00 committed by Tobias Burnus
parent f7adff969f
commit 03d838ba03
4 changed files with 46 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-01-25 Tobias Burnus <burnus@net-b.de>
PR fortran/42858
* array.c (gfc_array_dimen_size): Fix intrinsic procedure
check.
2010-01-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41044

View File

@ -1,5 +1,5 @@
/* Array things
Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by Andy Vaught
@ -2054,7 +2054,7 @@ gfc_array_dimen_size (gfc_expr *array, int dimen, mpz_t *result)
}
if (array->symtree->n.sym->attr.generic
&& !array->symtree->n.sym->attr.intrinsic)
&& array->value.function.esym != NULL)
{
if (spec_dimen_size (array->value.function.esym->as, dimen, result)
== FAILURE)

View File

@ -1,3 +1,8 @@
2010-01-25 Tobias Burnus <burnus@net-b.de>
PR fortran/42858
* gfortran.dg/generic_21.f90: New test.
2010-01-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR testsuite/41522

View File

@ -0,0 +1,33 @@
! { dg-do compile }
!
! PR fortran/42858
!
! Contributed by Harald Anlauf
!
module gfcbug102
implicit none
type t_vector_segm
real ,pointer :: x(:) => NULL()
end type t_vector_segm
type t_vector
integer :: n_s = 0
type (t_vector_segm) ,pointer :: s (:) => NULL()
end type t_vector
interface sqrt
module procedure sqrt_vector
end interface sqrt
contains
function sqrt_vector (x) result (y)
type (t_vector) :: y
type (t_vector) ,intent(in) :: x
integer :: i
do i = 1, y% n_s
y% s(i)% x = sqrt (x% s(i)% x)
end do
end function sqrt_vector
end module gfcbug102
! { dg-final { cleanup-modules "gfcbug102" } }