aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@markmitchell.com>1998-07-19 18:00:47 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1998-07-19 18:00:47 +0000
commitd92e4d8cba0e14bed08bbbc35d7229e4b5b4c369 (patch)
treea5082e5a8492e3aad88135d32e5972573a91aa11
parent3df095e2f1c04a8674ff250747aa591a5e26a861 (diff)
downloadgcc-d92e4d8cba0e14bed08bbbc35d7229e4b5b4c369.zip
gcc-d92e4d8cba0e14bed08bbbc35d7229e4b5b4c369.tar.gz
gcc-d92e4d8cba0e14bed08bbbc35d7229e4b5b4c369.tar.bz2
decl.c (pushtag): Don't put out debugging information for compiler-generated typedefs.
* decl.c (pushtag): Don't put out debugging information for compiler-generated typedefs. From-SVN: r21285
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/decl.c8
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/crash12.C13
3 files changed, 24 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 51cac5f..0e8a75a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
1998-07-19 Mark Mitchell <mark@markmitchell.com>
+ * decl.c (pushtag): Don't put out debugging information for
+ compiler-generated typedefs.
+
* error.c (dump_type_real): Don't crash when presented with
intQI_type_node or the like.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 913b9ab..a55b28c 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -2287,6 +2287,14 @@ 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);
}
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash12.C b/gcc/testsuite/g++.old-deja/g++.pt/crash12.C
new file mode 100644
index 0000000..ade8139
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/crash12.C
@@ -0,0 +1,13 @@
+// Build don't link:
+// Special g++ Options: -g
+
+template <class C>
+class CenteringTag {
+};
+
+struct S {
+ template <class B, class C>
+ static void f() {
+ CenteringTag<C> ctag;
+ }
+};