| // PR c++/54777 | |
| // { dg-do compile { target c++11 } } | |
| struct S | |
| { | |
| int s[1]; | |
| constexpr const int &foo (unsigned i) const { return (i < 1 ? 0 : throw 1), s[i]; } | |
| constexpr const int &bar (unsigned i) const { 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"); | |
| } |