Since
r13-707-g68e0063397ba82, COND_EXPR/VEC_COND_EXPR has not
allowed a comparison as the first operand but the gimple front-end
was not updated for this change and you would error out later on.
An assert was added with
r15-4791-gb60031e8f9f8fe which meant an ICE
would happen from the gimple FE.
This removes support for parsing of the `?:` expressions except for an
identifier.
Bootstrapped and tested on x86_64-linux-gnu.
gcc/c/ChangeLog:
PR c/117445
* gimple-parser.cc (c_parser_gimple_statement): Remove
support for comparisons before the querry (`?`) token.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
if (lhs.value != error_mark_node
&& rhs.value != error_mark_node)
{
- /* If we parsed a comparison or an identifier and the next token
- is a '?' then parse a conditional expression. */
- if ((COMPARISON_CLASS_P (rhs.value)
- || SSA_VAR_P (rhs.value))
- && c_parser_next_token_is (parser, CPP_QUERY))
+ /* If we parsed an identifier and the next token is a '?' then parse
+ a conditional expression. */
+ if (SSA_VAR_P (rhs.value) && c_parser_next_token_is (parser, CPP_QUERY))
{
struct c_expr trueval, falseval;
c_parser_consume_token (parser);