Fix PR c++/69139 (deduction failure with trailing return type)
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / constexpr-reinterpret1.C
blob0ea42a0f98cbb4b96aa23560462744501869d0a9
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   { return *((Inner *)4); } // { dg-error "reinterpret_cast" "" }
22 B B::instance;
24 class A
26 public:
27   constexpr A(B &bridge, B::Inner &bridge2, unsigned char index)
28     : m_Bridge(bridge), m_Wuz(bridge2.m_Class[index])
29   {}
31   B &m_Bridge;
32   B::Inner::Wuzi &m_Wuz;
34 A works{B::instance, B::getInner(), 3};
35 A crashnkill[1]{{B::instance, B::getInner(), 3}};