[Bug fortran/51260] PARAMETER array with constructor initializer: Compile-time simplify single element access

kargl at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Mar 24 18:15:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51260

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu.org

--- Comment #3 from kargl at gcc dot gnu.org ---
(In reply to Thomas Koenig from comment #2)
> Still the same thing with current trunk.
> 
> Interestingly,
> 
>         integer, parameter:: is(10000)=(/(i,i=1,10000)/)
>         integer, parameter :: x = is(1)
>         print *,x
>         end
> 
> is simplified correctly.
> 
> Maybe a missing call to gfc_simplify_expr somewhere...

Still what?

gfc -o z a.f90 -fdump-tree-original && ./z
           1
laptop-kargl:kargl[231] more a.f90.003t.original
MAIN__ ()
{
  integer(kind=4) i;

  {
    struct __st_parameter_dt dt_parm.0;

    dt_parm.0.common.filename = &"a.f90"[1]{lb: 1 sz: 1};
    dt_parm.0.common.line = 3;
    dt_parm.0.common.flags = 128;
    dt_parm.0.common.unit = 6;
    _gfortran_st_write (&dt_parm.0);
    {
      static integer(kind=4) C.3677 = 1;

      _gfortran_transfer_integer_write (&dt_parm.0, &C.3677, 4);
    }
    _gfortran_st_write_done (&dt_parm.0);
  }
}


More information about the Gcc-bugs mailing list