OSDN Git Service

* decl.c (grokdeclarator): Tweak conditions for pedwarn in
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Nov 1997 04:10:30 +0000 (04:10 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Nov 1997 04:10:30 +0000 (04:10 +0000)
  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.

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

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

index b96f7b2..bd15ca1 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 667f185..486897f 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 1d16bb2..dff871d 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;
            }