http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60256
--- Comment #1 from Chengnian Sun <chengniansun at gmail dot com> --- If the call is to a user-defined function, then gcc warns. I cannot see why "strcpy" is special. $: cat s.c extern void p(const char*); void f(void) { char* s; p(s); } $: gcc-trunk -Wuninitialized s.c -c s.c: In function āfā: s.c:4:3: warning: āsā is used uninitialized in this function [-Wuninitialized] p(s); ^