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 38b63f933bbe121fee5dbf776584a71927eaae04..fa8e677d7b8f592565536b75630e4a7e95809e03 100644 (file)
@@ -1,3 +1,12 @@
+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.
index 27dc0873db692e6442451498c8321d2ab979a55d..71234b75bcb1c584a6b009f2bf7946d1c5b2d569 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 c37c38a3d783b445800ef180269afbf998a51961..a5e43e4d5dcedcf910109384d7f0e3ff9f81f476 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 52173917448b2321b6aed0c4f0d2afb4d0db2932..b96895d4c87f8a226a996930712ce4c2db853fc1 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 492a4dc461903cc5fc44b2def5539517a18d4a43..7404a1a001bab24ffaf8783cc2835c2d31c471b4 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 0565704e32fdfdfc28315bfe69e456aa8758e667..a203ac963dfb6239c9397677125a69c3908608c4 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 5b6e33a85083f91e1244e5ce05509a8f51482ebb..99f2d23055c0d05d85b60158a86492ec45a0c110 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)
     {