Home | History | Annotate | Download | only in Modules
      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