While I intend to kill METHOD_VEC, I noticed its comparison function contemplated functions with NULL DECL_NAMEs. Those aren't a thing.

applied to trunk.

nathan
--
Nathan Sidwell
2017-08-25  Nathan Sidwell  <nat...@acm.org>

	* class.c (method_name_cmp, resort_method_name_cmp): Method names
	can never be NULL.

Index: class.c
===================================================================
--- class.c	(revision 251348)
+++ class.c	(working copy)
@@ -2263,12 +2263,6 @@ method_name_cmp (const void* m1_p, const
   const tree *const m1 = (const tree *) m1_p;
   const tree *const m2 = (const tree *) m2_p;
 
-  if (*m1 == NULL_TREE && *m2 == NULL_TREE)
-    return 0;
-  if (*m1 == NULL_TREE)
-    return -1;
-  if (*m2 == NULL_TREE)
-    return 1;
   if (OVL_NAME (*m1) < OVL_NAME (*m2))
     return -1;
   return 1;
@@ -2282,20 +2276,13 @@ resort_method_name_cmp (const void* m1_p
 {
   const tree *const m1 = (const tree *) m1_p;
   const tree *const m2 = (const tree *) m2_p;
-  if (*m1 == NULL_TREE && *m2 == NULL_TREE)
-    return 0;
-  if (*m1 == NULL_TREE)
+
+  tree n1 = OVL_NAME (*m1);
+  tree n2 = OVL_NAME (*m2);
+  resort_data.new_value (&n1, resort_data.cookie);
+  resort_data.new_value (&n2, resort_data.cookie);
+  if (n1 < n2)
     return -1;
-  if (*m2 == NULL_TREE)
-    return 1;
-  {
-    tree d1 = OVL_NAME (*m1);
-    tree d2 = OVL_NAME (*m2);
-    resort_data.new_value (&d1, resort_data.cookie);
-    resort_data.new_value (&d2, resort_data.cookie);
-    if (d1 < d2)
-      return -1;
-  }
   return 1;
 }
 

Reply via email to