diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C new file mode 100644 index 0000000..ce1ce52 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C @@ -0,0 +1,18 @@ +// PR c++/54777 +// { dg-do compile { target c++11 } } + +struct S +{ + int s[1]; + constexpr const int &foo (unsigned i) { return (i < 1 ? 0 : throw 1), s[i]; } + constexpr const int &bar (unsigned i) { return i < 1 ? s[i] : (throw 0, s[i]); } +}; + +int +main () +{ + constexpr S a {}; + constexpr int i = a.foo (0); + constexpr int j = a.bar (0); + static_assert (i == j, "Ouch"); +} |