glibc/stdlib
Florian Weimer f8cfb6836e stdlib: Avoid element self-comparisons in qsort
This improves compatibility with applications which assume that qsort
does not invoke the comparison function with equal pointer arguments.

The newly introduced branches should be predictable, as leading to a
call to the comparison function.  If the prediction fails, we avoid
calling the function.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-11-08 15:18:02 +01:00
..
bits
sys
Depend
Makefile stdlib: Add more qsort{_r} coverage 2023-10-31 14:18:07 -03:00
Versions
a64l.c
abort.c
abs.c
add_n.c
addmul_1.c
alloca.h
arc4random.c
arc4random_uniform.c
at_quick_exit.c
atexit.c
atof.c
atoi.c
atol.c
atoll.c
bsearch.c
bug-fmtmsg1.c
bug-getcontext.c
bug-strtod.c
bug-strtod2.c
canonicalize.c
cmp.c
cxa_at_quick_exit.c
cxa_atexit.c
cxa_finalize.c
cxa_thread_atexit_impl.c
dbl2mpn.c
div.c
divmod_1.c
divrem.c
drand48-iter.c
drand48.c
drand48_r.c
erand48.c
erand48_r.c
errno.h
exit.c __call_tls_dtors: Use call_function_static_weak 2023-09-04 20:03:37 +02:00
exit.h
fmtmsg.c
fmtmsg.h
fpioconst.c
fpioconst.h
gen-fpioconst.c
gen-tst-strtod-round.c
getcontext.c
getentropy.c
getenv.c
getrandom.c
getsubopt.c
gmp-impl.h
gmp.h
grouping.c stdlib: fix grouping verification with multi-byte thousands separator (bug 30964) 2023-10-12 11:42:22 +02:00
grouping.h
groupingwc.c
inlines.c
inttypes.h
isomac.c
jrand48.c
jrand48_r.c
l64a.c
labs.c
lcong48.c
lcong48_r.c
ldbl2mpn.c
ldiv.c
llabs.c
lldiv.c
longlong.h
lrand48.c
lrand48_r.c
lshift.c
makecontext.c
mblen.c
mbstowcs.c
mbtowc.c
mod_1.c
monetary.h
mp_clz_tab.c
mpn2dbl.c
mpn2flt.c
mpn2ldbl.c
mrand48.c
mrand48_r.c
mul.c
mul_1.c
mul_n.c
nrand48.c
nrand48_r.c
old_atexit.c
on_exit.c
putenv.c
qsort.c stdlib: Avoid element self-comparisons in qsort 2023-11-08 15:18:02 +01:00
quick_exit.c
rand.c
rand_r.c
random.c
random_r.c
rpmatch.c
rshift.c
secure-getenv.c
seed48.c
seed48_r.c
setcontext.c
setenv.c
srand48.c
srand48_r.c
stdint.h
stdlib.h
strfmon.c
strfmon_l.c
strfrom-skeleton.c
strfromd.c
strfromf.c
strfroml.c
strtod.c
strtod_l.c
strtod_nan.c
strtod_nan_main.c
strtod_nan_narrow.h
strtod_nan_wide.h
strtof.c
strtof_l.c
strtof_nan.c
strtol.c
strtol_l.c
strtold.c
strtold_l.c
strtold_nan.c
strtoll.c
strtoll_l.c
strtoul.c
strtoul_l.c
strtoull.c
strtoull_l.c
sub_n.c
submul_1.c
swapcontext.c
system.c
tens_in_limb.c
test-a64l.c
test-at_quick_exit-race.c
test-atexit-race-common.c
test-atexit-race.c
test-atexit-recursive.c
test-bz22786.c
test-canon.c
test-canon2.c
test-cxa_atexit-race.c
test-cxa_atexit-race2.c
test-dlclose-exit-race-helper.c
test-dlclose-exit-race.c
test-on_exit-race.c
testdiv.c
testdiv.input
testmb.c
testmb2.c
testrand.c
testsort.c
tst-abs.c
tst-arc4random-fork.c
tst-arc4random-stats.c
tst-arc4random-thread.c
tst-at_quick_exit.c
tst-atexit-common.c
tst-atexit.c
tst-atof1.c
tst-atof2.c
tst-bsearch.c
tst-bz20544.c
tst-canon-bz26341.c
tst-cxa_atexit.c
tst-empty-env.c
tst-environ.c
tst-fmtmsg.c
tst-fmtmsg.sh
tst-getrandom.c
tst-labs.c
tst-limits.c
tst-llabs.c
tst-makecontext-align.c
tst-makecontext.c
tst-makecontext2.c
tst-makecontext3.c
tst-on_exit.c
tst-putenv.c
tst-putenvmod.c
tst-qsort.c
tst-qsort2.c
tst-qsort3.c stdlib: Add more qsort{_r} coverage 2023-10-31 14:18:07 -03:00
tst-quick_exit.cc
tst-rand48-2.c
tst-rand48.c
tst-random.c
tst-random2.c
tst-realpath-toolong.c tst-realpath-toolong: return "unsupported" when PATH_MAX is undefined 2023-08-03 22:43:27 +02:00
tst-realpath.c
tst-secure-getenv.c
tst-setcontext.c
tst-setcontext2.c
tst-setcontext3.c
tst-setcontext3.sh
tst-setcontext4.c
tst-setcontext5.c
tst-setcontext6.c
tst-setcontext7.c
tst-setcontext8.c
tst-setcontext9.c
tst-strfmon_l.c
tst-strfrom-locale.c
tst-strfrom.c
tst-strfrom.h
tst-strtod-nan-locale-main.c
tst-strtod-nan-locale.c
tst-strtod-nan-sign-main.c
tst-strtod-nan-sign.c
tst-strtod-overflow.c
tst-strtod-round-data
tst-strtod-round-data.h
tst-strtod-round-skeleton.c
tst-strtod-round.c
tst-strtod-underflow.c
tst-strtod.c
tst-strtod.h
tst-strtod1i.c
tst-strtod2.c
tst-strtod3.c
tst-strtod4.c stdlib: fix grouping verification with multi-byte thousands separator (bug 30964) 2023-10-12 11:42:22 +02:00
tst-strtod5.c
tst-strtod5i.c
tst-strtod6.c
tst-strtol-binary-c2x.c
tst-strtol-binary-c11.c
tst-strtol-binary-gnu2x.c
tst-strtol-binary-gnu11.c
tst-strtol-binary-main.c
tst-strtol-locale-main.c
tst-strtol-locale.c
tst-strtol.c
tst-strtoll.c
tst-swapcontext1.c
tst-system.c
tst-thread-quick_exit.cc
tst-tininess.c
tst-tls-atexit-lib.c
tst-tls-atexit-nodelete.c
tst-tls-atexit.c
tst-unsetenv1.c
tst-width-stdint.c
tst-width.c
tst-xpg-basename.c
ucontext.h
udiv_qrnnd.c
wcstombs.c
wctomb.c
xpg_basename.c