http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51785
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-28 16:18:30 UTC --- Ideally, when using #define _GNU_SOURCE #include <stdio.h> in a C++ program ::gets wouldn't be available (the _GNU_SOURCE requests GNU namespace rather than standard C++ one), but when using #include <list> #include <stdio.h> it would provide it (with deprecated attribute), because then the user didn't request _GNU_SOURCE. But for that we'd need some new macro to request additional prototype for STL needs.