blob: 0254444bf59b81b348f31ba6ab9ba2d4ff4384d3 [file] [log] [blame]
Ben Langmuir71e1a642014-05-05 21:44:13 +00001// RUN: rm -rf %t
Ben Langmuir71e1a642014-05-05 21:44:13 +00002
3// Including a header from the imported module
4// RUN: echo '@import FromImportedModuleOK;' | \
Richard Smith47972af2015-06-16 00:08:24 +00005// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +00006// RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
7// RUN: -Werror -fsyntax-only -x objective-c -
8
9// Including a non-modular header
10// RUN: echo '@import FromImportedModuleFail;' | \
Richard Smith47972af2015-06-16 00:08:24 +000011// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000012// 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
15
16// Including a header from a subframework
17// RUN: echo '@import FromSubframework;' | \
Richard Smith47972af2015-06-16 00:08:24 +000018// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000019// RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
20// RUN: -Werror -fsyntax-only -x objective-c -
21
22// Including a header from a subframework (fail)
23// RUN: echo '@import FromNonModularSubframework;' | \
Richard Smith47972af2015-06-16 00:08:24 +000024// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000025// 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
28
29// Including a non-modular header from a submodule
30// RUN: echo '@import FromImportedSubModule;' | \
Richard Smith47972af2015-06-16 00:08:24 +000031// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000032// 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
35
36// Including a non-modular header (directly) with -fmodule-name set
37// RUN: echo '#include "NotInModule.h"' | \
Richard Smith47972af2015-06-16 00:08:24 +000038// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000039// RUN: -fmodules-cache-path=%t -I %S/Inputs/require-modular-includes \
40// RUN: -Werror -fmodule-name=A -fsyntax-only -x objective-c -
41
Ben Langmuir71e1a642014-05-05 21:44:13 +000042// Including an excluded header
43// RUN: echo '@import IncludeExcluded;' | \
Richard Smith47972af2015-06-16 00:08:24 +000044// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000045// RUN: -fmodules-cache-path=%t -F %S/Inputs/require-modular-includes \
46// RUN: -Werror -fsyntax-only -x objective-c -
47
48// Including a header from another module
49// RUN: echo '@import FromAnotherModule;' | \
Richard Smith47972af2015-06-16 00:08:24 +000050// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000051// 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 -
54
55// Including an excluded header from another module
56// RUN: echo '@import ExcludedFromAnotherModule;' | \
Richard Smith47972af2015-06-16 00:08:24 +000057// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000058// 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 -
61
62// Including a header from an umbrella directory
63// RUN: echo '@import FromUmbrella;' | \
Richard Smith47972af2015-06-16 00:08:24 +000064// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000065// 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 -
68
69// A includes B includes non-modular C
70// RUN: echo '@import A;' | \
Richard Smith47972af2015-06-16 00:08:24 +000071// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000072// 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
75
76// Non-framework module (pass)
77// RUN: echo '@import NotFramework;' | \
Richard Smith47972af2015-06-16 00:08:24 +000078// RUN: %clang_cc1 -Wnon-modular-include-in-framework-module -fmodules -fimplicit-module-maps \
Ben Langmuir71e1a642014-05-05 21:44:13 +000079// RUN: -fmodules-cache-path=%t -I %S/Inputs/require-modular-includes \
80// RUN: -Werror -fsyntax-only -x objective-c -
81
Ben Langmuir71e1a642014-05-05 21:44:13 +000082// CHECK: include of non-modular header