Daily bump.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-reinterpret1.C
blob4e19cd36a9f6675fe7dcca9555570b60c18db2cf
1 // PR c++/56728
2 // { dg-require-effective-target c++11 }
4 class B {
5 public:
6   static B instance;
7   class Inner
8   {
9   public:
10     class Wuzi
11     {
12       unsigned int m;
13     } m_Class[3];
14     unsigned m_Int[4];
15   };
17   constexpr static Inner & getInner()
18   /* I am surprised this is considered a constexpr */
19   {
20     return *((Inner *)4); // { dg-error "reinterpret_cast" "" { target c++20_down } }
21   }
24 B B::instance;
26 class A
28 public:
29   constexpr A(B &bridge, B::Inner &bridge2, unsigned char index)
30     : m_Bridge(bridge), m_Wuz(bridge2.m_Class[index])
31   {}
33   B &m_Bridge;
34   B::Inner::Wuzi &m_Wuz;
36 A works{B::instance, B::getInner(), 3};
37 A crashnkill[1]{{B::instance, B::getInner(), 3}};