about summary refs log tree commit diff
path: root/iconvdata/ibm933.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/ibm933.c')
-rw-r--r--iconvdata/ibm933.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
index 669e357066..8abc05ab2b 100644
--- a/iconvdata/ibm933.c
+++ b/iconvdata/ibm933.c
@@ -189,7 +189,6 @@ enum
     uint32_t ch = get32 (inptr);					      \
     const struct gap *rp1 = __ucs4_to_ibm933sb_idx;			      \
     const struct gap *rp2 = __ucs4_to_ibm933db_idx;			      \
-    const char *cp;							      \
 									      \
     if (__glibc_unlikely (ch >= 0xffff))				      \
       {									      \
@@ -202,14 +201,16 @@ enum
       ++rp1;								      \
 									      \
     /* Use the UCS4 table for single byte.  */				      \
+    unsigned char sbconv;						      \
     if (__builtin_expect (ch < rp1->start, 0)				      \
-	|| (cp = __ucs4_to_ibm933sb[ch + rp1->idx],			      \
-	    __builtin_expect (cp[0], L'\1') == L'\0' && ch != '\0'))	      \
+	|| (sbconv = __ucs4_to_ibm933sb[ch + rp1->idx],			      \
+	    __builtin_expect (sbconv, L'\1') == L'\0' && ch != '\0'))	      \
       {									      \
 	/* Use the UCS4 table for double byte.  */			      \
 	while (ch > rp2->end)						      \
 	  ++rp2;							      \
 									      \
+	const char *cp;							      \
 	if (__builtin_expect (ch < rp2->start, 0)			      \
 	    || (cp = __ucs4_to_ibm933db[ch + rp2->idx],			      \
 		__builtin_expect (cp[0], L'\1')==L'\0' && ch != '\0'))	      \
@@ -257,7 +258,7 @@ enum
 	    result = __GCONV_FULL_OUTPUT;				      \
 	    break;							      \
 	  }								      \
-	*outptr++ = cp[0];						      \
+	*outptr++ = sbconv;						      \
       }									      \
 									      \
     /* Now that we wrote the output increment the input pointer.  */	      \