glibc/wcsmbs
Carlos O'Donell 87701a58e2 strcoll: Remove incorrect STRDIFF-based optimization (Bug 18589).
The optimization introduced in commit
f13c2a8dff, causes regressions in
sorting for languages that have digraphs that change sort order, like
cs_CZ which sorts ch between h and i.

My analysis shows the fast-forwarding optimization in STRCOLL advances
through a digraph while possibly stopping in the middle which results
in a subsequent skipping of the digraph and incorrect sorting. The
optimization is incorrect as implemented and because of that I'm
removing it for 2.23, and I will also commit this fix for 2.22 where
it was originally introduced.

This patch reverts the optimization, introduces a new bug-strcoll2.c
regression test that tests both cs_CZ.UTF-8 and da_DK.ISO-8859-1 and
ensures they sort one digraph each correctly. The optimization can't be
applied without regressing this test.

Checked on x86_64, bug-strcoll2.c fails without this patch and passes
after. This will also get a fix on 2.22 which has the same bug.
2015-10-08 16:41:45 -04:00
..
bits Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
btowc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
c16rtomb.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Depend Update. 2000-09-06 22:15:07 +00:00
isoc99_fwscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
isoc99_swscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
isoc99_vfwscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
isoc99_vswscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
isoc99_vwscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
isoc99_wscanf.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Makefile S390: Optimize wmemset. 2015-08-26 10:26:25 +02:00
mbrlen.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
mbrtoc16.c Handle mblen return code when n is zero. 2015-04-03 15:47:12 +02:00
mbrtowc.c Handle mblen return code when n is zero. 2015-04-03 15:47:12 +02:00
mbsinit.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
mbsnrtowcs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
mbsrtowcs_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
mbsrtowcs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
test-wcpcpy.c S390: Optimize stpcpy and wcpcpy. 2015-08-26 10:26:21 +02:00
test-wcpncpy.c S390: Optimize stpncpy and wcpncpy. 2015-08-26 10:26:21 +02:00
test-wcscat.c S390: Optimize strcat and wcscat. 2015-08-26 10:26:21 +02:00
test-wcschr.c Add wcschr test cases 2011-10-23 14:14:26 -04:00
test-wcschrnul.c S390: Optimize strchrnul and wcschrnul. 2015-08-26 10:26:23 +02:00
test-wcscmp.c Move wide char tests to wcsmbs directory 2011-09-08 18:01:07 -04:00
test-wcscpy.c Add tests for wcsrchr and wcscpy 2011-12-17 14:14:58 -05:00
test-wcscspn.c S390: Optimize strcspn and wcscspn. 2015-08-26 10:26:24 +02:00
test-wcslen.c Add wcslen test cases 2011-10-23 14:11:50 -04:00
test-wcsncat.c S390: Optimize strncat wcsncat. 2015-08-26 10:26:22 +02:00
test-wcsncmp.c Use correct signedness in wcsncmp 2015-04-13 21:25:04 +02:00
test-wcsncpy.c S390: Optimize strncpy and wcsncpy. 2015-08-26 10:26:21 +02:00
test-wcsnlen.c S390: Optimize strnlen and wcsnlen. 2015-08-26 10:26:20 +02:00
test-wcspbrk.c S390: Optimize strpbrk and wcspbrk. 2015-08-26 10:26:24 +02:00
test-wcsrchr.c Add tests for wcsrchr and wcscpy 2011-12-17 14:14:58 -05:00
test-wcsspn.c S390: Optimize strspn and wcsspn. 2015-08-26 10:26:24 +02:00
test-wmemchr.c S390: Optimize memchr, rawmemchr and wmemchr. 2015-08-26 10:26:24 +02:00
test-wmemcmp.c Move wide char tests to wcsmbs directory 2011-09-08 18:01:07 -04:00
test-wmemset.c S390: Optimize wmemset. 2015-08-26 10:26:25 +02:00
tst-btowc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-c16c32-1.c Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
tst-mbrtowc2.c * wcsmbs/tst-mbrtowc2.c: Use de_DE.UTF-8 instead of en_US.UTF-8. 2005-10-15 15:38:52 +00:00
tst-mbrtowc.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-mbsrtowcs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-wchar-h.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-wcpncpy.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-wcrtomb.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-wcsnlen.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
tst-wcstof.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
uchar.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
Versions Sort Versions files 2013-02-17 16:34:04 +01:00
wchar.h Updated __nonnull annotations for wcscat, wcsncat, wcscmp and wcsncmp [BZ #18265] 2015-08-05 04:43:42 -04:00
wcpcpy.c S390: Optimize stpcpy and wcpcpy. 2015-08-26 10:26:21 +02:00
wcpncpy.c S390: Optimize stpncpy and wcpncpy. 2015-08-26 10:26:21 +02:00
wcrtomb.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsatcliff.c Fix handling of tail bytes of buffer in SSE2/SSSE3 x86-64 version strn{,case}cmp 2010-10-03 22:10:30 -04:00
wcscasecmp_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcscasecmp.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcscat.c S390: Optimize strcat and wcscat. 2015-08-26 10:26:21 +02:00
wcschr.c powerpc: Fix __wcschr static build 2015-04-15 16:01:48 -03:00
wcschrnul.c S390: Optimize strchrnul and wcschrnul. 2015-08-26 10:26:23 +02:00
wcscmp.c Fix regcomp wcscoll, wcscmp namespace (bug 18497). 2015-06-09 21:07:30 +00:00
wcscoll_l.c strcoll: Remove incorrect STRDIFF-based optimization (Bug 18589). 2015-10-08 16:41:45 -04:00
wcscoll.c Fix regcomp wcscoll, wcscmp namespace (bug 18497). 2015-06-09 21:07:30 +00:00
wcscpy.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcscspn.c S390: Optimize strcspn and wcscspn. 2015-08-26 10:26:24 +02:00
wcsdup.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcslen.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsmbs-tst1.c Update. 2003-07-31 19:26:38 +00:00
wcsmbsload.c Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912). 2015-09-08 21:11:03 +00:00
wcsmbsload.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsncase_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsncase.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsncat.c S390: Optimize strncat wcsncat. 2015-08-26 10:26:22 +02:00
wcsncmp.c S390: Optimize strncmp and wcsncmp. 2015-08-26 10:26:22 +02:00
wcsncpy.c S390: Optimize strncpy and wcsncpy. 2015-08-26 10:26:21 +02:00
wcsnlen.c S390: Optimize strnlen and wcsnlen. 2015-08-26 10:26:20 +02:00
wcsnrtombs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcspbrk.c S390: Optimize strpbrk and wcspbrk. 2015-08-26 10:26:24 +02:00
wcsrchr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsrtombs.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsspn.c S390: Optimize strspn and wcsspn. 2015-08-26 10:26:24 +02:00
wcsstr.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstod_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstod.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstof_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstof.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstok.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstol_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstol.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstold_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstold.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstoll_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstoll.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstoul_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstoul.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstoull_l.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcstoull.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcswidth.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcsxfrm_l.c Remove unused definitions 2015-02-11 12:50:53 +01:00
wcsxfrm.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wctob.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcwidth.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wcwidth.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmemchr.c S390: Optimize memchr, rawmemchr and wmemchr. 2015-08-26 10:26:24 +02:00
wmemcmp.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmemcpy.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmemmove.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmempcpy.c Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wmemset.c S390: Optimize wmemset. 2015-08-26 10:26:25 +02:00