(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
ext/
visibility/
ref-temp1.C
// PR c++/91476
// Test that hidden and internal visibility propagates to reference temps.
// { dg-require-visibility "" }

#define HIDDEN __attribute((visibility("hidden")))

// { dg-final { scan-hidden "_ZGRZ1fvE3foo_" } }
HIDDEN inline const int* f() { static const int &foo = 1; return &foo; }

// { dg-final { scan-assembler-not "(weak|globl)\[^\n\]*_ZGRN12_GLOBAL__N_13fooE_" } }
namespace { const int &foo = 1; }

const void *volatile p;
int main()
{
  p = f();
  p = &foo;
}