https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68993

--- Comment #4 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
On Mon, Dec 21, 2015 at 07:20:59AM +0000, Joost.VandeVondele at mat dot ethz.ch
wrote:
> I believe there was some confusion about the second testcase.
> The real question
> is if this is valid in all cases:
> 
> MERGE(C_NULL_PTR, C_LOC(pc), .NOT.PRESENT(pc)))
> 
> and I believe it is not, because all arguments might be evaluated. However, it
> is also OK not to evaluate all arguments for the reasons quoted.
> 

Yes, there is confusion.  I suspect the answer is the code is conforming
except when it isn't.  For example, IABS(I) is conforming for all 
values on a 2-complements system except for the value -huge(I)-1.

I would urge anyone trying to be clever to use clear syntax:

   if (present(pc)) then
      do stuff with pc
   else
      do stuff with c_null_ptr
   end if

Reply via email to