decl.c (bad_specifiers): Don't allow exception specifications on any typedefs.
authorRichard Sandiford <rsandifo@redhat.com>
Tue, 16 Oct 2001 13:01:44 +0000 (13:01 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 16 Oct 2001 13:01:44 +0000 (13:01 +0000)
* decl.c (bad_specifiers): Don't allow exception specifications
on any typedefs.

From-SVN: r46285

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

index 467619534305f10f18ab18dc2fd9faaf26100328..f5a999286d6418e5bce5ad94f86b66aa7cb14ae3 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
+
+       * decl.c (bad_specifiers): Don't allow exception specifications
+       on any typedefs.
+
 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        * cp/lex.c (init_cp_pragma): Similarly.
index 60cceada0f7795ed03949cdac7c8c100d28f5f26..e499cdbfabec9188fbc7f05a8d2a4ebe581753de 100644 (file)
@@ -8643,8 +8643,10 @@ bad_specifiers (object, type, virtualp, quals, inlinep, friendp, raises)
              object, type);
   if (friendp)
     cp_error_at ("`%D' declared as a friend", object);
-  if (raises && !TYPE_PTRFN_P (TREE_TYPE (object))
-      && !TYPE_PTRMEMFUNC_P (TREE_TYPE (object)))
+  if (raises
+      && (TREE_CODE (object) == TYPE_DECL
+         || (!TYPE_PTRFN_P (TREE_TYPE (object))
+             && !TYPE_PTRMEMFUNC_P (TREE_TYPE (object)))))
     cp_error_at ("`%D' declared with an exception specification", object);
 }