------- Comment #1 from pinskia at gcc dot gnu dot org 2006-01-02 03:08 ------- If we make a tempary variable to hold the array, it works: subroutine option_stopwatch_s(default_clock) character(len=2), intent(in) :: default_clock character(len=2), dimension(1) :: a a = (/default_clock/) call option_stopwatch_a(a) end subroutine option_stopwatch_s
-------------------------------- The problem is obvious in .t02.orginal: (*(char[0:][1:1] *) atmp.3.data)[NON_LVALUE_EXPR <S.5>] = *(*(char[0:][1:1] *) atmp.0.data)[NON_LVALUE_EXPR <S.5>]; That is an array copy which is just wrong as there is no such thing in Generic or the gimplifier can handle. Confirmed. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-01-02 03:08:33 date| | Summary|ICE in gimplify_expr with |tempary array of character |chacter type |type goes wrong http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25619