(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
opt/
pr99456.C
// PR c++/99456
// { dg-do compile { target c++17 } }
// { dg-options "-g0" }
// { dg-final { scan-assembler-not "PR99456Var0\[1234]" } }
// { dg-final { scan-assembler-not "__static_initialization_and_destruction" } }
// { dg-final { scan-assembler-not "_GLOBAL__sub_I" } }
// { dg-final { scan-assembler-not "_ZGV12PR99456Var1\[1234]" } }

typedef __UINTPTR_TYPE__ uintptr_t;

class Container
{
public:
  uintptr_t m;
};

extern unsigned desc;
static constexpr unsigned &descRef = desc;

inline Container PR99456Var01 {reinterpret_cast<uintptr_t> (&descRef)};
inline Container PR99456Var02 {reinterpret_cast<uintptr_t> (&desc)};
inline uintptr_t PR99456Var03 {reinterpret_cast<uintptr_t> (&descRef)};
inline uintptr_t PR99456Var04 {reinterpret_cast<uintptr_t> (&desc)};

inline Container PR99456Var11 {reinterpret_cast<uintptr_t> (&descRef)};
inline Container PR99456Var12 {reinterpret_cast<uintptr_t> (&desc)};
inline uintptr_t PR99456Var13 {reinterpret_cast<uintptr_t> (&descRef)};
inline uintptr_t PR99456Var14 {reinterpret_cast<uintptr_t> (&desc)};

auto *PR99456Ref11 = &PR99456Var11;
auto *PR99456Ref12 = &PR99456Var12;
auto *PR99456Ref13 = &PR99456Var13;
auto *PR99456Ref14 = &PR99456Var14;