https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59098
--- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- (In reply to fenugrec from comment #3) > Probable duplicate of Bug 38341 I don't think so. The problem here is not only whether the warning is correct or not. A major issue is that the original code does not contain ~unsigned, but GCC transforms (folds) the code too early. It is also unclear whether the code paths that lead to this are the same. Two things may cause exactly the same wrong warning but may be unrelated, or cause two different warnings, but have the same root cause. Hard to say without running GCC under the debugger and analyzing the execution (https://gcc.gnu.org/wiki/DebuggingGCC)