xref: /llvm-project/clang/test/Modules/Wsystem-headers-in-module.c (revision dc5cbba3196db61d57b7d84118732a6c96d8ee64)
1*dc5cbba3SBen Langmuir // Check that Wsystem-headers-in-module shows diagnostics in the named system
2*dc5cbba3SBen Langmuir // module, but not in other system headers or modules.
3*dc5cbba3SBen Langmuir 
4*dc5cbba3SBen Langmuir // RUN: rm -rf %t
5*dc5cbba3SBen Langmuir // RUN: split-file %s %t
6*dc5cbba3SBen Langmuir 
7*dc5cbba3SBen Langmuir // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/mcp \
8*dc5cbba3SBen Langmuir // RUN:   -isystem %t/sys %t/tu.c -fsyntax-only -Wextra-semi -Wsystem-headers-in-module=sys_mod \
9*dc5cbba3SBen Langmuir // RUN:   2>&1 | FileCheck %s
10*dc5cbba3SBen Langmuir 
11*dc5cbba3SBen Langmuir // CHECK-NOT: warning:
12*dc5cbba3SBen Langmuir // CHECK: sys_mod.h:2:7: warning: extra ';'
13*dc5cbba3SBen Langmuir // CHECK-NOT: warning:
14*dc5cbba3SBen Langmuir 
15*dc5cbba3SBen Langmuir //--- sys/other_sys_header.h
16*dc5cbba3SBen Langmuir int x;;
17*dc5cbba3SBen Langmuir //--- sys_mod.h
18*dc5cbba3SBen Langmuir #include "dependent_sys_mod.h"
19*dc5cbba3SBen Langmuir int y;;
20*dc5cbba3SBen Langmuir //--- other_sys_mod.h
21*dc5cbba3SBen Langmuir int z;;
22*dc5cbba3SBen Langmuir //--- dependent_sys_mod.h
23*dc5cbba3SBen Langmuir int w;;
24*dc5cbba3SBen Langmuir //--- module.modulemap
25*dc5cbba3SBen Langmuir module sys_mod [system] { header "sys_mod.h" }
26*dc5cbba3SBen Langmuir module other_sys_mod [system] { header "other_sys_mod.h" }
27*dc5cbba3SBen Langmuir module dependent_sys_mod [system] { header "dependent_sys_mod.h" }
28*dc5cbba3SBen Langmuir 
29*dc5cbba3SBen Langmuir //--- tu.c
30*dc5cbba3SBen Langmuir #include "sys_mod.h"
31*dc5cbba3SBen Langmuir #include "other_sys_mod.h"
32*dc5cbba3SBen Langmuir #include "other_sys_header.h"
33