[Bug fortran/25806] New: problems with functions returning array pointers?

jpr at csc dot fi gcc-bugzilla@gcc.gnu.org
Mon Jan 16 10:35:00 GMT 2006


Hi!

This code

program a 
  real, target :: storage(10)
  real :: s(5)

  print*,x(5)
  s = 0
  s = x(5)
  print*,s

contains

 function x(n) result(t)
   integer :: n
   real, pointer :: t(:)
   t => storage(1:n)
!  allocate( t(n) )
   t = (/ (i,i=1,n) /)
 end function x
end program a


prints:
free(): invalid pointer 0x5012a0!
   1.000000       2.000000       3.000000       4.000000       5.000000
   0.000000       0.000000       0.000000       0.000000       0.000000

on a x86_64. If you delete s=0 statement, the latter line will contain
values from uninitialized memory. 

gfortran --version
GNU Fortran 95 (GCC) 4.2.0 20060112 (experimental)
Copyright (C) 2005 Free Software Foundation, Inc.

Is this supposed to work?

Regards, Juha


-- 
           Summary: problems with functions returning array pointers?
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jpr at csc dot fi


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



More information about the Gcc-bugs mailing list