xref: /llvm-project/clang/test/ClangScanDeps/diagnostic-pragmas.c (revision 642c6638a3d78359552f5cf71d24a80a9bd9801f)
1 // Test scanning deps does not have more errors than the regular compilation.
2 
3 // RUN: rm -rf %t
4 // RUN: split-file %s %t
5 // RUN: sed "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json
6 
7 // Check the regular compilation does not fail.
8 // 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
9 
10 // And now scanning deps should succeed too.
11 // RUN: clang-scan-deps -compilation-database %t/cdb.json -j 1
12 
13 //--- cdb.json.template
14 [
15   {
16     "directory": "DIR",
17     "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",
18     "file": "DIR/test.c"
19   },
20 ]
21 
22 //--- include/nonmodular.h
23 // empty
24 
25 //--- include/modular-includer.h
26 #pragma clang diagnostic push
27 #pragma clang diagnostic ignored "-Wnon-modular-include-in-module"
28 #include <nonmodular.h>
29 #pragma clang diagnostic pop
30 
31 //--- include/module.modulemap
32 module ModularIncluder { header "modular-includer.h" }
33 
34 //--- test.c
35 #include <modular-includer.h>
36