http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56725
--- Comment #10 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2013-03-27 20:24:47 UTC --- No, true means something was reported (error or warning), false means that nothing was reported. The same as for pedwarn and warning. pedwarn also returns true for --pedantic-errors, even thought it gives an error then. So either: if (permerror(...)) inform(...) or permerror() && inform() but I think the latter was frowned upon by the powers that be.