https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111669
Xi Ruoyao <xry111 at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement --- Comment #7 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- (In reply to Zeb Figura from comment #6) > It is my impression that gcc is interested in avoiding false positives for > its warnings. Correct, but we are also interested in avoiding false negatives. Without extra information provided by something like __builtin_unreachable, any change decreasing false positives will increase false negatives (unless the false positive is completely stupid: for the simplified test case I think the false positive not completely stupid, but maybe it is completely stupid for your original program). > It is also my impression that -Wnonnull is not *supposed* to emit warnings > for cases where, from the compiler's point of view, NULL might be passed, > but some high-level invariant prevents this. Compare -Wmaybe-uninitialized, > where the documentation clearly specifies otherwise. Maybe we can separate -Wnonnull into -Wmaybe-nonnull and -Wnonnull, or just make -Wnonnull not to emit warnings for conditional paths and tell users expecting a nonnull warning in conditional paths to use the analyzer (it's very supposed to warn even in conditional paths) instead. > If both of these impressions are incorrect, this bug report can be closed as > WONTFIX. I'll keep it open but make it an enhancement.