decl.c (grokdeclarator): Tweak conditions for pedwarn in previous change.
authorJason Merrill <jason@gcc.gnu.org>
Tue, 11 Nov 1997 04:10:30 +0000 (23:10 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 11 Nov 1997 04:10:30 +0000 (23:10 -0500)
* decl.c (grokdeclarator): Tweak conditions for pedwarn in
  previous change.

Mon Nov 10 20:08:29 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>

* pt.c (coerce_template_parms): Tweak error message.

* decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
return type defaults to `int', even if there are storage-class
specifiers.

From-SVN: r16425

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/pt.c

index b96f7b27434cbf511308c5a52b709549b10b6fa2..bd15ca1d3b6cb00eb356425dc784e039cf608d2d 100644 (file)
@@ -4,6 +4,19 @@ Sun Nov  9 01:29:55 1997  Jim Wilson  (wilson@cygnus.com)
        * init.c (build_vec_delete_1): Delete build_block and
        add_block_current_level calls.
 
+Mon Nov 10 20:08:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * decl.c (grokdeclarator): Tweak conditions for pedwarn in
+       previous change.
+
+Mon Nov 10 20:08:29 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
+
+       * pt.c (coerce_template_parms): Tweak error message.
+
+       * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
+       return type defaults to `int', even if there are storage-class
+       specifiers.
+
 Mon Nov 10 03:04:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
        Complete nested exception support.
index 667f1859b3843f60362d019afa9bea4e500b0463..486897f0a950d2fc93e6d8e8b52f6d381d947a2a 100644 (file)
@@ -8104,10 +8104,15 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
            }
          else if (RIDBIT_SETP (RID_TYPEDEF, specbits))
            pedwarn ("ANSI C++ forbids typedef which does not specify a type");
-         else if (declspecs == NULL_TREE
-                  && (innermost_code != CALL_EXPR || pedantic))
-           cp_pedwarn ("ANSI C++ forbids declaration `%D' with no type or storage class",
-                       dname);
+         else if (innermost_code != CALL_EXPR || pedantic
+                  || (warn_return_type && return_type == return_normal))
+           {
+             if (innermost_code == CALL_EXPR)
+               cp_pedwarn ("return-type of `%D' defaults to `int'", dname);
+             else
+               cp_pedwarn ("ANSI C++ forbids declaration `%D' with no type",
+                           dname);
+           }
          type = integer_type_node;
        }
     }
index 1d16bb2de0ef801bc6d9f7223fd811a370e653b8..dff871d42888b7d2fa33ecdeafba996ea0f34d5b 100644 (file)
@@ -1085,7 +1085,7 @@ coerce_template_parms (parms, arglist, in_decl)
            }
          else if (!TREE_CONSTANT (val))
            {
-             cp_error ("non-const `%E' cannot be used as template argument",
+             cp_error ("non-constant `%E' cannot be used as template argument",
                        arg);
              val = error_mark_node;
            }