1*5b388f86SChuanqi Xu// RUN: rm -rf %t 2*5b388f86SChuanqi Xu// RUN: split-file %s %t 3*5b388f86SChuanqi Xu// RUN: cd %t 4*5b388f86SChuanqi Xu// 5*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 6*5b388f86SChuanqi Xu// RUN: %t/a.cppm -emit-module-interface -o %t/a.pcm 7*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 8*5b388f86SChuanqi Xu// RUN: %t/use.cpp -fmodule-file=a=%t/a.pcm -verify -fsyntax-only 9*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 10*5b388f86SChuanqi Xu// RUN: %t/a.pcm -emit-llvm -o - | FileCheck %t/a.ll 11*5b388f86SChuanqi Xu// 12*5b388f86SChuanqi Xu// RUN: echo "//Update" >> %t/foo.h 13*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 14*5b388f86SChuanqi Xu// RUN: %t/use.cpp -fmodule-file=a=%t/a.pcm -verify -fsyntax-only 15*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 16*5b388f86SChuanqi Xu// RUN: %t/a.pcm -emit-llvm -o - | FileCheck %t/a.ll 17*5b388f86SChuanqi Xu// 18*5b388f86SChuanqi Xu// RUN: echo "//Update" >> %t/a.cppm 19*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 20*5b388f86SChuanqi Xu// RUN: %t/use.cpp -fmodule-file=a=%t/a.pcm -verify -fsyntax-only 21*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 22*5b388f86SChuanqi Xu// RUN: %t/a.pcm -emit-llvm -o - | FileCheck %t/a.ll 23*5b388f86SChuanqi Xu// 24*5b388f86SChuanqi Xu// RUN: rm -f %t/foo.h 25*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 26*5b388f86SChuanqi Xu// RUN: %t/use.cpp -fmodule-file=a=%t/a.pcm -verify -fsyntax-only 27*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 28*5b388f86SChuanqi Xu// RUN: %t/a.pcm -emit-llvm -o - | FileCheck %t/a.ll 29*5b388f86SChuanqi Xu// 30*5b388f86SChuanqi Xu// RUN: rm -f %t/a.cppm 31*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 32*5b388f86SChuanqi Xu// RUN: %t/use.cpp -fmodule-file=a=%t/a.pcm -verify -fsyntax-only 33*5b388f86SChuanqi Xu// RUN: %clang_cc1 -std=c++20 -triple %itanium_abi_triple \ 34*5b388f86SChuanqi Xu// RUN: %t/a.pcm -emit-llvm -o - | FileCheck %t/a.ll 35*5b388f86SChuanqi Xu 36*5b388f86SChuanqi Xu//--- foo.h 37*5b388f86SChuanqi Xuinline int foo = 43; 38*5b388f86SChuanqi Xu 39*5b388f86SChuanqi Xu//--- a.cppm 40*5b388f86SChuanqi Xu// expected-no-diagnostics 41*5b388f86SChuanqi Xumodule; 42*5b388f86SChuanqi Xu#include "foo.h" 43*5b388f86SChuanqi Xuexport module a; 44*5b388f86SChuanqi Xuexport using ::foo; 45*5b388f86SChuanqi Xu 46*5b388f86SChuanqi Xu//--- a.ll 47*5b388f86SChuanqi Xu// check the LLVM IR are generated succesfully. 48*5b388f86SChuanqi Xu// CHECK: define{{.*}}@_ZGIW1a 49*5b388f86SChuanqi Xu 50*5b388f86SChuanqi Xu//--- use.cpp 51*5b388f86SChuanqi Xu// expected-no-diagnostics 52*5b388f86SChuanqi Xuimport a; 53*5b388f86SChuanqi Xuint use() { 54*5b388f86SChuanqi Xu return foo; 55*5b388f86SChuanqi Xu} 56*5b388f86SChuanqi Xu 57