decl.c (pushtag): Revert previous change.
authorMark Mitchell <mark@markmitchell.com>
Sun, 19 Jul 1998 18:55:38 +0000 (18:55 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sun, 19 Jul 1998 18:55:38 +0000 (18:55 +0000)
* decl.c (pushtag): Revert previous change.
* pt.c (lookup_template_class): Don't put out debugging
information for types that use template parameters.

From-SVN: r21286

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/pt.c

index 0e8a75ab13b6025cec30664679a823c5c0cff8f5..09a9b4b74c1a6387e421e8ef908be4065e5d83c9 100644 (file)
@@ -1,5 +1,9 @@
 1998-07-19  Mark Mitchell  <mark@markmitchell.com>
 
+       * decl.c (pushtag): Revert previous change.
+       * pt.c (lookup_template_class): Don't put out debugging
+       information for types that use template parameters.
+
        * decl.c (pushtag): Don't put out debugging information for
        compiler-generated typedefs.
        
index a55b28cd4451b39e17e40c99c1363683bb350411..913b9abd00aed3aa97d9351ebbb74d0e8a23df92 100644 (file)
@@ -2287,14 +2287,6 @@ pushtag (name, type, globalize)
              if (current_lang_name == lang_name_java)
                TYPE_FOR_JAVA (type) = 1;
              SET_DECL_ARTIFICIAL (d);
-             /* There's no reason to put out debugging information
-                for these declarations since they are
-                compiler-generated.  Furthermore, if the type makes
-                use of template parameters, the code that generates
-                debugging information will get confused.  It is safe
-                to put these out in the non-template case, just
-                useless.  */
-             DECL_IGNORED_P (d) = 1;
              if (! in_class)
                set_identifier_type_value_with_scope (name, type, b);
            }
index ed23223d664efbc9251bfebb3096da162acf6698..0f1dbdd8662e8a7ea453eea805a856adde095baa 100644 (file)
@@ -3212,6 +3212,11 @@ lookup_template_class (d1, arglist, in_decl, context)
          && CLASSTYPE_INTERFACE_KNOWN (TREE_TYPE (template))
          && ! CLASSTYPE_INTERFACE_ONLY (TREE_TYPE (template)))
        add_pending_template (t);
+
+      if (uses_template_parms (arglist))
+       /* If the type makes use of template parameters, the
+          code that generates debugging information will crash.  */
+       DECL_IGNORED_P (TYPE_STUB_DECL (t)) = 1;
     }
 
   return t;