diff options
author | Mark Mitchell <mark@markmitchell.com> | 1998-07-19 18:00:47 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1998-07-19 18:00:47 +0000 |
commit | d92e4d8cba0e14bed08bbbc35d7229e4b5b4c369 (patch) | |
tree | a5082e5a8492e3aad88135d32e5972573a91aa11 /gcc | |
parent | 3df095e2f1c04a8674ff250747aa591a5e26a861 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/decl.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/crash12.C | 13 |
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; + } +}; |