This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/54208] compilation error for ubound construct in PARAMETER statements


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]