------- Comment #2 from burnus at gcc dot gnu dot org  2007-04-27 23:52 -------
trans-expr.c's gfc_conv_variable contains:
      /* Special case for assigning the return value of a function.
         Self recursive functions must have an explicit return value.  */
      if (return_value && (se->expr == current_function_decl || parent_flag))
        se_expr = gfc_get_fake_result_decl (sym, parent_flag);

I somehow fail to see why this works characters, but not with arrays (except
for pointers, which are treated differently).

Side note:
        function foo1(n)
        implicit none
        integer :: n
        integer,ALLOCATABLE :: foo1(:)
        external bar1
        call bar1(n, foo1)
        end function
gives an ICE: in gfc_conv_descriptor_data_get, at fortran/trans-array.c:148


-- 


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

Reply via email to