decl2.c (handle_class_head): Bash typedefs to the type's main decl.
authorNathan Sidwell <nathan@codesourcery.com>
Mon, 26 Jun 2000 11:06:39 +0000 (11:06 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Mon, 26 Jun 2000 11:06:39 +0000 (11:06 +0000)
* decl2.c (handle_class_head): Bash typedefs to the type's main
decl.

From-SVN: r34707

gcc/cp/ChangeLog
gcc/cp/decl2.c

index 854eb8f..6046799 100644 (file)
@@ -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 ...
index 8fe160e..af29ae0 100644 (file)
@@ -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