http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |manu at gcc dot gnu.org --- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2011-10-22 01:15:14 UTC --- (In reply to comment #3) > (detail: not sure about the 'if (!warn_narrowing) return;' at the beginning of > check_narrowing: probably we don't want -Wno-narrowing to suppress the > warnings > enabled of -Wc++0x-compat) I think what you want is that -Wc++0x-compat enables -Wnarrowing independently of -std=, but still -Wc++0x-compat -Wno-narrowing should disable it. See the handling of Wlonglong in c-opts.c. So: if (!ok) { if (cxx_dialect != cxx98) pedwarn (input_location, OPT_Wnarrowing, "narrowing conversion of %qE " "from %qT to %qT inside { }", init, ftype, type); else warning_at (input_location, OPT_Wnarrowing, "narrowing conversion of %qE " "from %qT to %qT inside { }", init, ftype, type); } This approach also allows the user to specify -Wnarrowing to get the warnings independently of -std=.