blob: 6ead0731f51284348cc1998f546e43fda29498b0 [file]
// RUN: rm -rf %t
// RUN: mkdir -p %t
// RUN: split-file %s %t
//
// RUN: %clang_cc1 -std=c++20 %t/counter.cppm -triple x86_64-pc-linux-gnu \
// RUN: -emit-reduced-module-interface -o %t/counter.pcm
// RUN: %clang_cc1 -std=c++20 %t/user.cpp -triple x86_64-pc-linux-gnu -fprebuilt-module-path=%t \
// RUN: -disable-llvm-passes -emit-llvm -o - | FileCheck %s
//--- counter.cppm
export module counter;
namespace counter {
// Works without thread_local or with inline keyword
thread_local int next = 1;
export inline auto get_next() noexcept -> int
{
return next++;
}
}
//--- user.cpp
import counter;
auto user() -> int
{
return counter::get_next();
}
// CHECK: @_ZN7counterW7counter4nextE = external {{.*}}thread_local {{.*}}global