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); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits