https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77292
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Well, // Make it obvious that these are booleans. a = !!a; b = !!b; this isn't visible to the compiler when it analyzes return !a == b; to warn. Your example is very specific and unlike from real code so are you complaining about return !a == b; warning even when it is not immediately preceeded by a a = !!a; stmt? Then we've discussed this to death already.