* 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
+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
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
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. */
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. */
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;
-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
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
"-Wno-missing-declarations",
"-Wmissing-prototypes",
"-Wno-missing-prototypes",
+ "-Wmultichar",
+ "-Wno-multichar",
"-Wnested-externs",
"-Wno-nested-externs",
"-Wparentheses",