[clang] 10ad98d - [NFC] [C++20] [Modules] Add a test from issue 71484

Chuanqi Xu via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 16 00:06:33 PST 2023


Author: Chuanqi Xu
Date: 2023-11-16T16:05:46+08:00
New Revision: 10ad98dc160497699930f295dcb4c998ef561d2e

URL: https://github.com/llvm/llvm-project/commit/10ad98dc160497699930f295dcb4c998ef561d2e
DIFF: https://github.com/llvm/llvm-project/commit/10ad98dc160497699930f295dcb4c998ef561d2e.diff

LOG: [NFC] [C++20] [Modules] Add a test from issue 71484

The example from issue report 71484 works fine on trunk. Add the example to the
tests since testing is always good.

Added: 
    clang/test/Modules/pr71484.cppm

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/clang/test/Modules/pr71484.cppm b/clang/test/Modules/pr71484.cppm
new file mode 100644
index 000000000000000..088a4cf9f4e457d
--- /dev/null
+++ b/clang/test/Modules/pr71484.cppm
@@ -0,0 +1,41 @@
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+// RUN: split-file %s %t
+//
+// RUN: %clang_cc1 -std=c++20 %t/mod1.cppm -emit-module-interface -o %t/mod1.pcm
+// RUN: %clang_cc1 -std=c++20 %t/mod2.cppm -emit-module-interface -o %t/mod2.pcm \
+// RUN:     -fprebuilt-module-path=%t
+// RUN:  %clang_cc1 -std=c++20 %t/mod3.cppm -fsyntax-only -verify \
+// RUN:     -fprebuilt-module-path=%t
+
+// RUN: %clang_cc1 -std=c++20 %t/mod1.cppm -emit-obj -o %t/mod1.o -fmodule-output=%t/mod1.pcm
+// RUN: %clang_cc1 -std=c++20 %t/mod2.cppm -emit-obj -o %t/mod2.o -fmodule-output=%t/mod2.pcm \
+// RUN:     -fprebuilt-module-path=%t
+// RUN:  %clang_cc1 -std=c++20 %t/mod3.cppm -fsyntax-only -verify \
+// RUN:     -fprebuilt-module-path=%t
+
+//--- mod1.cppm
+export module mod1;
+
+export template<class T>
+T mod1_f(T x) {
+    return x;
+}
+
+//--- mod2.cppm
+export module mod2;
+import mod1;
+
+export template<class U>
+U mod2_g(U y) {
+    return mod1_f(y);
+}
+
+//--- mod3.cppm
+// expected-no-diagnostics
+export module mod3;
+import mod2;
+
+export int mod3_h(int p) {
+    return mod2_g(p);
+}


        


More information about the cfe-commits mailing list