* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-reinterpret1.C
blobd7d244f752daa2d7a0381100391b0e54e8688297
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" }
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}};