re PR fortran/32906 (Error: Parameter array ... cannot be automatic or assumed shape)
gcc/fortran: 2007-07-29 Daniel Franke <franke.daniel@gmail.com> PR fortran/32906 * resolve.c (resolve_fl_parameter): Check for constant shape arrays, adjusted error message. gcc/testsuite: 2007-07-29 Daniel Franke <franke.daniel@gmail.com> PR fortran/32906 * gfortran.dg/shape_1.f90: Adjust error message. * gfortran.dg/parameter_array_ref_1.f90: New test. From-SVN: r127043
This commit is contained in:
parent
b1e759547f
commit
c317bc4076
|
@ -1,3 +1,9 @@
|
||||||
|
2007-07-29 Daniel Franke <franke.daniel@gmail.com>
|
||||||
|
|
||||||
|
PR fortran/32906
|
||||||
|
* resolve.c (resolve_fl_parameter): Check for constant shape arrays,
|
||||||
|
adjusted error message.
|
||||||
|
|
||||||
2007-07-29 Daniel Franke <franke.daniel@gmail.com>
|
2007-07-29 Daniel Franke <franke.daniel@gmail.com>
|
||||||
|
|
||||||
* invoke.texi: Removed -w from option summary.
|
* invoke.texi: Removed -w from option summary.
|
||||||
|
|
|
@ -7137,10 +7137,12 @@ static try
|
||||||
resolve_fl_parameter (gfc_symbol *sym)
|
resolve_fl_parameter (gfc_symbol *sym)
|
||||||
{
|
{
|
||||||
/* A parameter array's shape needs to be constant. */
|
/* A parameter array's shape needs to be constant. */
|
||||||
if (sym->as != NULL && !gfc_is_compile_time_shape (sym->as))
|
if (sym->as != NULL
|
||||||
|
&& (sym->as->type == AS_DEFERRED
|
||||||
|
|| is_non_constant_shape_array (sym)))
|
||||||
{
|
{
|
||||||
gfc_error ("Parameter array '%s' at %L cannot be automatic "
|
gfc_error ("Parameter array '%s' at %L cannot be automatic "
|
||||||
"or assumed shape", sym->name, &sym->declared_at);
|
"or of deferred shape", sym->name, &sym->declared_at);
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2007-07-29 Daniel Franke <franke.daniel@gmail.com>
|
||||||
|
|
||||||
|
PR fortran/32906
|
||||||
|
* gfortran.dg/shape_1.f90: Adjust error message.
|
||||||
|
* gfortran.dg/parameter_array_ref_1.f90: New test.
|
||||||
|
|
||||||
2007-07-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2007-07-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/31609
|
PR fortran/31609
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
! { dg-do compile }
|
||||||
|
!
|
||||||
|
! PR fortran/32906 - Parameter array ... cannot be automatic or assumed shape
|
||||||
|
!
|
||||||
|
! Testcase contributed by Florian Ladstaedter <flad AT gmx DOT at>
|
||||||
|
!
|
||||||
|
program test_program
|
||||||
|
integer, parameter :: len = 1
|
||||||
|
integer, parameter :: arr(max(len,1)) = (/1/)
|
||||||
|
|
||||||
|
character(len=*), dimension (1), parameter :: specStr = (/'string'/)
|
||||||
|
double precision, dimension (size(specStr)), parameter :: specNum = (/99.0d0/)
|
||||||
|
end
|
|
@ -1,6 +1,6 @@
|
||||||
! { dg-do compile }
|
! { dg-do compile }
|
||||||
! PR 13201 we used to not give an error in those cases
|
! PR 13201 we used to not give an error in those cases
|
||||||
subroutine foo(n)
|
subroutine foo(n)
|
||||||
integer, parameter :: a(n) = 1 ! { dg-error "cannot be automatic" "automatic shape" }
|
integer, parameter :: a(n) = 1 ! { dg-error "cannot be automatic" "automatic shape" }
|
||||||
integer, parameter :: z(:) = (/ 1,2,3 /) ! { dg-error "cannot be automatic" "assumed shape" }
|
integer, parameter :: z(:) = (/ 1,2,3 /) ! { dg-error "cannot be automatic" "deferred shape" }
|
||||||
end subroutine
|
end subroutine
|
||||||
|
|
Loading…
Reference in New Issue