[Bug middle-end/49733] Missed optimization: Variable value not propagated to remove "if" condition

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jul 14 09:27:00 GMT 2011


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

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-07-14 09:25:31 UTC ---
(In reply to comment #5)
> Ah, so passing the non-aliasing-var to a function which takes a POINTER
> argument, returning that pointer and modifying it in the function that
> takes the non-aliasing-var is ok then?

POINTER in the C/middle-end or in the Fortran sense?

Passing a non-(Fortran-)POINTER variable as actual argument to a
(Fortran-)POINTER dummy argument is only valid, if the dummy is INTENT(IN) and
if the actual argument is TARGET. The INTENT(IN) makes sure that one does not
change the address to which the pointer points - and the TARGET avoids aliasing
issues. (Cf. "12.5.2.7 Pointer dummy variables".)

Thus, "non-aliasing-var" may not be passed passed to a POINTER dummy argument.



More information about the Gcc-bugs mailing list