diff options
author | Andi Kleen <ak@linux.intel.com> | 2010-06-24 12:47:30 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2010-06-24 12:47:30 +0000 |
commit | d166d4c3e54199524a809b00f388d2731774793e (patch) | |
tree | feb6608bcdc33e63afab0b9361ebcd8869ffbf0f /gcc/c-parser.c | |
parent | b27c1cde2eef96d0aadf6231817c40c688bec12f (diff) | |
download | gcc-d166d4c3e54199524a809b00f388d2731774793e.zip gcc-d166d4c3e54199524a809b00f388d2731774793e.tar.gz gcc-d166d4c3e54199524a809b00f388d2731774793e.tar.bz2 |
c-parser.c (c_parser_conditional_expression): Call warn_for_omitted_condop.
2010-06-24 Andi Kleen <ak@linux.intel.com>
* c-parser.c (c_parser_conditional_expression):
Call warn_for_omitted_condop.
* doc/invoke.texi: Document omitted condop warning.
c-family/
* c-common.c (warn_for_omitted_condop): New.
* c-common.h (warn_for_omitted_condop): Add prototype.
testsuite/
* c-c++-common/warn-omitted-condop.c: New.
cp/
* parser.c: (cp_parser_question_colon_clause):
Switch to use cp_lexer_peek_token.
Call warn_for_omitted_condop. Call pedwarn for omitted
middle operand.
From-SVN: r161318
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r-- | gcc/c-parser.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 04506df..ba18478 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -4795,7 +4795,7 @@ static struct c_expr c_parser_conditional_expression (c_parser *parser, struct c_expr *after) { struct c_expr cond, exp1, exp2, ret; - location_t cond_loc, colon_loc; + location_t cond_loc, colon_loc, middle_loc; gcc_assert (!after || c_dialect_objc ()); @@ -4809,8 +4809,11 @@ c_parser_conditional_expression (c_parser *parser, struct c_expr *after) if (c_parser_next_token_is (parser, CPP_COLON)) { tree eptype = NULL_TREE; - pedwarn (c_parser_peek_token (parser)->location, OPT_pedantic, + + middle_loc = c_parser_peek_token (parser)->location; + pedwarn (middle_loc, OPT_pedantic, "ISO C forbids omitting the middle term of a ?: expression"); + warn_for_omitted_condop (middle_loc, cond.value); if (TREE_CODE (cond.value) == EXCESS_PRECISION_EXPR) { eptype = TREE_TYPE (cond.value); |