From: Ian Lance Taylor Date: Tue, 26 Nov 2013 23:27:29 +0000 (+0000) Subject: runtime: Fix handling of surrogate pairs in string([]rune). X-Git-Tag: releases/gcc-4.9.0~2433 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=763d87526f385ac111986736dccd0e6848b85d33;p=thirdparty%2Fgcc.git runtime: Fix handling of surrogate pairs in string([]rune). From-SVN: r205422 --- diff --git a/libgo/runtime/go-int-array-to-string.c b/libgo/runtime/go-int-array-to-string.c index d93fe651d952..f37213125a22 100644 --- a/libgo/runtime/go-int-array-to-string.c +++ b/libgo/runtime/go-int-array-to-string.c @@ -30,6 +30,8 @@ __go_int_array_to_string (const void* p, intgo len) if (v < 0 || v > 0x10ffff) v = 0xfffd; + else if (0xd800 <= v && v <= 0xdfff) + v = 0xfffd; if (v <= 0x7f) slen += 1; @@ -56,6 +58,8 @@ __go_int_array_to_string (const void* p, intgo len) character. */ if (v < 0 || v > 0x10ffff) v = 0xfffd; + else if (0xd800 <= v && v <= 0xdfff) + v = 0xfffd; if (v <= 0x7f) *s++ = v;