about summary refs log tree commit diff
path: root/iconvdata/uhc.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/uhc.c')
-rw-r--r--iconvdata/uhc.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
index 15faf1ea89..767c21f513 100644
--- a/iconvdata/uhc.c
+++ b/iconvdata/uhc.c
@@ -3063,7 +3063,9 @@ static const char uhc_hangul_from_ucs[11172][2] =
 */									      \
     if (ch <= 0x7f)							      \
       ++inptr;								      \
-    else if (ch <= 0x80 || ch >= 0xfe || ch == 0xc9)			      \
+    else if (__builtin_expect (ch, 0x81) <= 0x80			      \
+	     || __builtin_expect (ch, 0x81) >= 0xfe			      \
+	     || __builtin_expect (ch, 0x81) == 0xc9)			      \
       {									      \
 	/* This is illegal.  */						      \
 	if (! ignore_errors_p ())					      \
@@ -3083,7 +3085,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
 	   is also available.  */					      \
 	uint32_t ch2;							      \
 									      \
-	if (NEED_LENGTH_TEST && inptr + 1 >= inend)			      \
+	if (NEED_LENGTH_TEST && __builtin_expect (inptr + 1 >= inend, 0))     \
 	  {								      \
 	    /* The second character is not available.  Store		      \
 	       the intermediate result.  */				      \
@@ -3113,8 +3115,11 @@ static const char uhc_hangul_from_ucs[11172][2] =
 									      \
 	if (ch < 0xa1 || ch2 < 0xa1)					      \
 	  {								      \
-	    if (ch > 0xc6 || ch2 <0x41 || (ch2 > 0x5a && ch2 < 0x61)	      \
-		|| (ch2 > 0x7a && ch2 < 0x81) || (ch == 0xc6 && ch2 > 0x52))  \
+	    if (__builtin_expect (ch, 0xc5) > 0xc6			      \
+		|| __builtin_expect (ch2, 0x41) < 0x41			      \
+		|| (__builtin_expect (ch2, 0x41) > 0x5a && ch2 < 0x61)	      \
+		|| (__builtin_expect (ch2, 0x41) > 0x7a && ch2 < 0x81)	      \
+		|| (__builtin_expect (ch, 0xc5) == 0xc6 && ch2 > 0x52))	      \
 	      {								      \
 		/* This is not legal.  */				      \
 		if (! ignore_errors_p ())				      \
@@ -3135,7 +3140,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
 				     ? (ch - 0x81) * 178		      \
 				     : 5696 + (ch - 0xa1) * 84)];	      \
 									      \
-	    if (ch == 0)						      \
+	    if (__builtin_expect (ch, 1) == 0)				      \
 	      {								      \
 		/* This is an illegal character.  */			      \
 		if (! ignore_errors_p ())				      \
@@ -3155,7 +3160,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
 	else								      \
 	  {								      \
 	    ch = ksc5601_to_ucs4 (&inptr, 2, 0x80);			      \
-	    if (ch == __UNKNOWN_10646_CHAR)				      \
+	    if (__builtin_expect (ch, 0) == __UNKNOWN_10646_CHAR)	      \
 	      {								      \
 		/* Illegal.  */						      \
 		if (! ignore_errors_p ())				      \
@@ -3194,7 +3199,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
       {									      \
 	const char *s = uhc_hangul_from_ucs[ch - 0xac00];		      \
 									      \
-	if (NEED_LENGTH_TEST && outptr + 2 > outend)			      \
+	if (NEED_LENGTH_TEST && __builtin_expect (outptr + 2 > outend, 0))    \
 	  {								      \
 	    result = __GCONV_FULL_OUTPUT;				      \
 	    break;							      \
@@ -3209,12 +3214,12 @@ static const char uhc_hangul_from_ucs[11172][2] =
 						(NEED_LENGTH_TEST	      \
 						 ? outend - outptr : 2));     \
 									      \
-	if (NEED_LENGTH_TEST && written == 0)				      \
+	if (NEED_LENGTH_TEST && __builtin_expect (written, 1) == 0)	      \
 	  {								      \
 	    result = __GCONV_FULL_OUTPUT;				      \
 	    break;							      \
 	  }								      \
-	if (written == __UNKNOWN_10646_CHAR)				      \
+	if (__builtin_expect (written, 0) == __UNKNOWN_10646_CHAR)	      \
 	  {								      \
 	    if (! ignore_errors_p ())					      \
 	      {								      \
@@ -3241,12 +3246,12 @@ static const char uhc_hangul_from_ucs[11172][2] =
 					      (NEED_LENGTH_TEST		      \
 					       ? outend - outptr : 2));	      \
 									      \
-	if (NEED_LENGTH_TEST && written == 0)				      \
+	if (NEED_LENGTH_TEST && __builtin_expect (written, 1) == 0)	      \
 	  {								      \
 	    result = __GCONV_FULL_OUTPUT;				      \
 	    break;							      \
 	  }								      \
-	if (written == __UNKNOWN_10646_CHAR)				      \
+	if (__builtin_expect (written, 0) == __UNKNOWN_10646_CHAR)	      \
 	  {								      \
 	    if (! ignore_errors_p ())					      \
 	      {								      \