c-common.c (c_common_lang_init): New function.
authorJoseph Myers <jsm28@cam.ac.uk>
Wed, 3 Jan 2001 20:56:22 +0000 (20:56 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Wed, 3 Jan 2001 20:56:22 +0000 (20:56 +0000)
* 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.

cp:
* lex.c (lang_init): Call c_common_lang_init.

From-SVN: r38672

gcc/ChangeLog
gcc/c-common.c
gcc/c-common.h
gcc/c-lang.c
gcc/cp/ChangeLog
gcc/cp/lex.c
gcc/objc/objc-act.c

index 38b63f9..fa8e677 100644 (file)
@@ -1,5 +1,14 @@
 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
index 27dc087..71234b7 100644 (file)
@@ -6555,3 +6555,26 @@ boolean_increment (code, arg)
   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");
+}
index c37c38a..a5e43e4 100644 (file)
@@ -513,6 +513,8 @@ extern void c_common_nodes_and_builtins             PARAMS ((void));
 
 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.  */
index 5217391..b96895d 100644 (file)
@@ -62,9 +62,7 @@ lang_init_options ()
 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)
index 492a4dc..7404a1a 100644 (file)
@@ -1,3 +1,7 @@
+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.
index 0565704..a203ac9 100644 (file)
@@ -1,6 +1,6 @@
 /* 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.
@@ -262,9 +262,7 @@ lang_init_options ()
 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);
index 5b6e33a..99f2d23 100644 (file)
@@ -1,6 +1,6 @@
 /* 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.
@@ -704,6 +704,8 @@ lang_init ()
      not to be built in.  */
   lineno = 0;
 
+  c_common_lang_init ();
+
   /* If gen_declaration desired, open the output file.  */
   if (flag_gen_declaration)
     {