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