about summary refs log tree commit diff
path: root/iconvdata/iso646.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/iso646.c')
-rw-r--r--iconvdata/iso646.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c
index ba0addcd78..ea36ebc5cd 100644
--- a/iconvdata/iso646.c
+++ b/iconvdata/iso646.c
@@ -145,7 +145,7 @@ gconv_init (struct __gconv_step *step)
       }
 
   result = __GCONV_NOCONV;
-  if (dir != illegal_dir)
+  if (__builtin_expect (dir, from_iso646) != illegal_dir)
     {
       new_data = (struct iso646_data *) malloc (sizeof (struct iso646_data));
 
@@ -404,7 +404,7 @@ gconv_end (struct __gconv_step *data)
 									      \
     /* Hopefully gcc can recognize that the following `if' is only true	      \
        when we reach the default case in the `switch' statement.  */	      \
-    if (failure == __GCONV_ILLEGAL_INPUT)				      \
+    if (__builtin_expect (failure, __GCONV_OK) == __GCONV_ILLEGAL_INPUT)      \
       {									      \
 	if (! ignore_errors_p ())					      \
 	  {								      \
@@ -881,7 +881,7 @@ gconv_end (struct __gconv_step *data)
 	break;								      \
       }									      \
 									      \
-    if (failure == __GCONV_ILLEGAL_INPUT)				      \
+    if (__builtin_expect (failure, __GCONV_OK) == __GCONV_ILLEGAL_INPUT)      \
       {									      \
 	if (! ignore_errors_p ())					      \
 	  {								      \