From 10ad98dc160497699930f295dcb4c998ef561d2e Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Thu, 16 Nov 2023 16:04:45 +0800 Subject: [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. --- clang/test/Modules/pr71484.cppm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 clang/test/Modules/pr71484.cppm (limited to 'clang') diff --git a/clang/test/Modules/pr71484.cppm b/clang/test/Modules/pr71484.cppm new file mode 100644 index 0000000..088a4cf --- /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 +T mod1_f(T x) { + return x; +} + +//--- mod2.cppm +export module mod2; +import mod1; + +export template +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); +} -- cgit v1.1