mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-20 23:30:54 +00:00
[NFC] [C++20] [Modules] Adopt a test case from MSVC
Add a test case from MSVC (https://developercommunity.visualstudio.com/t/c20-modules-unresolved-external-symbol/10049210) to cover more tests.
This commit is contained in:
parent
2c5d1b5ab7
commit
201c10537a
@ -0,0 +1,52 @@
|
||||
// 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user