summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-9.c8
-rw-r--r--libcpp/ChangeLog7
-rw-r--r--libcpp/makeucnid.c16
-rw-r--r--libcpp/ucnid.h9
-rw-r--r--libcpp/ucnid.tab2
6 files changed, 31 insertions, 15 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2dc4a31ef2f..d395e736da3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc.dg/cpp/ucnid-9.c: New test.
+
2013-11-14 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/stack_usage1b.adb: New test.
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-9.c b/gcc/testsuite/gcc.dg/cpp/ucnid-9.c
new file mode 100644
index 00000000000..8dc43458ec2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-9.c
@@ -0,0 +1,8 @@
+/* { dg-do preprocess } */
+/* { dg-options "-std=c99 -pedantic -fextended-identifiers" } */
+
+\u2160
+\u2182
+\u3007
+\u3021
+\u3029
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 64de79b287c..efbfe233c40 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,10 @@
+2013-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * ucnid.tab: Mark C99 digits as [C99DIG].
+ * makeucnid.c (read_ucnid): Handle [C99DIG].
+ (read_table): Don't check for digit characters.
+ * ucnid.h: Regenerate.
+
2013-11-06 Tobias Burnus <burnus@net-b.de>
* macro.c (_cpp_builtin_macro_text): Correct
diff --git a/libcpp/makeucnid.c b/libcpp/makeucnid.c
index 4e3f76d551d..da060655953 100644
--- a/libcpp/makeucnid.c
+++ b/libcpp/makeucnid.c
@@ -66,6 +66,8 @@ read_ucnid (const char *fname)
break;
if (strcmp (line, "[C99]\n") == 0)
fl = C99;
+ if (strcmp (line, "[C99DIG]\n") == 0)
+ fl = C99|digit;
else if (strcmp (line, "[CXX]\n") == 0)
fl = CXX;
else if (isxdigit (line[0]))
@@ -104,10 +106,10 @@ read_ucnid (const char *fname)
fclose (f);
}
-/* Read UnicodeData.txt and set the 'digit' flag, and
- also fill in the 'decomp' table to be the decompositions of
- characters for which both the character decomposed and all the code
- points in the decomposition are either C99 or CXX. */
+/* Read UnicodeData.txt and fill in the 'decomp' table to be the
+ decompositions of characters for which both the character
+ decomposed and all the code points in the decomposition are either
+ C99 or CXX. */
static void
read_table (char *fname)
@@ -135,11 +137,7 @@ read_table (char *fname)
do {
l++;
} while (*l != ';');
- /* Category value; things starting with 'N' are numbers of some
- kind. */
- if (*++l == 'N')
- flags[codepoint] |= digit;
-
+ /* Category value. */
do {
l++;
} while (*l != ';');
diff --git a/libcpp/ucnid.h b/libcpp/ucnid.h
index 8d6434a569a..d049cc70b9e 100644
--- a/libcpp/ucnid.h
+++ b/libcpp/ucnid.h
@@ -714,13 +714,12 @@
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2132 },
{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x2138 },
{ 0| 0| 0|CID|NFC| 0| 0, 0, 0x215f },
-{ C99|DIG| 0|CID|NFC| 0| 0, 0, 0x217f },
-{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x2182 },
+{ C99| 0| 0|CID|NFC| 0| 0, 0, 0x217f },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x2182 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3004 },
-{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x3006 },
-{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3007 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x3007 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3020 },
-{ C99|DIG| 0|CID|NFC|NKC| 0, 0, 0x3029 },
+{ C99| 0| 0|CID|NFC|NKC| 0, 0, 0x3029 },
{ 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3040 },
{ C99| 0|CXX|CID|NFC|NKC| 0, 0, 0x3093 },
{ 0| 0|CXX|CID|NFC|NKC| 0, 0, 0x3094 },
diff --git a/libcpp/ucnid.tab b/libcpp/ucnid.tab
index ea228826123..643c230110e 100644
--- a/libcpp/ucnid.tab
+++ b/libcpp/ucnid.tab
@@ -119,7 +119,7 @@ ac00-d7a3
0b3d 1fbe 203f-2040 2102 2107 210a-2113 2115 2118-211d 2124 2126 2128
212a-2131 2133-2138 2160-2182 3005-3007 3021-3029
-; Digits
+[C99DIG]
0660-0669 06f0-06f9 0966-096f 09e6-09ef 0a66-0a6f 0ae6-0aef 0b66-0b6f
0be7-0bef 0c66-0c6f 0ce6-0cef 0d66-0d6f 0e50-0e59 0ed0-0ed9 0f20-0f33