Work on PR 21730 uncovered that character array initializers do not reduce.

        character*2 a (1)
        character*4 b
        character*6 c
        parameter (a="12")
        parameter (b = a(1))
        write (c,'("#",A,"#")') b
        if (c .ne. '#12  #') call abort
        end
Or:
        character*2 a (1)
        character*4 b (1)
        character*6 c
        parameter (a="12")
        parameter (b = a)
        write (c,'("#",A,"#")') b
        if (c .ne. '#12  #') call abort
        end

expr.c:simplify_parameter_variable() and gfc_simplify_expr() do not eliminate 
all subobject references, preventing the simplification from being used.

-- 
           Summary: character array parameters do not reduce
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P2
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dje at gcc dot gnu dot org
                CC: fengwang at gcc dot gnu dot org,gcc-bugs at gcc dot gnu
                    dot org
 GCC build triplet: *-*-*
  GCC host triplet: *-*-*
GCC target triplet: *-*-*


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22491

Reply via email to