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

--- Comment #8 from Marc Glisse <glisse at gcc dot gnu.org> ---
If I mark f as static or inline (so the optimizer changes f to take its
argument by value), I get with g++-5:

w2.c: In function 'int main()':
w2.c:11:7: warning: '<anonymous>' is used uninitialized in this function
[-Wuninitialized]
   f(i);
       ^
w2.c:13:7: warning: '<anonymous>' is used uninitialized in this function
[-Wuninitialized]
   f(a);
       ^

(not the best error message, but a good first step)

It is quite fragile though, if instead f is inlined (rename main to help
convince the optimizer), we end up with:
  _49 = std::basic_ostream<char>::_M_insert<long unsigned int> (&cout, _9(D));
and don't warn about it (I didn't check, but I assume _9 is marked
TREE_NO_WARNING).

Reply via email to