From 5af962df4dda65216b83d0a954ea355296517f4b Mon Sep 17 00:00:00 2001 From: Andreas Arnez Date: Tue, 30 Aug 2016 17:03:55 +0200 Subject: [PATCH] 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". --- gdb/ChangeLog | 4 ++++ gdb/testsuite/ChangeLog | 4 ++++ gdb/testsuite/gdb.multi/tids.exp | 6 ++++++ gdb/thread.c | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) 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)); } -- 2.30.2