about summary refs log tree commit diff
path: root/iconv/gconv_simple.c
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2016-05-25 17:18:06 +0200
committerStefan Liebler <stli@linux.vnet.ibm.com>2016-05-25 17:18:06 +0200
commita42a95c43133d69b1108f582cffa0f6986a9c3da (patch)
tree402338be9722c6e5f6686688831d08568a6c9e3f /iconv/gconv_simple.c
parent52f8a48e24563daa807f94824ce9782b9a9eece9 (diff)
downloadglibc-a42a95c43133d69b1108f582cffa0f6986a9c3da.tar.gz
glibc-a42a95c43133d69b1108f582cffa0f6986a9c3da.tar.xz
glibc-a42a95c43133d69b1108f582cffa0f6986a9c3da.zip
S390: Fix utf32 to utf16 handling of low surrogates (disable cu42).
According to the latest Unicode standard, a conversion from/to UTF-xx has
to report an error if the character value is in range of an utf16 surrogate
(0xd800..0xdfff). See https://sourceware.org/ml/libc-help/2015-12/msg00015.html.

Thus the cu42 instruction, which converts from utf32 to utf16,  has to be
disabled because it does not report an error in case of a value in range of
a low surrogate (0xdc00..0xdfff). The etf3eh variant is removed and the c,
vector variant is adjusted to handle the value in range of an utf16 low
surrogate correctly.

ChangeLog:

	* sysdeps/s390/utf16-utf32-z9.c: Disable cu42 instruction and report
	an error in case of a value in range of an utf16 low surrogate.
Diffstat (limited to 'iconv/gconv_simple.c')
0 files changed, 0 insertions, 0 deletions