1*67e74705SXin Li // RUN: rm -rf %t 2*67e74705SXin Li // RUN: cd %S 3*67e74705SXin Li // 4*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 5*67e74705SXin Li // RUN: -I Inputs/stress1 \ 6*67e74705SXin Li // RUN: -fno-implicit-modules \ 7*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 8*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 9*67e74705SXin Li // RUN: -emit-module -fmodule-name=m00 -o %t/m00.pcm \ 10*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 11*67e74705SXin Li // 12*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 13*67e74705SXin Li // RUN: -I Inputs/stress1 \ 14*67e74705SXin Li // RUN: -fno-implicit-modules \ 15*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 16*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 17*67e74705SXin Li // RUN: -emit-module -fmodule-name=m00 -o %t/m00_check.pcm \ 18*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 19*67e74705SXin Li // 20*67e74705SXin Li // RUN: diff %t/m00.pcm %t/m00_check.pcm 21*67e74705SXin Li // 22*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 -fdelayed-template-parsing \ 23*67e74705SXin Li // RUN: -I Inputs/stress1 \ 24*67e74705SXin Li // RUN: -fno-implicit-modules \ 25*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 26*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 27*67e74705SXin Li // RUN: -emit-module -fmodule-name=m01 -o %t/m01.pcm \ 28*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 29*67e74705SXin Li // 30*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 -fdelayed-template-parsing \ 31*67e74705SXin Li // RUN: -I Inputs/stress1 \ 32*67e74705SXin Li // RUN: -fno-implicit-modules \ 33*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 34*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 35*67e74705SXin Li // RUN: -emit-module -fmodule-name=m01 -o %t/m01_check.pcm \ 36*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 37*67e74705SXin Li // 38*67e74705SXin Li // RUN: diff %t/m01.pcm %t/m01_check.pcm 39*67e74705SXin Li // 40*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 41*67e74705SXin Li // RUN: -I Inputs/stress1 \ 42*67e74705SXin Li // RUN: -fno-implicit-modules \ 43*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 44*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 45*67e74705SXin Li // RUN: -emit-module -fmodule-name=m02 -o %t/m02.pcm \ 46*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 47*67e74705SXin Li // 48*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 49*67e74705SXin Li // RUN: -I Inputs/stress1 \ 50*67e74705SXin Li // RUN: -fno-implicit-modules \ 51*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 52*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 53*67e74705SXin Li // RUN: -emit-module -fmodule-name=m03 -o %t/m03.pcm \ 54*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 55*67e74705SXin Li // 56*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 57*67e74705SXin Li // RUN: -I Inputs/stress1 \ 58*67e74705SXin Li // RUN: -fno-implicit-modules \ 59*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 60*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 61*67e74705SXin Li // RUN: -fmodule-file=%t/m00.pcm \ 62*67e74705SXin Li // RUN: -fmodule-file=%t/m01.pcm \ 63*67e74705SXin Li // RUN: -fmodule-file=%t/m02.pcm \ 64*67e74705SXin Li // RUN: -fmodule-file=%t/m03.pcm \ 65*67e74705SXin Li // RUN: -emit-module -fmodule-name=merge00 -o %t/merge00.pcm \ 66*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 67*67e74705SXin Li // 68*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 69*67e74705SXin Li // RUN: -I Inputs/stress1 \ 70*67e74705SXin Li // RUN: -fno-implicit-modules \ 71*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 72*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 73*67e74705SXin Li // RUN: -fmodule-file=%t/m00.pcm \ 74*67e74705SXin Li // RUN: -fmodule-file=%t/m01.pcm \ 75*67e74705SXin Li // RUN: -fmodule-file=%t/m02.pcm \ 76*67e74705SXin Li // RUN: -fmodule-file=%t/m03.pcm \ 77*67e74705SXin Li // RUN: -emit-module -fmodule-name=merge00 -o %t/merge00_check.pcm \ 78*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 79*67e74705SXin Li // 80*67e74705SXin Li // RUN: diff %t/merge00.pcm %t/merge00_check.pcm 81*67e74705SXin Li // 82*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 83*67e74705SXin Li // RUN: -I Inputs/stress1 \ 84*67e74705SXin Li // RUN: -fno-implicit-modules \ 85*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 86*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 87*67e74705SXin Li // RUN: -fmodule-map-file=Inputs/stress1/module.modulemap \ 88*67e74705SXin Li // RUN: -fmodule-file=%t/m00.pcm \ 89*67e74705SXin Li // RUN: -fmodule-file=%t/m01.pcm \ 90*67e74705SXin Li // RUN: -fmodule-file=%t/m02.pcm \ 91*67e74705SXin Li // RUN: -fmodule-file=%t/m03.pcm \ 92*67e74705SXin Li // RUN: -fmodule-file=%t/merge00.pcm \ 93*67e74705SXin Li // RUN: -verify stress1.cpp -S -emit-llvm -o %t/stress1.ll 94*67e74705SXin Li // 95*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 96*67e74705SXin Li // RUN: -I Inputs/stress1 \ 97*67e74705SXin Li // RUN: -fno-implicit-modules \ 98*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 99*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 100*67e74705SXin Li // RUN: -fmodule-map-file=Inputs/stress1/module.modulemap \ 101*67e74705SXin Li // RUN: -fmodule-file=%t/m00.pcm \ 102*67e74705SXin Li // RUN: -fmodule-file=%t/m01.pcm \ 103*67e74705SXin Li // RUN: -fmodule-file=%t/m02.pcm \ 104*67e74705SXin Li // RUN: -fmodule-file=%t/m03.pcm \ 105*67e74705SXin Li // RUN: -fmodule-file=%t/merge00.pcm \ 106*67e74705SXin Li // RUN: -verify stress1.cpp -S -emit-llvm -o %t/stress1_check.ll 107*67e74705SXin Li // 108*67e74705SXin Li // RUN: diff -u %t/stress1.ll %t/stress1_check.ll 109*67e74705SXin Li // 110*67e74705SXin Li // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 \ 111*67e74705SXin Li // RUN: -I Inputs/stress1 \ 112*67e74705SXin Li // RUN: -fmodules-cache-path=%t \ 113*67e74705SXin Li // RUN: -fmodule-map-file-home-is-cwd \ 114*67e74705SXin Li // RUN: -fmodule-file=%t/m00.pcm \ 115*67e74705SXin Li // RUN: -fmodule-file=%t/m01.pcm \ 116*67e74705SXin Li // RUN: -fmodule-file=%t/m02.pcm \ 117*67e74705SXin Li // RUN: -fmodule-file=%t/m03.pcm \ 118*67e74705SXin Li // RUN: -emit-module -fmodule-name=merge00 -o /dev/null \ 119*67e74705SXin Li // RUN: -DMERGE_NO_REEXPORT \ 120*67e74705SXin Li // RUN: Inputs/stress1/module.modulemap 121*67e74705SXin Li // 122*67e74705SXin Li // expected-no-diagnostics 123*67e74705SXin Li 124*67e74705SXin Li #include "m00.h" 125*67e74705SXin Li #include "m01.h" 126*67e74705SXin Li #include "m02.h" 127*67e74705SXin Li #include "m03.h" 128*67e74705SXin Li 129*67e74705SXin Li #include "merge00.h" 130*67e74705SXin Li f()131*67e74705SXin Liint f() { return N01::S00('a').method00('b') + (int)N00::S00(42) + function00(42) + g(); } 132*67e74705SXin Li f2()133*67e74705SXin Liint f2() { 134*67e74705SXin Li return pragma_weak00() + pragma_weak01() + pragma_weak02() + 135*67e74705SXin Li pragma_weak03 + pragma_weak04 + pragma_weak05; 136*67e74705SXin Li } 137