Mercurial > hg > CbC > CbC_llvm
view clang/test/Modules/seperated-member-function-definition-for-template-class.cppm @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1f2b6ac9f198 |
children |
line wrap: on
line source
// This comes from the issue report of MSVC // (https://developercommunity.visualstudio.com/t/c20-modules-unresolved-external-symbol/10049210). // // RUN: rm -rf %t // RUN: mkdir %t // RUN: split-file %s %t // // RUN: %clang_cc1 -std=c++20 %t/base.cppm -emit-module-interface -o %t/package-base.pcm // RUN: %clang_cc1 -std=c++20 %t/child.cppm -emit-module-interface -o %t/package-child.pcm \ // RUN: -fprebuilt-module-path=%t // RUN: %clang_cc1 -std=c++20 %t/package.cppm -emit-module-interface -o %t/package.pcm \ // RUN: -fprebuilt-module-path=%t // RUN: %clang_cc1 -std=c++20 %t/use.cpp -fsyntax-only -verify -fprebuilt-module-path=%t //--- base.cppm export module package:base; export struct child; export template<class> struct base { child getChild(); }; //--- child.cppm export module package:child; import :base; export struct child : base<void> {}; template<class T> child base<T>::getChild() { return {}; } //--- package.cppm export module package; export import :base; export import :child; //--- use.cpp // expected-no-diagnostics import package; int use() { base<void>{}.getChild(); base<int>{}.getChild(); return 0; }