https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96300
Martin Sebor <msebor at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |diagnostic
Blocks| |24639
--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC returns zero from f() and expands the conditional and the uninitialized
load in g(). Clang optimizes both functions into just a return instruction
(leaving the result unspecified) without issuing a warning. Its static
analyzer detects both bugs:
z.c:5:3: warning: Undefined or garbage value returned to caller
[core.uninitialized.UndefReturn]
return *p; // -Wuninitialized
^~~~~~~~~
z.c:14:3: warning: Undefined or garbage value returned to caller
[core.uninitialized.UndefReturn]
return p->i; // missing -Wuninitialized
^~~~~~~~~~~
2 warnings generated.
Compiler returned: 0
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639
[Bug 24639] [meta-bug] bug to track all Wuninitialized issues