[Bug fortran/54208] compilation error for ubound construct in PARAMETER statements
kargl at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Aug 9 16:32:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54208
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #1 from kargl at gcc dot gnu.org 2012-08-09 16:32:07 UTC ---
(In reply to comment #0)
> The following reproducer:
>
> program testit
> integer, parameter :: n=2
> integer, dimension(1-min(n,2)/2:n) :: arr
> integer, parameter :: i=ubound(arr,1)
> write(6,*) i
> end program testit
>
> fails to compile:
>
> >gfortran testit.F90
> testit.F90:4.33:
>
> integer, parameter :: i=ubound(arr,1)
> 1
> Error: Array 'arr' at (1) is a variable, which does not reduce to a constant
> expression
>
I believe that this may be a duplicate of another bug report,
but don't have time to check. This problem is present in all
versions of gfortran from at least 4.3.6 onward. Oddly, if one
tries 4.2.5, the code compiles. A workaround (and yes I know
changing a large code base may be a PITA) is
program testit
integer, parameter :: n=2, m=1-min(n,2)/2
integer, dimension(m:n) :: arr
integer, parameter :: i=ubound(arr,1)
write(6,*) i
end program testit
More information about the Gcc-bugs
mailing list