Yes, it should be closed. When I asked you to open it, I thought the issue was a corner case in your patch.
-- steve On Fri, Jul 10, 2015 at 11:44:32AM +0200, Andre Vehreschild wrote: > > this means that pr66775 is to be closed as resolved invalid, because the > current implementation is alright, but only the program to compile is garbage. > Ok, suits me. > > - Andre > > On Thu, 9 Jul 2015 12:41:31 -0700 > Steve Kargl <s...@troutmask.apl.washington.edu> wrote: > > > On Thu, Jul 09, 2015 at 08:59:08PM +0200, Andre Vehreschild wrote: > > > Hi Steve, > > > > > > Thanks for your knowledge. Can you support your statement that an > > > allocatable function has to return an allocated object by a part of the > > > standard? I totally agree with you that this code is ill-designed, but IMO > > > is it not the task of the compiler to address ill design. The compiler has > > > to comply to the standard and the standard allows allocatable objects to > > > be > > > unallocated. So why has the result of a function be allocated always? > > > > > > Regards, > > > Andre > > > > > > > I think the following excerpts from F2008 are the relevant > > clauses, especially the 2nd to last sentence in the excerpt > > from 12.6.2.2. > > > > ! 12.5.3 > > ! > > ! When execution of the function is complete, the value of > > ! the function result is available for use in the expression > > ! that caused the function to be invoked. > > ! > > ! 12.6.2.2 > > ! > > ! If RESULT appears, the name of the result variable of the > > ! function is result-name and all occurrences of the function > > ! name in execution-part statements in its scope refer to the > > ! function itself. If RESULT does not appear, the name of the > > ! result variable is function-name and all occurrences of the > > ! function name in execution-part statements in its scope are > > ! references to the result variable. The characteristics (12.3.3) > > ! of the function result are those of the result variable. On > > ! completion of execution of the function, the value returned is > > ! that of its result variable. If the function result is a pointer, > > ! the shape of the value returned by the function is determined by > > ! the shape of the result variable when the execution of the function > > ! is completed. If the result variable is not a pointer, its value > > ! shall be defined by the function. If the function result is a > > ! pointer, on return the pointer association status of the result > > ! variable shall not be undefined. > > > > > -- > Andre Vehreschild * Email: vehre ad gmx dot de -- Steve