re PR c++/77598 (constexpr compilation failure on reference type casting)
authorJason Merrill <jason@gcc.gnu.org>
Tue, 10 Jan 2017 22:33:09 +0000 (17:33 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 10 Jan 2017 22:33:09 +0000 (17:33 -0500)
PR c++/77598

* g++.dg/cpp0x/constexpr-ref11.C: New.

From-SVN: r244296

gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C
new file mode 100644 (file)
index 0000000..78ea77e
--- /dev/null
@@ -0,0 +1,26 @@
+// PR c++/77598
+// { dg-do compile { target c++11 } }
+
+template <typename T>
+struct A { static constexpr T a = T (); };
+template <typename T>
+constexpr T A<T>::a;
+struct B
+{
+  int b;
+  constexpr int foo () const { return b; }
+  constexpr B (const int &x) : b(x) {};
+};
+struct C : public B
+{
+  constexpr C () : B(50) {};
+};
+struct D : public C
+{
+};
+struct E
+{
+  static constexpr const auto &e = A<D>::a;
+};
+constexpr const B &f = E::e;
+constexpr const int g = f.foo ();