1 | // RUN: rm -rf %t |
2 | // RUN: mkdir %t |
3 | // RUN: cd %t |
4 | |
5 | // ---------------------- |
6 | // Build modules A and B. |
7 | // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
8 | // RUN: -fmodule-name=a -emit-module %S/Inputs/explicit-build/module.modulemap -o a.pcm |
9 | // |
10 | // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
11 | // RUN: -fmodule-file=a.pcm \ |
12 | // RUN: -fmodule-name=b -emit-module %S/Inputs/explicit-build/module.modulemap -o b-rel.pcm |
13 | // |
14 | // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
15 | // RUN: -fmodule-file=%t/a.pcm \ |
16 | // RUN: -fmodule-name=b -emit-module %S/Inputs/explicit-build/module.modulemap -o b-abs.pcm |
17 | |
18 | // ------------------------------------------ |
19 | // Mix and match relative and absolute paths. |
20 | // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
21 | // RUN: -I%S/Inputs/explicit-build \ |
22 | // RUN: -fmodule-file=%t/a.pcm \ |
23 | // RUN: -fmodule-file=a.pcm \ |
24 | // RUN: -verify %s |
25 | // |
26 | // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
27 | // RUN: -I%S/Inputs/explicit-build \ |
28 | // RUN: -fmodule-file=%t/a.pcm \ |
29 | // RUN: -fmodule-file=b-rel.pcm \ |
30 | // RUN: -verify %s |
31 | // |
32 | // RUN: %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
33 | // RUN: -I%S/Inputs/explicit-build \ |
34 | // RUN: -fmodule-file=a.pcm \ |
35 | // RUN: -fmodule-file=b-abs.pcm \ |
36 | // RUN: -verify %s |
37 | // |
38 | // RUN: not %clang_cc1 -x c++ -std=c++11 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -Rmodule-build -fno-modules-error-recovery \ |
39 | // RUN: -I%S/Inputs/explicit-build \ |
40 | // RUN: -fmodule-file=b-rel.pcm \ |
41 | // RUN: -fmodule-file=b-abs.pcm \ |
42 | // RUN: -verify %s 2>&1 | FileCheck %s |
43 | // CHECK: module 'b' is defined in both '{{.*}}b-rel.pcm' and '{{.*}}b-abs.pcm' |
44 | |
45 | #include "a.h" |
46 | static_assert(a == 1, ""); |
47 | // expected-no-diagnostics |
48 | |