From: Andreas Arnez Date: Tue, 30 Aug 2016 15:03:55 +0000 (+0200) Subject: Fix order of inferiors in "thread apply all" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5af962df4dda65216b83d0a954ea355296517f4b;p=binutils-gdb.git Fix order of inferiors in "thread apply all" 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". --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7f580f046b1..57ba33c190b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2016-08-30 Andreas Arnez + + * thread.c (tp_array_compar): Insert missing parentheses. + 2016-08-25 Andreas Arnez * xtensa-tdep.h (XTENSA_GDBARCH_TDEP_INSTANTIATE): Replace diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index aac52afdb42..8b4cdd5d790 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-08-30 Andreas Arnez + + * gdb.multi/tids.exp: Test "thread apply all". + 2016-08-29 Jan Kratochvil * gdb.base/default.exp (tty): Remove. diff --git a/gdb/testsuite/gdb.multi/tids.exp b/gdb/testsuite/gdb.multi/tids.exp index 5d8701effb0..12ce98ab0c2 100644 --- a/gdb/testsuite/gdb.multi/tids.exp +++ b/gdb/testsuite/gdb.multi/tids.exp @@ -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" diff --git a/gdb/thread.c b/gdb/thread.c index ab98777b44d..a66a2b5338e 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -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)); }