Reland "[clang][deps] During scanning don't emit warnings-as-errors that are ignored with diagnostic pragmas."

This reverts commit 2f8ac18048.

After committing a fix for previous buildbot failures in D138970,
re-landing the original change.
This commit is contained in:
Volodymyr Sapsai 2022-12-02 14:30:41 -08:00
parent 2d6ec146dd
commit 642c6638a3
2 changed files with 37 additions and 2 deletions

View File

@ -135,8 +135,8 @@ static void sanitizeDiagOpts(DiagnosticOptions &DiagOpts) {
DiagOpts.ShowCarets = false;
// Don't write out diagnostic file.
DiagOpts.DiagnosticSerializationFile.clear();
// Don't treat warnings as errors.
DiagOpts.Warnings.push_back("no-error");
// Don't emit warnings as errors (and all other warnings too).
DiagOpts.IgnoreWarnings = true;
}
/// A clang tool that runs the preprocessor in a mode that's optimized for

View File

@ -0,0 +1,35 @@
// Test scanning deps does not have more errors than the regular compilation.
// RUN: rm -rf %t
// RUN: split-file %s %t
// RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json
// Check the regular compilation does not fail.
// RUN: %clang -fsyntax-only %t/test.c -I %t/include -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/cache -Wnon-modular-include-in-module -Werror=non-modular-include-in-module
// And now scanning deps should succeed too.
// RUN: clang-scan-deps -compilation-database %t/cdb.json -j 1
//--- cdb.json.template
[
{
"directory": "DIR",
"command": "clang -fsyntax-only DIR/test.c -I DIR/include -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/cache -Wnon-modular-include-in-module -Werror=non-modular-include-in-module",
"file": "DIR/test.c"
},
]
//--- include/nonmodular.h
// empty
//--- include/modular-includer.h
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnon-modular-include-in-module"
#include <nonmodular.h>
#pragma clang diagnostic pop
//--- include/module.modulemap
module ModularIncluder { header "modular-includer.h" }
//--- test.c
#include <modular-includer.h>