[clang] [llvm] [clang][ScanDeps] Allow PCHs to have different VFS overlays (PR #82294)
Ben Langmuir via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 28 14:25:06 PST 2024
================
@@ -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
More information about the cfe-commits
mailing list