[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / clang / test / Modules / pr62705.cppm
bloba09bdf2563e84b2942ef7af51b4dd2fb051af640
1 // RUN: rm -rf %t
2 // RUN: mkdir -p %t
3 // RUN: split-file %s %t
4 //
5 // RUN: %clang_cc1 %t/a.cppm -std=c++20 -triple %itanium_abi_triple \
6 // RUN:     -emit-module-interface -o %t/a.pcm
7 // RUN: %clang_cc1 %t/b.cppm -std=c++20 -triple %itanium_abi_triple \
8 // RUN:     -emit-module-interface -o %t/b.pcm \
9 // RUN:     -fmodule-file=a=%t/a.pcm
10 // RUN: %clang_cc1 %t/b.pcm -std=c++20 -triple %itanium_abi_triple \
11 // RUN:     -emit-llvm -o - | FileCheck %t/b.cppm
13 //--- foo.h
14 namespace n {
16 template<typename>
17 struct s0 {
18         static int m;
21 template<typename T>
22 struct s1 {
23         using type = s0<T>;
28 template<typename T>
29 void require(n::s1<T>) {
32 //--- a.cppm
33 module;
35 #include "foo.h"
37 export module a;
39 //--- b.cppm
40 module;
42 #include "foo.h"
44 export module b;
45 import a;
47 // Check the LLVM IR of module 'b' get generated correctly.
48 // CHECK: define{{.*}}@_ZGIW1b