[RFC v1 5/5] dbg

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
 gcc/c/c-parser.cc | 24 ++++++++++++++++++++++++
 gcc/c/c-typeck.cc |  3 +++
 2 files changed, 27 insertions(+)

diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc
index 49e72267967..90f7f609144 100644
--- a/gcc/c/c-parser.cc
+++ b/gcc/c/c-parser.cc
@@ -4874,6 +4874,8 @@ c_parser_direct_declarator (c_parser *parser, bool type_seen_p, c_dtr_syn kind,
       c_parser_consume_token (parser);
       if (c_parser_nth_token_starts_std_attributes (parser, 1))
 	inner->u.id.attrs = c_parser_std_attribute_specifier_sequence (parser);
+// XXX:  'int f(int n)[n];'  triggers this
+warning_at (c_parser_peek_token(parser)->location, OPT_Wsign_conversion, "ALX: J");
       return c_parser_direct_declarator_inner (parser, *seen_id, inner);
     }
 
@@ -5007,7 +5009,11 @@ c_parser_direct_declarator_inner (c_parser *parser, bool id_present,
 	  c_parser_consume_token (parser);
 	}
       else if (!c_parser_next_token_is (parser, CPP_CLOSE_SQUARE))
+{
+// XXX:  'int f(int n)[n];'  triggers this
+warning_at (c_parser_peek_token(parser)->location, OPT_Wsign_conversion, "ALX: H");
 	dimen = c_parser_expr_no_commas (parser, NULL);
+}
 
       if (static_seen)
 	{
@@ -5080,6 +5086,8 @@ c_parser_direct_declarator_inner (c_parser *parser, bool id_present,
 		inner = build_attrs_declarator (std_attrs, inner);
 	    }
 	  inner = build_function_declarator (args, inner);
+// XXX:  'int f(int n)[n];'  triggers this
+warning_at (c_parser_peek_token(parser)->location, OPT_Wsign_conversion, "ALX: I");
 	  ret = c_parser_direct_declarator_inner (parser, id_present, inner);
 	  pop_scope ();
 	  return ret;
@@ -9824,6 +9832,8 @@ c_parser_expr_no_commas (c_parser *parser, struct c_expr *after,
   bool save_in_omp_for = c_in_omp_for;
   c_in_omp_for = false;
   gcc_assert (!after || c_dialect_objc ());
+// XXX:  'int f(int n)[n];'  triggers this
+warning_at (c_parser_peek_token(parser)->location, OPT_Wsign_conversion, "ALX: G");
   lhs = c_parser_conditional_expression (parser, after, omp_atomic_lhs);
   op_location = c_parser_peek_token (parser)->location;
   switch (c_parser_peek_token (parser)->type)
@@ -9911,6 +9921,8 @@ c_parser_conditional_expression (c_parser *parser, struct c_expr *after,
 
   gcc_assert (!after || c_dialect_objc ());
 
+// XXX:  'int f(int n)[n];'  triggers this
+warning_at (c_parser_peek_token(parser)->location, OPT_Wsign_conversion, "ALX: F");
   cond = c_parser_binary_expression (parser, after, omp_atomic_lhs);
 
   if (c_parser_next_token_is_not (parser, CPP_QUERY))
@@ -10216,6 +10228,8 @@ c_parser_binary_expression (c_parser *parser, struct c_expr *after,
   } while (0)
   gcc_assert (!after || c_dialect_objc ());
   stack[0].loc = c_parser_peek_token (parser)->location;
+// XXX:  'int f(int n)[n];'  triggers this
+warning_at (stack[0].loc, OPT_Wsign_conversion, "ALX: E");
   stack[0].expr = c_parser_cast_expression (parser, after);
   stack[0].prec = PREC_NONE;
   stack[0].sizeof_arg = c_last_sizeof_arg;
@@ -10448,8 +10462,13 @@ c_parser_cast_expression (c_parser *parser, struct c_expr *after)
       return ret;
     }
   else
+{
+// XXX:  'int f(int n)[n];'  triggers this
+location_t loc = c_parser_peek_token (parser)->location;
+warning_at (loc, OPT_Wsign_conversion, "ALX: D");
     return c_parser_unary_expression (parser);
 }
+}
 
 /* Parse an unary expression (C90 6.3.3, C99 6.5.3, C11 6.5.3).
 
@@ -10610,6 +10629,9 @@ c_parser_unary_expression (c_parser *parser)
 	  return c_parser_postfix_expression (parser);
 	}
     default:
+// XXX:  'int f(int n)[n];'  triggers this
+location_t loc = c_parser_peek_token (parser)->location;
+warning_at (loc, OPT_Wsign_conversion, "ALX: C");
       return c_parser_postfix_expression (parser);
     }
 }
@@ -11486,6 +11508,8 @@ c_parser_postfix_expression (c_parser *parser)
 	  {
 	    tree id = c_parser_peek_token (parser)->value;
 	    c_parser_consume_token (parser);
+// XXX:  'int f(int n)[n];'  triggers this
+               warning_at (loc, OPT_Wsign_conversion, "ALX: B");
 	    expr.value = build_external_ref (loc, id,
 					     (c_parser_peek_token (parser)->type
 					      == CPP_OPEN_PAREN),
diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc
index 0e1f842e22d..e5bd9eca3a8 100644
--- a/gcc/c/c-typeck.cc
+++ b/gcc/c/c-typeck.cc
@@ -3516,6 +3516,9 @@ build_external_ref (location_t loc, tree id, bool fun, tree *type)
     return error_mark_node;
   else
     {
+// XXX:  'int f(int n)[n];'  triggers this
+		warning_at (loc, OPT_Wsign_conversion, "ALX: A");
+
       undeclared_variable (loc, id);
       return error_mark_node;
     }
-- 
2.49.0




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux