https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116775

--- Comment #8 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Iain Sandoe from comment #7)
> on a bit more examination - it seems to me that:
> 
> http://eel.is/c++draft/expr.await#2
> 
> says that this should be ill-formed 
> 
> Since the GCC doc says:
> 
> Built-in Function: int __builtin_constant_p (exp)
> You can use the built-in function __builtin_constant_p to determine if the
> expression exp is known to be constant at compile time and hence that GCC
> can perform constant-folding on expressions involving that value. The
> argument of the function is the expression to test. The expression is not
> evaluated, side-effects are discarded.

However, it seems that we do not treat the argument of __builtin_constantP() as
an unevaluated operand, and when I do - bootstrap fails... so there's some
conceptual difference between
"an operand that is not evaluated"
and a c++
"unevaluated operand"

(or the documentation for the builtin is in error)

Reply via email to