c-decl.c: Add warn_multichar.

* c-decl.c: Add warn_multichar.
        (c_decode_option): Handle -Wno-multichar.
        * c-lex.c (yylex): Check it.
        * c-tree.h: Declare it.
        * toplev.c (lang_options): Add it.
        * invoke.texi: Document it.

From-SVN: r20968
This commit is contained in:
Jason Merrill 1998-07-06 21:53:23 +00:00 committed by Jeff Law
parent ed79bb3d42
commit 4a870dba91
6 changed files with 30 additions and 2 deletions

View file

@ -1,3 +1,12 @@
Mon Jul 6 22:50:48 1998 Jason Merrill <jason@yorick.cygnus.com>
* c-decl.c: Add warn_multichar.
(c_decode_option): Handle -Wno-multichar.
* c-lex.c (yylex): Check it.
* c-tree.h: Declare it.
* toplev.c (lang_options): Add it.
* invoke.texi: Document it.
Mon Jul 6 22:47:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changed

View file

@ -577,6 +577,10 @@ int warn_unknown_pragmas = 0; /* Tri state variable. */
int warn_sign_compare = -1;
/* Nonzero means warn about use of multicharacter literals. */
int warn_multichar = 1;
/* Nonzero means `$' can be in an identifier. */
#ifndef DOLLARS_IN_IDENTIFIERS
@ -792,6 +796,10 @@ c_decode_option (argc, argv)
warn_sign_compare = 1;
else if (!strcmp (p, "-Wno-sign-compare"))
warn_sign_compare = 0;
else if (!strcmp (p, "-Wmultichar"))
warn_multichar = 1;
else if (!strcmp (p, "-Wno-multichar"))
warn_multichar = 0;
else if (!strcmp (p, "-Wunknown-pragmas"))
/* Set to greater than 1, so that even unknown pragmas in system
headers will be warned about. */

View file

@ -1872,7 +1872,7 @@ yylex ()
num_chars = max_chars;
error ("character constant too long");
}
else if (num_chars != 1 && ! flag_traditional)
else if (num_chars != 1 && ! flag_traditional && warn_multichar)
warning ("multi-character character constant");
/* If char type is signed, sign-extend the constant. */

View file

@ -505,6 +505,10 @@ extern int warn_missing_braces;
extern int warn_sign_compare;
/* Warn about multicharacter constants. */
extern int warn_multichar;
/* Nonzero means we are reading code that came from a system header file. */
extern int system_header_p;

View file

@ -122,7 +122,7 @@ in the following sections.
-Wimplicit-function-declaration -Wimport
-Werror-implicit-function-declaration -Winline
-Wlarger-than-@var{len} -Wmain -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wno-import
-Wmissing-prototypes -Wmultichar -Wnested-externs -Wno-import
-Wold-style-cast -Woverloaded-virtual -Wparentheses
-Wpointer-arith -Wredundant-decls -Wreorder -Wreturn-type
-Wshadow -Wsign-compare -Wstrict-prototypes -Wswitch
@ -1287,6 +1287,11 @@ Same as @samp{-Wimplicit-int} and @samp{-Wimplicit-function-}@*
Warn if the type of @samp{main} is suspicious. @samp{main} should be a
function with external linkage, returning int, taking either zero
arguments, two, or three arguments of appropriate types.
@item -Wmultichar
Warn if a multicharacter constant (@samp{'FOOF'}) is used. Usually they
indicate a typo in the user's code, as they have implementation-defined
values, and should not be used in portable code.
@item -Wparentheses
Warn if parentheses are omitted in certain contexts, such

View file

@ -872,6 +872,8 @@ char *lang_options[] =
"-Wno-missing-declarations",
"-Wmissing-prototypes",
"-Wno-missing-prototypes",
"-Wmultichar",
"-Wno-multichar",
"-Wnested-externs",
"-Wno-nested-externs",
"-Wparentheses",