aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dbxout.c2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/debug1.C48
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/new-init.C7
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;
+}
+