diff --git a/cobj/codegen.c b/cobj/codegen.c index 243cd42fb..5ef5638ad 100644 --- a/cobj/codegen.c +++ b/cobj/codegen.c @@ -528,8 +528,12 @@ static enum cb_string_category get_string_category(const unsigned char *s, } #else } else if ((0x81 <= c && c <= 0x9f) || (0xe0 <= c && c <= 0xef)) { - i += 2; - category = CB_STRING_CATEGORY_CONTAINS_NON_ASCII; + if (i + 1 < size) { + i += 2; + category = CB_STRING_CATEGORY_CONTAINS_NON_ASCII; + } else { + return CB_STRING_CATEGORY_CONTAINS_UNCOMMON; + } #endif } else { return CB_STRING_CATEGORY_CONTAINS_UNCOMMON; diff --git a/tests/i18n_sjis.src/pic-x.at b/tests/i18n_sjis.src/pic-x.at index 113c67bb4..dd3929fec 100644 --- a/tests/i18n_sjis.src/pic-x.at +++ b/tests/i18n_sjis.src/pic-x.at @@ -80,7 +80,6 @@ AT_CHECK([java prog | od -tx1 -An | sed -e 's/ */ /g' -e 's/ *$//'], [0], [ 8a AT_CLEANUP AT_SETUP([Move with trunc and trimming 1]) -AT_CHECK([${SKIP_TEST}]) AT_DATA([prog.cob], [ IDENTIFICATION DIVISION.