about summary refs log tree commit diff
path: root/iconvdata/ansi_x3.110.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-06-06 06:49:00 +0000
committerUlrich Drepper <drepper@redhat.com>2000-06-06 06:49:00 +0000
commit5ea1a82defd37feaa6be1faf44854364c901cdaf (patch)
tree9fad50dfb181485bb4ca62c9d96e0d31376dce07 /iconvdata/ansi_x3.110.c
parent365afefc6b7054d9ca7585f6f17bdd1fe03b8cfd (diff)
downloadglibc-5ea1a82defd37feaa6be1faf44854364c901cdaf.tar.gz
glibc-5ea1a82defd37feaa6be1faf44854364c901cdaf.tar.xz
glibc-5ea1a82defd37feaa6be1faf44854364c901cdaf.zip
Update.
	* iconvdata/big5hkscs.c: Add __builtin_expect in many places.
	* iconvdata/big5.c: Likewise.
	* iconvdata/ansi_x3.110.c: Likewise.
	* iconvdata/8bit-generic.c: Likewise.
	* iconvdata/8bit-gap.c: Likewise.
	* iconv/loop.c: Likewise.
	* iconv/gconv_db.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* iconv/gconv_simple.c: Likewise.
	* iconv/skeleton.c: Likewise.
Diffstat (limited to 'iconvdata/ansi_x3.110.c')
-rw-r--r--iconvdata/ansi_x3.110.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c
index 94bd2e620e..bacbfd23ad 100644
--- a/iconvdata/ansi_x3.110.c
+++ b/iconvdata/ansi_x3.110.c
@@ -401,7 +401,7 @@ static const char from_ucs4[][2] =
     uint32_t ch = *inptr;						      \
     int incr;								      \
 									      \
-    if (ch >= 0xc1 && ch <= 0xcf)					      \
+    if (__builtin_expect (ch, 0x00) >= 0xc1 && ch <= 0xcf)		      \
       {									      \
 	/* Composed character.  First test whether the next character	      \
 	   is also available.  */					      \
@@ -416,7 +416,8 @@ static const char from_ucs4[][2] =
 									      \
 	ch2 = inptr[1];							      \
 									      \
-	if (ch2 < 0x20 || ch2 >= 0x80)					      \
+	if (__builtin_expect (ch2, 0x20) < 0x20				      \
+	    || __builtin_expect (ch2, 0x7f) >= 0x80)			      \
 	  {								      \
 	    /* This is illegal.  */					      \
 	    if (! ignore_errors_p ())					      \
@@ -440,7 +441,7 @@ static const char from_ucs4[][2] =
 	incr = 1;							      \
       }									      \
 									      \
-    if (ch == 0 && *inptr != '\0')					      \
+    if (__builtin_expect (ch, 1) == 0 && *inptr != '\0')		      \
       {									      \
 	/* This is an illegal character.  */				      \
 	if (! ignore_errors_p ())					      \
@@ -471,7 +472,8 @@ static const char from_ucs4[][2] =
     uint32_t ch = get32 (inptr);					      \
     const char *cp;							      \
 									      \
-    if (ch >= sizeof (from_ucs4) / sizeof (from_ucs4[0]))		      \
+    if (__builtin_expect (ch, 0)					      \
+	>= sizeof (from_ucs4) / sizeof (from_ucs4[0]))			      \
       {									      \
 	if (ch == 0x2c7)						      \
 	  cp = "\xcf\x20";						      \
@@ -536,7 +538,7 @@ static const char from_ucs4[][2] =
 	    tmp[1] = '\0';						      \
 	    cp = tmp;							      \
 	  }								      \
-	else if (ch == 0x266a)						      \
+	else if (__builtin_expect (ch, 0x266a) == 0x266a)		      \
 	  cp = "\xd5";							      \
 	else								      \
 	  {								      \
@@ -556,7 +558,7 @@ static const char from_ucs4[][2] =
       {									      \
 	cp = from_ucs4[ch];						      \
 									      \
-	if (cp[0] == '\0' && ch != 0)					      \
+	if (__builtin_expect (cp[0], '\1') == '\0' && ch != 0)		      \
 	  {								      \
 	    /* Illegal characters.  */					      \
 	    if (! ignore_errors_p ())					      \
@@ -575,7 +577,7 @@ static const char from_ucs4[][2] =
     /* Now test for a possible second byte and write this if possible.  */    \
     if (cp[1] != '\0')							      \
       {									      \
-	if (NEED_LENGTH_TEST && outptr >= outend)			      \
+	if (NEED_LENGTH_TEST && __builtin_expect (outptr >= outend, 0))	      \
 	  {								      \
 	    /* The result does not fit into the buffer.  */		      \
 	    --outptr;							      \