Fix order of inferiors in "thread apply all"
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 30 Aug 2016 15:03:55 +0000 (17:03 +0200)
committerAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 30 Aug 2016 15:03:55 +0000 (17:03 +0200)
This inserts missing parentheses in the calculation of the comparison
result between two different inferior numbers.  The problem was found by
Philipp Rudo.

gdb/ChangeLog:

* thread.c (tp_array_compar): Insert missing parentheses.

gdb/testsuite/ChangeLog:

* gdb.multi/tids.exp: Test "thread apply all".

gdb/ChangeLog
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.multi/tids.exp
gdb/thread.c

index 7f580f046b105807a922019c623be70b0e71f0fe..57ba33c190bdc13b5ba0a2c6e89e3b01f9c3d598 100644 (file)
@@ -1,3 +1,7 @@
+2016-08-30  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * thread.c (tp_array_compar): Insert missing parentheses.
+
 2016-08-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
        * xtensa-tdep.h (XTENSA_GDBARCH_TDEP_INSTANTIATE): Replace
index aac52afdb4280cb6ad54b854eea5a90b188ecf2b..8b4cdd5d79067bcf2d03e94b495b0797c5d66f6a 100644 (file)
@@ -1,3 +1,7 @@
+2016-08-30  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * gdb.multi/tids.exp: Test "thread apply all".
+
 2016-08-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.base/default.exp (tty): Remove.
index 5d8701effb02c67ffae4d0c2762f05ff26567e07..12ce98ab0c2b227d903425e5fbf1e915fa4573d4 100644 (file)
@@ -224,6 +224,12 @@ with_test_prefix "two inferiors" {
     thr_apply_info_thr "1.1-2 2.2-3" \
        "1.1 1.2 2.2 2.3"
 
+    # All threads.
+    thread_apply "all" \
+       "2.3 2.2 2.1 1.3 1.2 1.1"
+    thread_apply "all -ascending" \
+       "1.1 1.2 1.3 2.1 2.2 2.3"
+
     # Now test using GDB convenience variables.
 
     gdb_test "p \$inf = 1" " = 1"
index ab98777b44d7f204df90d36bfd10ea0fdc17befe..a66a2b5338eea5f09db76a439db3405f38a1e5fd 100644 (file)
@@ -1725,7 +1725,7 @@ tp_array_compar (const void *ap_voidp, const void *bp_voidp)
 
   if (a->inf->num != b->inf->num)
     {
-      return ((a->inf->num > b->inf->num) - (a->inf->num < b->inf->num)
+      return (((a->inf->num > b->inf->num) - (a->inf->num < b->inf->num))
              * (tp_array_compar_ascending ? +1 : -1));
     }