https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64666
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-10-10 Ever confirmed|0 |1 --- Comment #8 from Jason Merrill <jason at gcc dot gnu.org> --- Ah, true. There's a comment in the parser that says /* Although the grammar says "conditional-expression", we parse an "assignment-expression", which also permits "throw-expression" and the use of assignment operators. In the case that ALLOW_NON_CONSTANT_P is false, we get better errors than we would otherwise. In the case that ALLOW_NON_CONSTANT_P is true, it is actually essential that we look for an assignment-expression. For example, cp_parser_initializer_clauses uses this function to determine whether a particular assignment-expression is in fact constant. */ but with constexpr it seems that we need to be stricter.