3 // Including a header from the imported module
4 // RUN: echo '@import FromImportedModuleOK;' | \
5 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
6 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
7 // RUN: -Werror -fsyntax-only -x objective-c -
9 // Including a non-modular header
10 // RUN: echo '@import FromImportedModuleFail;' | \
11 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
12 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
13 // RUN: -I %S/Inputs/require-modular-includes \
14 // RUN: -fsyntax-only -x objective-c - 2>&1 | FileCheck %s
16 // Including a header from a subframework
17 // RUN: echo '@import FromSubframework;' | \
18 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
19 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
20 // RUN: -Werror -fsyntax-only -x objective-c -
22 // Including a header from a subframework (fail)
23 // RUN: echo '@import FromNonModularSubframework;' | \
24 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
25 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
26 // RUN: -I %S/Inputs/require-modular-includes \
27 // RUN: -fsyntax-only -x objective-c - 2>&1 | FileCheck %s
29 // Including a non-modular header from a submodule
30 // RUN: echo '@import FromImportedSubModule;' | \
31 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
32 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
33 // RUN: -I %S/Inputs/require-modular-includes \
34 // RUN: -fsyntax-only -x objective-c - 2>&1 | FileCheck %s
36 // Including a non-modular header (directly) with -fmodule-name set
37 // RUN: echo '#include "NotInModule.h"' | \
38 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
39 // RUN: -fmodules-cache-path=%t -I %S/Inputs/require-modular-includes \
40 // RUN: -Werror -fmodule-name=A -fsyntax-only -x objective-c -
42 // Including an excluded header
43 // RUN: echo '@import IncludeExcluded;' | \
44 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
45 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
46 // RUN: -Werror -fsyntax-only -x objective-c -
48 // Including a header from another module
49 // RUN: echo '@import FromAnotherModule;' | \
50 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
51 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
52 // RUN: -I %S/Inputs/require-modular-includes \
53 // RUN: -Werror -fsyntax-only -x objective-c -
55 // Including an excluded header from another module
56 // RUN: echo '@import ExcludedFromAnotherModule;' | \
57 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
58 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
59 // RUN: -I %S/Inputs/require-modular-includes \
60 // RUN: -Werror -fsyntax-only -x objective-c -
62 // Including a header from an umbrella directory
63 // RUN: echo '@import FromUmbrella;' | \
64 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
65 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
66 // RUN: -I %S/Inputs/require-modular-includes \
67 // RUN: -Werror -fsyntax-only -x objective-c -
69 // A includes B includes non-modular C
70 // RUN: echo '@import A;' | \
71 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
72 // RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
73 // RUN: -I %S/Inputs/require-modular-includes \
74 // RUN: -fsyntax-only -x objective-c - 2>&1 | FileCheck %s
76 // Non-framework module (pass)
77 // RUN: echo '@import NotFramework;' | \
78 // RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
79 // RUN: -fmodules-cache-path=%t -I %S/Inputs/require-modular-includes \
80 // RUN: -Werror -fsyntax-only -x objective-c -
82 // CHECK: include of non-modular header