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



--- Comment #7 from Steve Kargl <sgk at troutmask dot apl.washington.edu> 
2013-01-07 23:36:50 UTC ---

On Mon, Jan 07, 2013 at 11:16:13PM +0000, dominiq at lps dot ens.fr wrote:

> (In reply to comment #2)

> > Or extremely complicated:

> >

> >   integer, pointer :: ptr

> >   allocate (ptr, stat=f())

> > contains

> >   function f()

> >     integer, pointer :: f

> >     f => ptr

> >   end function

> > end

> >

> > (Recall that a pointer-function result is a variable in Fortran 2008.)

> 

> At revision 194996, I get

> 

>   allocate (ptr, stat=f())

>                        1

> Error: Syntax error in ALLOCATE statement at (1)

> 

> Is this another bug or is the error correct?

> 



An error is in order, but I'm not sure if the above is

the correct error.  From F08,



    The stat-variable shall not be allocated or deallocated within the

    ALLOCATE or DEALLOCATE statement in which it appears; nor shall it

    depend on the value, bounds, deferred type parameters, allocation

    status, or association status of any allocate-object in that statement.



I haven't verified the statement that "a pointer-function is a variable",

but assuming that this is true, you have 



   allocate(ptr, stat=ptr)

Reply via email to