aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2010-06-24 12:47:30 +0000
committerManuel López-Ibáñez <manu@gcc.gnu.org>2010-06-24 12:47:30 +0000
commitd166d4c3e54199524a809b00f388d2731774793e (patch)
treefeb6608bcdc33e63afab0b9361ebcd8869ffbf0f /gcc/c-parser.c
parentb27c1cde2eef96d0aadf6231817c40c688bec12f (diff)
downloadgcc-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.c7
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);