view gcc/testsuite/g++.dg/cpp0x/constexpr-ref4.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

// 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");
}