This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]