diff options
author | Mark Mitchell <mmitchell@usa.net> | 1998-03-11 23:34:32 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchell@gcc.gnu.org> | 1998-03-11 23:34:32 +0000 |
commit | 6d89b990a536d3ec4c3edfc1126c0abb1bab1251 (patch) | |
tree | ecd40c8abc8a8962a961c6ce6713710d05daf71d | |
parent | 01c7f3501b56dde0b41a1e698b8c85f982d13662 (diff) | |
download | gcc-6d89b990a536d3ec4c3edfc1126c0abb1bab1251.zip gcc-6d89b990a536d3ec4c3edfc1126c0abb1bab1251.tar.gz gcc-6d89b990a536d3ec4c3edfc1126c0abb1bab1251.tar.bz2 |
dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a TREE_VEC if that's what it really is.
* dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a
TREE_VEC if that's what it really is.
From-SVN: r18487
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dbxout.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/debug1.C | 48 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/new-init.C | 7 |
4 files changed, 61 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 39c73e7..3c87446 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +1998-03-11 Mark Mitchell <mmitchell@usa.net> + + * dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a + TREE_VEC if that's what it really is. + Wed Mar 11 15:16:01 1998 Michael Meissner <meissner@cygnus.com> * {haifa-,}sched.c (rank_for_schedule): Only take void * arguments diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 7fa9139..101574f 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -824,7 +824,7 @@ dbxout_type_methods (type) sprintf(formatted_type_identifier_length, "%d", type_identifier_length); - if (TREE_CODE (methods) == FUNCTION_DECL) + if (TREE_CODE (methods) != TREE_VEC) fndecl = methods; else if (TREE_VEC_ELT (methods, 0) != NULL_TREE) fndecl = TREE_VEC_ELT (methods, 0); diff --git a/gcc/testsuite/g++.old-deja/g++.other/debug1.C b/gcc/testsuite/g++.old-deja/g++.other/debug1.C new file mode 100644 index 0000000..8485895 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/debug1.C @@ -0,0 +1,48 @@ +// Build don't link: +// Special g++ Options: -g + +typedef unsigned int size_t; + + +struct dummy { }; + +struct arrrrrgh { }; + + +template<class Par,class Rand = arrrrrgh> +struct whyyyyyyy { }; + + + + +template<class T, class S =dummy> +struct grrrrrrrr { }; + + +template<class Par, class Par2 =Par, class Rand =arrrrrgh> +class no_future +{ +public: + + + template<class S> + no_future(const grrrrrrrr<whyyyyyyy<Par,Rand>*,S>& man ) { } + + ~no_future( ) { } + +private: + + + no_future(const no_future&); + no_future& operator=(const no_future&); +}; + + +int main( ) +{ + grrrrrrrr<whyyyyyyy<double>*> man; + + no_future<double> here(man); + + return 0; +} diff --git a/gcc/testsuite/g++.old-deja/g++.other/new-init.C b/gcc/testsuite/g++.old-deja/g++.other/new-init.C new file mode 100644 index 0000000..fff2f63 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/new-init.C @@ -0,0 +1,7 @@ +// Build don't link: + +void f() +{ + new int = 1; +} + |