2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
+ * c-common.c (c_common_lang_init): New function. Warn if format
+ warning options which only have effects when used with -Wformat
+ are used without -Wformat.
+ * c-common.h (c_common_lang_init): Declare.
+ * c-lang.c (lang_init): Call c_common_lang_init.
+ * objc/objc-act.c (lang_init): Call c_common_lang_init.
+
+2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
+
* configure.in: Check for the mktemp command.
* configure: Regenerate.
* gccbug.in: Use a separate temporary file $TEMP0 for one use of
TREE_SIDE_EFFECTS (val) = 1;
return val;
}
+\f
+
+/* Do the parts of lang_init common to C and C++. */
+void
+c_common_lang_init ()
+{
+ /* If still "unspecified", make it match -fbounded-pointers. */
+ if (flag_bounds_check < 0)
+ flag_bounds_check = flag_bounded_pointers;
+
+ /* Special format checking options don't work without -Wformat; warn if
+ they are used. */
+ if (warn_format_y2k && !warn_format)
+ warning ("-Wformat-y2k ignored without -Wformat");
+ if (warn_format_extra_args && !warn_format)
+ warning ("-Wformat-extra-args ignored without -Wformat");
+ if (warn_format_nonliteral && !warn_format)
+ warning ("-Wformat-nonliteral ignored without -Wformat");
+ if (warn_format_security && !warn_format)
+ warning ("-Wformat-security ignored without -Wformat");
+ if (warn_missing_format_attribute && !warn_format)
+ warning ("-Wmissing-format-attribute ignored without -Wformat");
+}
extern tree build_va_arg PARAMS ((tree, tree));
+extern void c_common_lang_init PARAMS ((void));
+
/* Nonzero if the type T promotes to itself.
ANSI C states explicitly the list of types that promote;
in particular, short promotes to int even if they have the same width. */
void
lang_init ()
{
- /* If still "unspecified", make it match -fbounded-pointers. */
- if (flag_bounds_check < 0)
- flag_bounds_check = flag_bounded_pointers;
+ c_common_lang_init ();
/* If still unspecified, make it match pedantic && -std=c99. */
if (mesg_implicit_function_declaration < 0)
+2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * lex.c (lang_init): Call c_common_lang_init.
+
2001-01-03 Nathan Sidwell <nathan@codesourcery.com>
* search.c (lookup_fnfields_here): Remove.
/* Separate lexical analyzer for GNU C++.
Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000 Free Software Foundation, Inc.
+ 1999, 2000, 2001 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
void
lang_init ()
{
- /* If still "unspecified", make it match -fbounded-pointers. */
- if (flag_bounds_check < 0)
- flag_bounds_check = flag_bounded_pointers;
+ c_common_lang_init ();
if (flag_gnu_xref) GNU_xref_begin (input_filename);
init_repo (input_filename);
/* Implement classes and message passing for Objective C.
Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998,
- 1999, 2000 Free Software Foundation, Inc.
+ 1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Steve Naroff.
This file is part of GNU CC.
not to be built in. */
lineno = 0;
+ c_common_lang_init ();
+
/* If gen_declaration desired, open the output file. */
if (flag_gen_declaration)
{