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



Tobias Burnus <burnus at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

           Priority|P3                          |P4

   Target Milestone|---                         |4.6.4



--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-12-10 
11:43:34 UTC ---

In trans-expr.c's gfc_conv_procedure_call, one calls:



  3997        else if (se->ss && se->ss->info->useflags)

  3998          {

...

  4007            if (ss->dimen > 0 && e->expr_type == EXPR_VARIABLE

  4008                && ss->info->data.array.ref == NULL)

...

  4016            else

  4017              gfc_conv_expr_reference (&parmse, e);



 * * *



Even shorter example. Note the VALUE attribute (cf. PR55638 for the wrong

"INTENT(IN)"):





integer :: A(3)

call foo(a, f())

print *, a

contains

  elemental subroutine foo(x,y)

    integer, intent(inout) :: x

    integer, VALUE, intent(in)  :: y

    x = y

  end subroutine foo

  function f()

    integer :: f

    f = 42

  end function f

end

Reply via email to