diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 940d106dedc..ea94e160a7b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +1998-11-25 Jason Merrill + + * except.c (expand_throw): Use TYPE_PTR_P to check for pointers. + + * decl.c (check_tag_decl): Do complain about null friend decl at + file scope. + 1998-11-25 Andreas Schwab * lex.c (make_lang_type): Clear the whole struct lang_type, not diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 94173636b28..2f48d3b2df2 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -6483,10 +6483,11 @@ check_tag_decl (declspecs) } else if (value == ridpointers[(int) RID_FRIEND]) { - friendp = 1; if (current_class_type == NULL_TREE || current_scope () != current_class_type) ob_modifier = value; + else + friendp = 1; } else if (value == ridpointers[(int) RID_STATIC] || value == ridpointers[(int) RID_EXTERN] diff --git a/gcc/cp/except.c b/gcc/cp/except.c index 7da22cdd73e..7198689940b 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -996,7 +996,7 @@ expand_throw (exp) pop_obstacks (); } - if (TREE_CODE (TREE_TYPE (exp)) == POINTER_TYPE) + if (TYPE_PTR_P (TREE_TYPE (exp))) throw_type = build_eh_type (exp); else {