PR c++/65209
[official-gcc.git] / gcc / testsuite / g++.dg / abi / anon4.C
blob088ba99401936c62b401ff6c91dc1607c3e0a5c8
1 // PR c++/65209
2 // { dg-final { scan-assembler-not "comdat" } }
4 // Everything involving the anonymous namespace bits should be private, not
5 // COMDAT.
7 struct Bar
9   static Bar *self();
10   char pad[24];
13 template <Bar *(&holderFunction)()>
14 struct BarGlobalStatic
16   Bar *operator()() { return holderFunction(); }
19 namespace {
20   namespace Q_QGS_s_self {
21     inline Bar *innerFunction() {
22       static struct Holder {
23         Bar value;
24         ~Holder() {}
25       } holder;
26       return &holder.value;
27     }
28   }
30 static BarGlobalStatic<Q_QGS_s_self::innerFunction> s_self;
32 Bar *Bar::self()
34   return s_self();
37 int main(int argc, char *argv[])
39   Bar* bar = Bar::self();
40   return 0;