diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C new file mode 100644 index 0000000..f3e4cea --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref1.C @@ -0,0 +1,44 @@ +// PR c++/49172 +// { dg-do compile { target c++11 } } + +#define SA(X) static_assert((X),#X) + +constexpr int g() { return 42; } +constexpr int(&rg)() = g; // #1 + +SA(rg() == 42); + +constexpr int i = 24; +constexpr int const& ri = i; // #2 + +SA(&ri == &i); +SA(ri == 24); + +void f() +{ + constexpr int(&rg)() = g; // #1 + + SA(rg() == 42); + + constexpr static int i = 24; + constexpr int const& ri = i; // #2 + + SA(&ri == &i); + SA(ri == 24); +} + +template <class T> +void f2() +{ + constexpr int(&rg)() = g; // #1 + + SA(rg() == 42); + + constexpr static int i = 24; + constexpr int const& ri = i; // #2 + + SA(&ri == &i); + SA(ri == 24); +} + +template void f2<int>(); |