aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>1997-11-10 23:10:30 -0500
committerJason Merrill <jason@gcc.gnu.org>1997-11-10 23:10:30 -0500
commit343fdf03d406d874d1a6fe90d94a16949a2d9f4b (patch)
tree4078d9aa0ba92b2b4e240cfd05eb2c35b78e02d4
parent6d1350cdde0d7241b4649729cb65ccf9d323feaa (diff)
downloadgcc-343fdf03d406d874d1a6fe90d94a16949a2d9f4b.zip
gcc-343fdf03d406d874d1a6fe90d94a16949a2d9f4b.tar.gz
gcc-343fdf03d406d874d1a6fe90d94a16949a2d9f4b.tar.bz2
decl.c (grokdeclarator): Tweak conditions for pedwarn in previous change.
* 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
-rw-r--r--gcc/cp/ChangeLog13
-rw-r--r--gcc/cp/decl.c13
-rw-r--r--gcc/cp/pt.c2
3 files changed, 23 insertions, 5 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b96f7b2..bd15ca1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 667f185..486897f 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -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;
}
}
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 1d16bb2..dff871d 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -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;
}