[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / Modules / require-modular-includes.m
blob0254444bf59b81b348f31ba6ab9ba2d4ff4384d3
1 // RUN: rm -rf %t
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