* c-decl.c (grokdeclarator): In C99 mode, give the more specific
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Feb 2001 17:31:42 +0000 (17:31 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Feb 2001 17:31:42 +0000 (17:31 +0000)
"return type defaults" warning for functions with return type
defaulting to int.
* c-lang.c (c_init): In C99 mode, enable warnings for implicit
function declarations by default rather than only when pedantic.

testsuite:
* gcc.dg/c99-impl-int-1.c: Use stricter error string for implicit
return type.
* gcc.dg/cpp/digraphs.c: Declare puts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39608 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-decl.c
gcc/c-lang.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/c99-impl-int-1.c
gcc/testsuite/gcc.dg/cpp/digraphs.c

index c36eaf9..f72e73d 100644 (file)
@@ -1,3 +1,11 @@
+2001-02-12  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * c-decl.c (grokdeclarator): In C99 mode, give the more specific
+       "return type defaults" warning for functions with return type
+       defaulting to int.
+       * c-lang.c (c_init): In C99 mode, enable warnings for implicit
+       function declarations by default rather than only when pedantic.
+
 Mon Feb 12 17:28:48 CET 2001  Jan Hubicka  <jh@suse.cz>
 
        * regclass.c (init_reg_sets_1): Optimize calculation of move_cost
index ef5bb38..f0d229d 100644 (file)
@@ -3973,7 +3973,8 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
          /* Issue a warning if this is an ISO C 99 program or if -Wreturn-type
             and this is a function, or if -Wimplicit; prefer the former
             warning since it is more explicit.  */
-         if ((warn_implicit_int || warn_return_type) && funcdef_flag)
+         if ((warn_implicit_int || warn_return_type || flag_isoc99)
+             && funcdef_flag)
            warn_about_return_type = 1;
          else if (warn_implicit_int || flag_isoc99)
            pedwarn_c99 ("type defaults to `int' in declaration of `%s'",
index 87c65fb..53ebdab 100644 (file)
@@ -70,10 +70,11 @@ c_init ()
 {
   c_common_lang_init ();
 
-  /* If still unspecified, make it match pedantic && -std=c99.  */
+  /* If still unspecified, make it match -std=c99
+     (allowing for -pedantic-errors).  */
   if (mesg_implicit_function_declaration < 0)
     {
-      if (pedantic && flag_isoc99)
+      if (flag_isoc99)
        mesg_implicit_function_declaration = flag_pedantic_errors ? 2 : 1;
       else
        mesg_implicit_function_declaration = 0;
index 7392506..fc6c219 100644 (file)
@@ -1,3 +1,9 @@
+2001-02-12  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+       * gcc.dg/c99-impl-int-1.c: Use stricter error string for implicit
+       return type.
+       * gcc.dg/cpp/digraphs.c: Declare puts.
+
 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
 
        * g++.old-deja/g++.other/warn5.C: New test.
index 2e5cad5..dcc2520 100644 (file)
@@ -6,4 +6,4 @@
 extern foo; /* { dg-bogus "warning" "warning in place of error" } */
 /* { dg-error "type defaults" "C99 implicit int error" { target *-*-* } 6 } */
 bar (void) { } /* { dg-bogus "warning" "warning in place of error" } */
-/* { dg-error "type defaults" "C99 implicit int error" { target *-*-* } 8 } */
+/* { dg-error "return type defaults" "C99 implicit int error" { target *-*-* } 8 } */
index e4ae0e0..49a1bcd 100644 (file)
@@ -8,6 +8,7 @@
 
 extern int strcmp (const char *, const char *);
 extern void abort (void);
+extern int puts (const char *);
 #define err(str) do { puts(str); abort(); } while (0)
 
 %:define glue(x, y) x %:%: y   /* #define glue(x, y) x ## y. */