aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/ucnid-6.c5
-rw-r--r--libcpp/ChangeLog4
-rw-r--r--libcpp/lex.c3
4 files changed, 13 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 765cc43..6805e68 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -15,6 +15,8 @@
2005-03-14 Geoffrey Keating <geoffk@apple.com>
+ * gcc.dg/cpp/ucnid-6.c: New.
+
* gcc.dg/cpp/normalize-1.c: New.
* gcc.dg/cpp/normalize-2.c: New.
* gcc.dg/cpp/normalize-3.c: New.
diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-6.c b/gcc/testsuite/gcc.dg/cpp/ucnid-6.c
new file mode 100644
index 0000000..9ee0858
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/ucnid-6.c
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+/* { dg-options "-std=c89" } */
+#define a b(
+#define b(x) q
+int a\u00aa);
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 9f4303c..043acee 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,5 +1,9 @@
2005-03-14 Geoffrey Keating <geoffk@apple.com>
+ * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
+
+2005-03-14 Geoffrey Keating <geoffk@apple.com>
+
* init.c (cpp_create_reader): Default warn_normalize to normalized_C.
* charset.c: Update for new format of ucnid.h.
(ucn_valid_in_identifier): Update for new format of ucnid.h.
diff --git a/libcpp/lex.c b/libcpp/lex.c
index 9bcb91c..289f7b3 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -476,7 +476,8 @@ forms_identifier_p (cpp_reader *pfile, int first,
}
/* Is this a syntactically valid UCN? */
- if (*buffer->cur == '\\'
+ if ((CPP_OPTION (pfile, cplusplus) || CPP_OPTION (pfile, c99))
+ && *buffer->cur == '\\'
&& (buffer->cur[1] == 'u' || buffer->cur[1] == 'U'))
{
buffer->cur += 2;