Skip to content

Commit

Permalink
[NFC] [C++20] [Modules] Add a test from issue 71484
Browse files Browse the repository at this point in the history
The example from issue report 71484 works fine on trunk. Add the example to the
tests since testing is always good.
  • Loading branch information
ChuanqiXu9 committed Nov 16, 2023
1 parent f8986df commit 10ad98d
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions clang/test/Modules/pr71484.cppm
Original file line number Diff line number Diff line change
@@ -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);
}

0 comments on commit 10ad98d

Please sign in to comment.