================ @@ -175,8 +192,19 @@ static void sanitizeDiagOpts(DiagnosticOptions &DiagOpts) { DiagOpts.ShowCarets = false; // Don't write out diagnostic file. DiagOpts.DiagnosticSerializationFile.clear(); - // Don't emit warnings as errors (and all other warnings too). - DiagOpts.IgnoreWarnings = true; + // Don't emit warnings except for scanning specific warnings. + // TODO: It would be useful to add a more principled way to ignore all + // warnings that come from source code. The issue is that we need to + // ignore warnings that could be surpressed by + // `#pragma clang diagnostic`, while still allowing some scanning + // warnings for things we're not ready to turn into errors yet. ---------------- benlangmuir wrote:
> The scanner never sees #pragma clang diagnostic, so there's no issue with > code that uses that to turn warnings on. Ah sorry, I forgot we skipped over most pragmas. > so you're just left with default warnings. > > The goal here was to keep driver warnings (which are lost otherwise) and > allow us to have dedicated scanner warnings. I do think we want more control > over this, possibly add a scanner bit to diagnostics so we can be explicit > about which warnings we expect from the scanner, but I think this change is > fine for now. This goal makes some sense to me, but I'm not sure that using the default warnings are a good idea. The default warnings can just as easily cause us to emit a driver warning that the user was explicitly trying to hide. https://github.com/llvm/llvm-project/pull/82294 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits