Author: Chuanqi Xu Date: 2023-02-16T17:14:16+08:00 New Revision: 37b7a60cd74b7a1754583b7eb63a6339158fd398
URL: https://github.com/llvm/llvm-project/commit/37b7a60cd74b7a1754583b7eb63a6339158fd398 DIFF: https://github.com/llvm/llvm-project/commit/37b7a60cd74b7a1754583b7eb63a6339158fd398.diff LOG: [NFC] Add a test for C++20 Modules Add a test to check that the template instantiation during the template specialization wouldn't be emitted again in the importer. Added: Modified: clang/test/Modules/pr60693.cppm Removed: ################################################################################ diff --git a/clang/test/Modules/pr60693.cppm b/clang/test/Modules/pr60693.cppm index 117a0f2753d0..c50791083a5b 100644 --- a/clang/test/Modules/pr60693.cppm +++ b/clang/test/Modules/pr60693.cppm @@ -16,7 +16,14 @@ constexpr bool f() { return true; } -export template<typename> +template <typename T> +struct u { + T unit() { + return T(); + } +}; + +export template<typename T> struct s { static constexpr auto a = f(); static constexpr auto b = f(); @@ -28,6 +35,9 @@ struct s { int bar() { return 44; } + T zoo() { + return u<T>().unit(); + } }; template struct s<int>; @@ -46,9 +56,15 @@ extern "C" long use2() { return _.foo(); } +extern "C" long use3() { + s<long> _; + return _.zoo(); +} + // CHECK: define{{.*}}@use( // CHECK-NOT: } // CHECK: ret{{.*}} 4 // CHECK: declare{{.*}}@_ZNW1a1sIlE3fooEv // CHECK-NOT: _ZNW1a1sIlE3barEv +// CHECK: declare{{.*}}_ZNW1a1sIlE3zooEv _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits