annotate clang/test/Modules/cxx20-hu-01.cpp @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
1 // Test generation and import of simple C++20 Header Units.
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
2
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
3 // RUN: rm -rf %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
4 // RUN: mkdir -p %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
5 // RUN: split-file %s %t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
6
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
7 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-header %t/hu-01.h \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8 // RUN: -o %t/hu-01.pcm
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
9
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
10 // RUN: %clang_cc1 -std=c++20 -module-file-info %t/hu-01.pcm | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11 // RUN: FileCheck --check-prefix=CHECK-HU %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
12
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
13 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/imp-hu-01.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14 // RUN: -fmodule-file=%t/hu-01.pcm -o %t/B.pcm -Rmodule-import 2>&1 | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15 // RUN: FileCheck --check-prefix=CHECK-IMP %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/imp-hu-02.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18 // RUN: -fmodule-file=%t/hu-01.pcm -o %t/C.pcm -Rmodule-import 2>&1 | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
19 // RUN: FileCheck --check-prefix=CHECK-GMF-IMP %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
20
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
21 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-header %t/hu-02.h \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22 // RUN: -o %t/hu-02.pcm
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
23
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
24 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/imp-hu-03.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
25 // RUN: -fmodule-file=%t/hu-01.pcm -fmodule-file=%t/hu-02.pcm -o %t/D.pcm \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
26 // RUN: -Rmodule-import 2>&1 | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
27 // RUN: FileCheck --check-prefix=CHECK-BOTH %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
28
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29 // RUN: %clang_cc1 -std=c++20 -emit-header-unit -xc++-header %t/hu-03.h \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30 // RUN: -fmodule-file=%t/hu-01.pcm -o %t/hu-03.pcm
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
31
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
32 // RUN: %clang_cc1 -std=c++20 -module-file-info %t/hu-03.pcm | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33 // RUN: FileCheck --check-prefix=CHECK-HU-HU %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
34
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
35 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/imp-hu-04.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 // RUN: -fmodule-file=%t/hu-03.pcm -o %t/E.pcm -Rmodule-import 2>&1 | \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
37 // RUN: FileCheck --check-prefix=CHECK-NESTED %s -DTDIR=%t
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
38
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39 //--- hu-01.h
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 int foo(int);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
42 // CHECK-HU: ====== C++20 Module structure ======
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 // CHECK-HU-NEXT: Header Unit '[[TDIR]]/hu-01.h' is the Primary Module at index #1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45 //--- imp-hu-01.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46 export module B;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
47 import "hu-01.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
48
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
49 int bar(int x) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
50 return foo(x);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
51 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
52 // CHECK-IMP: remark: importing module '[[TDIR]]/hu-01.h' from '[[TDIR]]/hu-01.pcm'
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
53 // expected-no-diagnostics
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
54
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
55 //--- imp-hu-02.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
56 module;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
57 import "hu-01.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
58
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
59 export module C;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
60
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
61 int bar(int x) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
62 return foo(x);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
63 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
64 // CHECK-GMF-IMP: remark: importing module '[[TDIR]]/hu-01.h' from '[[TDIR]]/hu-01.pcm'
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
65 // expected-no-diagnostics
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
66
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
67 //--- hu-02.h
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
68 int baz(int);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
69
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
70 //--- imp-hu-03.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
71 module;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
72 export import "hu-01.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
73
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
74 export module D;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
75 import "hu-02.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
76
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
77 int bar(int x) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
78 return foo(x) + baz(x);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
79 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
80 // CHECK-BOTH: remark: importing module '[[TDIR]]/hu-01.h' from '[[TDIR]]/hu-01.pcm'
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
81 // CHECK-BOTH: remark: importing module '[[TDIR]]/hu-02.h' from '[[TDIR]]/hu-02.pcm'
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
82 // expected-no-diagnostics
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
83
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
84 //--- hu-03.h
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
85 export import "hu-01.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
86 int baz(int);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
87 // CHECK-HU-HU: ====== C++20 Module structure ======
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
88 // CHECK-HU-HU-NEXT: Header Unit '[[TDIR]]/hu-03.h' is the Primary Module at index #2
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
89 // CHECK-HU-HU-NEXT: Exports:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
90 // CHECK-HU-HU-NEXT: Header Unit '[[TDIR]]/hu-01.h' is at index #1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
91
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
92 // expected-no-diagnostics
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
93
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
94 //--- imp-hu-04.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
95 module;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
96 import "hu-03.h";
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
97
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
98 export module E;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
99
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
100 int bar(int x) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
101 return foo(x) + baz(x);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
102 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
103 // CHECK-NESTED: remark: importing module '[[TDIR]]/hu-03.h' from '[[TDIR]]/hu-03.pcm'
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
104 // expected-no-diagnostics