From e1be26f4f20c5b1d0ba05c7bd354a2513886e4ba Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 16 Oct 2001 13:01:44 +0000 Subject: [PATCH] decl.c (bad_specifiers): Don't allow exception specifications on any typedefs. * decl.c (bad_specifiers): Don't allow exception specifications on any typedefs. From-SVN: r46285 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 46761953430..f5a999286d6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-10-15 Richard Sandiford + + * decl.c (bad_specifiers): Don't allow exception specifications + on any typedefs. + 2001-10-14 Neil Booth * cp/lex.c (init_cp_pragma): Similarly. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 60cceada0f7..e499cdbfabe 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -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); }