re PR fortran/15976 (ICE: assertion failure in trans-array.c)
PR fortran/15976 * resolve.c (resolve_symbol): Disallow automatic arrays in module scope. * gfortran.dg/automatic_module_variable.f90: New test. Co-Authored-By: Steven G. Kargl <kargls@comcast.net> From-SVN: r106777
This commit is contained in:
parent
f2d186905a
commit
a5df14d4e5
|
@ -1,3 +1,9 @@
|
|||
2005-11-10 Paul Thomas <pault@gcc.gnu.org>
|
||||
Steven G. Kargl <kargls@comcast.net>
|
||||
|
||||
PR fortran/15976
|
||||
* resolve.c (resolve_symbol): Disallow automatic arrays in module scope.
|
||||
|
||||
2005-11-10 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/24655
|
||||
|
|
|
@ -4282,6 +4282,22 @@ resolve_symbol (gfc_symbol * sym)
|
|||
return;
|
||||
}
|
||||
|
||||
/* A module array's shape needs to be constant. */
|
||||
|
||||
if (sym->ns->proc_name
|
||||
&& sym->attr.flavor == FL_VARIABLE
|
||||
&& sym->ns->proc_name->attr.flavor == FL_MODULE
|
||||
&& !sym->attr.use_assoc
|
||||
&& !sym->attr.allocatable
|
||||
&& !sym->attr.pointer
|
||||
&& sym->as != NULL
|
||||
&& !gfc_is_compile_time_shape (sym->as))
|
||||
{
|
||||
gfc_error ("Module array '%s' at %L cannot be automatic "
|
||||
"or assumed shape", sym->name, &sym->declared_at);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Make sure that character string variables with assumed length are
|
||||
dummy arguments. */
|
||||
|
||||
|
@ -4465,7 +4481,7 @@ resolve_symbol (gfc_symbol * sym)
|
|||
switch (sym->attr.flavor)
|
||||
{
|
||||
case FL_VARIABLE:
|
||||
/* Can the sybol have an initializer? */
|
||||
/* Can the symbol have an initializer? */
|
||||
flag = 0;
|
||||
if (sym->attr.allocatable || sym->attr.external || sym->attr.dummy
|
||||
|| sym->attr.intrinsic || sym->attr.result)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2005-11-10 Paul Thomas <pault@gcc.gnu.org>
|
||||
|
||||
PR fortran/15976
|
||||
* gfortran.dg/automatic_module_variable.f90: New test.
|
||||
|
||||
2005-11-11 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
PR target/24445
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
! { dg-do compile }
|
||||
! Tests fix for PR15976
|
||||
!
|
||||
module sd
|
||||
integer, parameter :: n = 20
|
||||
integer :: i(n)
|
||||
integer :: j(m) ! { dg-error "cannot be automatic or assumed shape" }
|
||||
integer, pointer :: p(:)
|
||||
integer, allocatable :: q(:)
|
||||
contains
|
||||
function init (x, l)
|
||||
integer :: x(l)
|
||||
integer :: init(l)
|
||||
init = x
|
||||
end function init
|
||||
end module sd
|
Loading…
Reference in New Issue