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

Dominique d'Humieres <dominiq at lps dot ens.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-12-19
     Ever confirmed|0                           |1

--- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Confirmed at r206105. Using result(res) as in

module m1 
   implicit none 
   integer, parameter :: dp = kind([double precision::]) 
   contains 
      recursive function f(x) result(res)
         integer, intent(in) :: x 
         real(dp) res(x/2) 
         integer y(size(res)+1) 

         if (x==1) return
         write(*,*) 'size(f) = ',size(res) 
         write(*,*) 'size(y) = ',size(y) 
         res = f(x/2) 
      end function f 
end module m1 

program bug3 
   use m1 
   implicit none 
   real y 

   y = sum(f(8)) 
   print *, y
end program bug3 

make the code working:

 size(f) =            4
 size(y) =            5
 size(f) =            2
 size(y) =            3
 size(f) =            1
 size(y) =            2
   0.00000000

Reply via email to