mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-17 09:30:30 +08:00
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:
parent
f7adff969f
commit
03d838ba03
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
33
gcc/testsuite/gfortran.dg/generic_21.f90
Normal file
33
gcc/testsuite/gfortran.dg/generic_21.f90
Normal 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" } }
|
Loading…
x
Reference in New Issue
Block a user