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