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
5 changed files with 31 additions and 4 deletions
|
@ -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>
|
||||
|
||||
* invoke.texi: Removed -w from option summary.
|
||||
|
|
|
@ -7137,10 +7137,12 @@ static try
|
|||
resolve_fl_parameter (gfc_symbol *sym)
|
||||
{
|
||||
/* 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 "
|
||||
"or assumed shape", sym->name, &sym->declared_at);
|
||||
"or of deferred shape", sym->name, &sym->declared_at);
|
||||
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>
|
||||
|
||||
PR fortran/31609
|
||||
|
|
13
gcc/testsuite/gfortran.dg/parameter_array_ref_1.f90
Normal file
13
gcc/testsuite/gfortran.dg/parameter_array_ref_1.f90
Normal file
|
@ -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 }
|
||||
! PR 13201 we used to not give an error in those cases
|
||||
subroutine foo(n)
|
||||
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 :: a(n) = 1 ! { dg-error "cannot be automatic" "automatic shape" }
|
||||
integer, parameter :: z(:) = (/ 1,2,3 /) ! { dg-error "cannot be automatic" "deferred shape" }
|
||||
end subroutine
|
||||
|
|
Loading…
Add table
Reference in a new issue