summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2014-10-10 22:59:46 +0900
committerDaiki Ueno <ueno@gnu.org>2014-11-13 16:03:24 +0900
commit15b5d4514a96ca26b3f38aeb87b6cc86de17edd2 (patch)
treea6426e0771418203b72b73b8069739f5ebf4eba7 /lib
parent9464ea9d6a51f346702b1d3e68a486fdf0ab563c (diff)
downloadgnulib-15b5d4514a96ca26b3f38aeb87b6cc86de17edd2.tar.gz
gen-uni-tables: check out-of-range values added to 3-level tables
* lib/gen-uni-tables.c (output_category, output_bidi_category) (output_joining_type, output_ident_category): Check out-of-range values added to 3-level tables.
Diffstat (limited to 'lib')
-rw-r--r--lib/gen-uni-tables.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/gen-uni-tables.c b/lib/gen-uni-tables.c
index 80f17845a5..207372acc2 100644
--- a/lib/gen-uni-tables.c
+++ b/lib/gen-uni-tables.c
@@ -1035,6 +1035,8 @@ output_category (const char *filename, const char *version)
for (log2_value = 0; value > 1; value >>= 1, log2_value++);
+ assert (log2_value <= 0x1f);
+
category_table_add (&t, ch, log2_value);
}
@@ -1524,6 +1526,8 @@ output_bidi_category (const char *filename, const char *version)
{
int value = get_bidi_category (ch);
+ assert (value <= 0x1f);
+
bidi_category_table_add (&t, ch, value);
}
@@ -3973,6 +3977,8 @@ output_joining_type (const char *filename, const char *version)
{
uint8_t value = unicode_joining_type[ch];
+ assert (value == (uint8_t)~(uint8_t)0 || value <= 0x0f);
+
joining_type_table_add (&t, ch, value);
}
@@ -5110,6 +5116,9 @@ output_ident_category (const char *filename, int (*predicate) (unsigned int), co
for (ch = 0; ch < 0x110000; ch++)
{
int syntaxcode = predicate (ch);
+
+ assert (syntaxcode <= 0x03);
+
if (syntaxcode != UC_IDENTIFIER_INVALID)
identsyntax_table_add (&t, ch, syntaxcode);
}