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".
This commit is contained in:
Andreas Arnez 2016-08-30 17:03:55 +02:00
parent b2b383620e
commit 5af962df4d
4 changed files with 15 additions and 1 deletions

View 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

View 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.

View 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"

View 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));
}