fortran: fix pair_cmp qsort comparator
authorAlexander Monakov <amonakov@ispras.ru>
Sun, 23 Jul 2017 18:40:24 +0000 (21:40 +0300)
committerAlexander Monakov <amonakov@gcc.gnu.org>
Sun, 23 Jul 2017 18:40:24 +0000 (21:40 +0300)
* interface.c (pair_cmp): Fix gfc_symbol comparison.  Adjust comment.

From-SVN: r250463

gcc/fortran/ChangeLog
gcc/fortran/interface.c

index ff72ba45ee94681c8e3919011f39a3357fde7e0f..048a835d7fc2f8d1820414b3f639d7164b02247f 100644 (file)
@@ -1,3 +1,7 @@
+2017-07-23  Alexander Monakov  <amonakov@ispras.ru>
+
+       * interface.c (pair_cmp): Fix gfc_symbol comparison.  Adjust comment.
+
 2017-07-18  Nathan Sidwell  <nathan@acm.org>
 
        * trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE.
index 6fe0647ecfea3d29b563b8a9f7b7949e23297392..13e2bdd6c7e636a99d0d6cf0229dbfdfb7967253 100644 (file)
@@ -3294,7 +3294,7 @@ argpair;
    order:
     - p->a->expr == NULL
     - p->a->expr->expr_type != EXPR_VARIABLE
-    - growing p->a->expr->symbol.  */
+    - by gfc_symbol pointer value (larger first).  */
 
 static int
 pair_cmp (const void *p1, const void *p2)
@@ -3320,6 +3320,8 @@ pair_cmp (const void *p1, const void *p2)
     }
   if (a2->expr->expr_type != EXPR_VARIABLE)
     return 1;
+  if (a1->expr->symtree->n.sym > a2->expr->symtree->n.sym)
+    return -1;
   return a1->expr->symtree->n.sym < a2->expr->symtree->n.sym;
 }