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 -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 -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 -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 -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 -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 -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 -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