OSDN Git Service

* decl.c (pushtag): Don't put local classes in template functions
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Jul 2000 06:32:58 +0000 (06:32 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Jul 2000 06:32:58 +0000 (06:32 +0000)
on the local_classes list.

* decl2.c (get_guard): Add missing return for old ABI local
variable case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34937 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 0caff7f..6bc9696 100644 (file)
@@ -1,5 +1,15 @@
 2000-07-09  Mark Mitchell  <mark@codesourcery.com>
 
+       * decl.c (pushtag): Don't put local classes in template functions
+       on the local_classes list.
+
+2000-07-04  Scott Snyder  <snyder@fnal.gov>
+
+       * decl2.c (get_guard): Add missing return for old ABI local
+       variable case.
+
+2000-07-09  Mark Mitchell  <mark@codesourcery.com>
+
        * cp-tree.h (char_type_p): New function.
        * decl.c (init_decl_processing): Don't initialize
        signed_wchar_type_node or unsigned_wchar_type_node.
index ee0d058..b5eddde 100644 (file)
@@ -2899,7 +2899,8 @@ pushtag (name, type, globalize)
             way.  (It's otherwise tricky to find a member function definition
             it's only pointed to from within a local class.)  */
          if (TYPE_CONTEXT (type) 
-             && TREE_CODE (TYPE_CONTEXT (type)) == FUNCTION_DECL)
+             && TREE_CODE (TYPE_CONTEXT (type)) == FUNCTION_DECL
+             && !processing_template_decl)
            VARRAY_PUSH_TREE (local_classes, type);
 
          if (!uses_template_parms (type)) 
index bbc66ad..600cfce 100644 (file)
@@ -2874,6 +2874,7 @@ get_guard (decl)
     {
       guard = get_temp_name (integer_type_node);
       rest_of_decl_compilation (guard, NULL_PTR, 0, 0);
+      return guard;
     }
 
   if (!flag_new_abi)