blob: dde38f05acded200e892dea993ed7f2a7f7bfb44 [file] [log] [blame]
// PR c++/54021
// { dg-do compile { target c++11 } }
extern int nonconst_func(int);
constexpr int identity(int x) { return x; }
constexpr int zero() { return identity(0); }
constexpr int one() { return identity(1); }
// These are the same. Only the latter is accepted, though.
constexpr int rejected_const_4(int x)
{ return __builtin_constant_p(x) ? 4 : nonconst_func(x); }
constexpr int accepted_const_4(int x)
{ return identity(__builtin_constant_p(x)) ? 4 : nonconst_func(x); }
// This is rejected. I would like it to work.
constexpr int four = accepted_const_4(1);