blob: 0f138781ad56a8cd776232885c2a3191c49eb2f3 [file] [log] [blame]
// { dg-additional-options "-fmodules-ts" }
// { dg-module-cmi !M }
// Exposures (or not) of TU-local values
export module M;
static void f() {}
auto& fr = f; // OK
constexpr auto& fr2 = fr; // { dg-error "initialized to a TU-local value" }
static constexpr auto fp2 = fr; // OK
struct S { void (&ref)(); } s{ f }; // OK, value is TU-local
constexpr extern struct W { S& s; } wrap{ s }; // OK, value is not TU-local
constexpr S s2{ f }; // { dg-error "initialized to a TU-local value" }
constexpr int a = 123;
static constexpr int b = 456;
struct X {
union {
const int* p[2];
};
};
constexpr X x { &a }; // OK
constexpr X y { &a, &b }; // { dg-error "initialized to a TU-local value" }