https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87544
--- Comment #16 from Martin Sebor <msebor at gcc dot gnu.org> --- The warning code considers just the argument to the call. It doesn't know (and in the constant case can't tell) where the argument came from. It would need to be reworked to tell the difference (e.g., along the lines of -Wmaybe-uninitialized). It might be worth looking into at some point.