annotate clang/test/Modules/cxx20-module-file-info.cpp @ 266:00f31e85ec16 default tip

Added tag current for changeset 31d058e83c98
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Oct 2023 10:13:55 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
1 // Test output from -module-file-info about C++20 modules.
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-module-interface %t/mod-info-tu1.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8 // RUN: -o %t/A.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/A.pcm | FileCheck \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11 // RUN: --check-prefix=CHECK-A %s
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/mod-info-tu2.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14 // RUN: -o %t/B.pcm
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16 // RUN: %clang_cc1 -std=c++20 -module-file-info %t/B.pcm | FileCheck \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17 // RUN: --check-prefix=CHECK-B %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
19 // RUN: %clang_cc1 -std=c++20 -emit-module-interface %t/mod-info-tu3.cpp \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
20 // RUN: -fmodule-file=%t/A.pcm -fmodule-file=%t/B.pcm -o %t/Foo.pcm
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
21
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22 // RUN: %clang_cc1 -std=c++20 -module-file-info %t/Foo.pcm | FileCheck \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
23 // RUN: --check-prefix=CHECK-FOO %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
24
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
25 // expected-no-diagnostics
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
26
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
27 //--- mod-info-tu1.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
28 export module A;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30 void a();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
31
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
32 // CHECK-A: ====== C++20
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33 // CHECK-A-NEXT: Interface Unit 'A' is the Primary Module at index #1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
34
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
35 //--- mod-info-tu2.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 export module B;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
37
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
38 void b();
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 // CHECK-B: ====== C++20
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41 // CHECK-B-NEXT: Interface Unit 'B' is the Primary Module at index #1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
42
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 //--- mod-info-tu3.cpp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44 module;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46 export module Foo;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
47
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
48 import A;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
49 export import B;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
50
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
51 namespace hello {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
52 export void say(const char *);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
53 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
54
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
55 void foo() {}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
56
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
57 // CHECK-FOO: ====== C++20
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
58 // CHECK-FOO-NEXT: Interface Unit 'Foo' is the Primary Module at index #3
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
59 // CHECK-FOO-NEXT: Sub Modules:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
60 // CHECK-FOO-NEXT: Global Module Fragment '<global>' is at index #4
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
61 // CHECK-FOO-NEXT: Imports:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
62 // CHECK-FOO-NEXT: Interface Unit 'A' is at index #1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
63 // CHECK-FOO-NEXT: Exports:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
64 // CHECK-FOO-NEXT: Interface Unit 'B' is at index #2