File tree Expand file tree Collapse file tree 1 file changed +90
-0
lines changed Expand file tree Collapse file tree 1 file changed +90
-0
lines changed Original file line number Diff line number Diff line change 1+ // RUN: rm -rf %t
2+ // RUN: mkdir -p %t
3+ // RUN: split-file %s %t
4+ // RUN: cd %t
5+
6+ // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/hu-01.h \
7+ // RUN: -fcxx-exceptions -o %t/hu-01.pcm
8+
9+ // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/hu-02.h \
10+ // RUN: -Wno-experimental-header-units -fcxx-exceptions \
11+ // RUN: -fmodule-file=%t/hu-01.pcm -o %t/hu-02.pcm
12+
13+ // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/hu-03.h \
14+ // RUN: -Wno-experimental-header-units -fcxx-exceptions \
15+ // RUN: -fmodule-file=%t/hu-01.pcm -o %t/hu-03.pcm
16+
17+ // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/hu-04.h \
18+ // RUN: -Wno-experimental-header-units -fcxx-exceptions \
19+ // RUN: -fmodule-file=%t/hu-01.pcm -o %t/hu-04.pcm
20+
21+ // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-user-header %t/hu-05.h \
22+ // RUN: -Wno-experimental-header-units -fcxx-exceptions \
23+ // RUN: -fmodule-file=%t/hu-03.pcm -fmodule-file=%t/hu-04.pcm \
24+ // RUN: -fmodule-file=%t/hu-01.pcm -o %t/hu-05.pcm
25+
26+ // RUN: %clang_cc1 -std=c++20 -emit-obj %t/main.cpp \
27+ // RUN: -Wno-experimental-header-units -fcxx-exceptions \
28+ // RUN: -fmodule-file=%t/hu-02.pcm -fmodule-file=%t/hu-05.pcm \
29+ // RUN: -fmodule-file=%t/hu-04.pcm -fmodule-file=%t/hu-03.pcm \
30+ // RUN: -fmodule-file=%t/hu-01.pcm
31+
32+ // --- hu-01.h
33+ template <typename T>
34+ struct A {
35+ A () {}
36+ ~A () {}
37+ };
38+
39+ template <typename T>
40+ struct EBO : T {
41+ EBO () = default ;
42+ };
43+
44+ template <typename T>
45+ struct HT : EBO<A<T>> {};
46+
47+ // --- hu-02.h
48+ import " hu-01.h" ;
49+
50+ inline void f () {
51+ HT<int >();
52+ }
53+
54+ // --- hu-03.h
55+ import " hu-01.h" ;
56+
57+ struct C {
58+ C ();
59+
60+ HT<long > _;
61+ };
62+
63+ // --- hu-04.h
64+ import " hu-01.h" ;
65+
66+ void g (HT<long > = {});
67+
68+ // --- hu-05.h
69+ import " hu-03.h" ;
70+ import " hu-04.h" ;
71+ import " hu-01.h" ;
72+
73+ struct B {
74+ virtual ~B () = default ;
75+
76+ virtual void f () {
77+ HT<long >();
78+ }
79+ };
80+
81+ // --- main.cpp
82+ import " hu-02.h" ;
83+ import " hu-05.h" ;
84+ import " hu-03.h" ;
85+
86+ int main () {
87+ f ();
88+ C ();
89+ B ();
90+ }
You can’t perform that action at this time.
0 commit comments