https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107065
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |jason at gcc dot gnu.org --- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Guess one possibility would be to teach the warning code to look through TRUTH_NOT_EXPR around stuff. Or we could at least temporarily invert_truthvalue_loc if arg is tcc_comparison or some similar special case. Or similarly we could (for the time being) always invert_truthvalue_loc, but if the lvalue_kind of arg and val changes wrap it in NON_LVALUE_EXPR. Doing it on the match.pd side doesn't look right, there could be many other optimizations that result in something similar.