[Bug middle-end/82601] missing uninitialized warning with -O0 / -Og

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Oct 18 09:05:00 GMT 2017


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The warning is issued because we inline sub.

As we do not know whether 'o' is used we don't issue a warning in sub() that
o is not initialized (does intent(out) mean it comes in uninitialized?).
Just looking at the program sub has intent(out) q and thus we can reasonably
expect it to be initialized.

So - is 'o' uninitialized in

subroutine test(o)
 integer, intent(out) :: o
 print *, o
end subroutine

?  It doesn't seem so (we don't warn but I also think we have no way to
annotate sth as uninitalized that is passed by reference).


More information about the Gcc-bugs mailing list