From 8cef58751ad6ddd0d84545cb509395c7b5216445 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 10 Jan 2017 17:33:09 -0500 Subject: [PATCH] re PR c++/77598 (constexpr compilation failure on reference type casting) PR c++/77598 * g++.dg/cpp0x/constexpr-ref11.C: New. From-SVN: r244296 --- gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C new file mode 100644 index 00000000000..78ea77e81d2 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-ref11.C @@ -0,0 +1,26 @@ +// PR c++/77598 +// { dg-do compile { target c++11 } } + +template +struct A { static constexpr T a = T (); }; +template +constexpr T A::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::a; +}; +constexpr const B &f = E::e; +constexpr const int g = f.foo (); -- 2.30.2