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).