diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 854eb8f..6046799 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2000-06-26 Nathan Sidwell <nathan@codesourcery.com> + + * decl2.c (handle_class_head): Bash typedefs to the type's main + decl. + 2000-06-25 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 8fe160e..af29ae0 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -5362,7 +5362,9 @@ handle_class_head (aggr, scope, id) tree decl; if (TREE_CODE (id) == TYPE_DECL) - decl = id; + /* We must bash typedefs back to the main decl of the type. Otherwise + we become confused about scopes. */ + decl = TYPE_MAIN_DECL (TREE_TYPE (id)); else if (DECL_CLASS_TEMPLATE_P (id)) decl = DECL_TEMPLATE_RESULT (id); else |