/cp
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-reinterpret1.C
blob69db98bc7727a5b282638224be609131c737474b
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   {
19     /* I am surprised this is considered a constexpr */
20     return *((Inner *)4);
21   } // { dg-error "reinterpret_cast" }
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}};