// RUN: %clang_cc1 -std=c++20 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s

module;
# 5 __FILE__ 1
class Pooh;
class Piglet;
# 8 "" 2

export module std; // might happen, you can't say it won't!

namespace std {
export template<typename T> class allocator {
// just for testing, not real!
void M (T *);
template <typename U> U *N (T *);
};

template<typename T> void allocator<T>::M (T *) {}
template<typename T> template<typename U> U *allocator<T>::N (T *) {
return nullptr;
}

// CHECK-DAG: void @_ZNStW3std9allocatorIiE1MEPi(
template void allocator<int>::M (int *);
// CHECK-DAG: @_ZNStW3std9allocatorIiE1NIfEEPT_Pi(
template float *allocator<int>::N<float> (int *);
}

// CHECK-DAG: @_ZNStW3std9allocatorI4PoohE1MEPS1_(
template void std::allocator<Pooh>::M (Pooh *);
// CHECK-DAG: @_ZNStW3std9allocatorI4PoohE1NI6PigletEEPT_PS1_(
template Piglet *std::allocator<Pooh>::N<Piglet> (Pooh *);
