brintos

brintos / llvm-project-archived public Read only

0
0
Text · 862 B · b090607 Raw
35 lines · plain
1// RUN: rm -rf %t2// RUN: mkdir %t3// RUN: split-file %s %t4 5// RUN: %clang_cc1 -std=c++20 %t/a.cppm -triple %itanium_abi_triple -emit-module-interface -o %t/a.pcm6// RUN: %clang_cc1 -std=c++20 %t/a.cc -triple %itanium_abi_triple -fmodule-file=a=%t/a.pcm -emit-llvm -o - | FileCheck %t/a.cc7//8// RUN: %clang_cc1 -std=c++20 %t/a.cppm -triple %itanium_abi_triple -emit-reduced-module-interface -o %t/a.pcm9// RUN: %clang_cc1 -std=c++20 %t/a.cc -triple %itanium_abi_triple -fmodule-file=a=%t/a.pcm -emit-llvm -o - | FileCheck %t/a.cc10 11//--- a.cppm12export module a;13class base {14public:15    ~base() = default;16    virtual void foo();17};18 19template <class T>20class a : public base {21public:22    virtual void foo() override;23};24 25extern template class a<int>;26 27//--- a.cc28module a;29 30template <class T>31void a<T>::foo() {}32 33template class a<int>;34// CHECK: _ZTVW1a1aIiE35