dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a TREE_VEC if that's what...
authorMark Mitchell <mmitchell@usa.net>
Wed, 11 Mar 1998 23:34:32 +0000 (23:34 +0000)
committerMark Mitchell <mmitchell@gcc.gnu.org>
Wed, 11 Mar 1998 23:34:32 +0000 (23:34 +0000)
* dbxout.c (dbxout_type_methods): Only treat TYPE_METHODS as a
TREE_VEC if that's what it really is.

From-SVN: r18487

gcc/ChangeLog
gcc/dbxout.c
gcc/testsuite/g++.old-deja/g++.other/debug1.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/new-init.C [new file with mode: 0644]

index 39c73e7..3c87446 100644 (file)
@@ -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
index 7fa9139..101574f 100644 (file)
@@ -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 (file)
index 0000000..8485895
--- /dev/null
@@ -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 (file)
index 0000000..fff2f63
--- /dev/null
@@ -0,0 +1,7 @@
+// Build don't link:
+
+void f()
+{
+  new int = 1;
+}
+