Commit cde6e684 by Kaveh R. Ghazi Committed by Kaveh Ghazi

c-decl.c (duplicate_decls, [...]): Restrict -Wtraditional warnings to user code.

	* c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
	warnings to user code.

	* c-lex.c (readescape, yylex): Likewise.

	* c-typeck.c (store_init_value, process_init_element): Likewise
	(c_expand_start_case): Format.

From-SVN: r35845
parent 120dc6cd
2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
warnings to user code.
* c-lex.c (readescape, yylex): Likewise.
* c-typeck.c (store_init_value, process_init_element): Likewise
(c_expand_start_case): Format.
2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
* mips/linux.h (LINK_SPEC): Use %(endian_spec). * mips/linux.h (LINK_SPEC): Use %(endian_spec).
......
...@@ -1760,7 +1760,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level) ...@@ -1760,7 +1760,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
/* If warn_traditional, warn when a non-static function /* If warn_traditional, warn when a non-static function
declaration follows a static one. */ declaration follows a static one. */
if (warn_traditional if (warn_traditional && !in_system_header
&& TREE_CODE (olddecl) == FUNCTION_DECL && TREE_CODE (olddecl) == FUNCTION_DECL
&& !TREE_PUBLIC (olddecl) && !TREE_PUBLIC (olddecl)
&& TREE_PUBLIC (newdecl)) && TREE_PUBLIC (newdecl))
...@@ -2751,7 +2751,7 @@ define_label (filename, line, name) ...@@ -2751,7 +2751,7 @@ define_label (filename, line, name)
decl = lookup_label (name); decl = lookup_label (name);
} }
if (warn_traditional && lookup_name (name)) if (warn_traditional && !in_system_header && lookup_name (name))
warning ("traditional C lacks a separate namespace for labels, identifier `%s' conflicts", warning ("traditional C lacks a separate namespace for labels, identifier `%s' conflicts",
IDENTIFIER_POINTER (name)); IDENTIFIER_POINTER (name));
......
...@@ -902,7 +902,7 @@ readescape (ignore_ptr) ...@@ -902,7 +902,7 @@ readescape (ignore_ptr)
switch (c) switch (c)
{ {
case 'x': case 'x':
if (warn_traditional) if (warn_traditional && !in_system_header)
warning ("the meaning of `\\x' varies with -traditional"); warning ("the meaning of `\\x' varies with -traditional");
if (flag_traditional) if (flag_traditional)
...@@ -987,7 +987,7 @@ readescape (ignore_ptr) ...@@ -987,7 +987,7 @@ readescape (ignore_ptr)
return TARGET_BS; return TARGET_BS;
case 'a': case 'a':
if (warn_traditional) if (warn_traditional && !in_system_header)
warning ("the meaning of `\\a' varies with -traditional"); warning ("the meaning of `\\a' varies with -traditional");
if (flag_traditional) if (flag_traditional)
...@@ -1912,7 +1912,7 @@ yylex () ...@@ -1912,7 +1912,7 @@ yylex ()
/* We assume that constants specified in a non-decimal /* We assume that constants specified in a non-decimal
base are bit patterns, and that the programmer really base are bit patterns, and that the programmer really
meant what they wrote. */ meant what they wrote. */
if (warn_traditional && base == 10 if (warn_traditional && !in_system_header && base == 10
&& traditional_type != ansi_type) && traditional_type != ansi_type)
{ {
if (TYPE_PRECISION (traditional_type) if (TYPE_PRECISION (traditional_type)
......
...@@ -4396,7 +4396,7 @@ store_init_value (decl, init) ...@@ -4396,7 +4396,7 @@ store_init_value (decl, init)
} }
#endif #endif
if (warn_traditional if (warn_traditional && !in_system_header
&& AGGREGATE_TYPE_P (TREE_TYPE (decl)) && ! TREE_STATIC (decl)) && AGGREGATE_TYPE_P (TREE_TYPE (decl)) && ! TREE_STATIC (decl))
warning ("traditional C rejects automatic aggregate initialization"); warning ("traditional C rejects automatic aggregate initialization");
...@@ -6400,7 +6400,7 @@ process_init_element (value) ...@@ -6400,7 +6400,7 @@ process_init_element (value)
code appears conditioned on e.g. __STDC__ to avoid code appears conditioned on e.g. __STDC__ to avoid
"missing initializer" warnings and relies on default "missing initializer" warnings and relies on default
initialization to zero in the traditional C case. */ initialization to zero in the traditional C case. */
if (warn_traditional && !integer_zerop (value)) if (warn_traditional && !in_system_header && !integer_zerop (value))
warning ("traditional C rejects initialization of unions"); warning ("traditional C rejects initialization of unions");
/* Accept a string constant to initialize a subarray. */ /* Accept a string constant to initialize a subarray. */
...@@ -6739,8 +6739,7 @@ c_expand_start_case (exp) ...@@ -6739,8 +6739,7 @@ c_expand_start_case (exp)
tree index; tree index;
type = TYPE_MAIN_VARIANT (TREE_TYPE (exp)); type = TYPE_MAIN_VARIANT (TREE_TYPE (exp));
if (warn_traditional if (warn_traditional && !in_system_header
&& ! in_system_header
&& (type == long_integer_type_node && (type == long_integer_type_node
|| type == long_unsigned_type_node)) || type == long_unsigned_type_node))
warning ("`long' switch expression not converted to `int' in ISO C"); warning ("`long' switch expression not converted to `int' in ISO C");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment