aboutsummaryrefslogtreecommitdiff
path: root/iconvdata/johab.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/johab.c')
-rw-r--r--iconvdata/johab.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/iconvdata/johab.c b/iconvdata/johab.c
index 83a76d1ff0..a94270a1e0 100644
--- a/iconvdata/johab.c
+++ b/iconvdata/johab.c
@@ -215,15 +215,15 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
if (__builtin_expect (ch <= 0xd3, 1)) \
{ \
/* Hangul */ \
- uint_fast32_t i, m, f; \
+ int_fast32_t i, m, f; \
\
i = init[(idx & 0x7c00) >> 10]; \
m = mid[(idx & 0x03e0) >> 5]; \
f = final[idx & 0x001f]; \
\
- if (__builtin_expect (i, 0) == -1 \
- || __builtin_expect (m, 0) == -1 \
- || __builtin_expect (f, 0) == -1) \
+ if (__builtin_expect (i == -1, 0) \
+ || __builtin_expect (m == -1, 0) \
+ || __builtin_expect (f == -1, 0)) \
{ \
/* This is illegal. */ \
if (! ignore_errors_p ()) \
@@ -243,7 +243,7 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
ch = init_to_ucs[i - 1]; \
else if (i == 0 && m > 0 && f == 0) \
ch = 0x314e + m; /* 0x314f + m - 1 */ \
- else if (__builtin_expect (i | m, 0) == 0 \
+ else if (__builtin_expect ((i | m) == 0, 1) \
&& __builtin_expect (f > 0, 1)) \
ch = final_to_ucs[f - 1]; /* round trip?? */ \
else \