diff options
author | Geoffrey Keating <geoffk@apple.com> | 2005-03-12 10:44:06 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2005-03-12 10:44:06 +0000 |
commit | 47e204910a9a3e154e38121f55b9cafec0620b63 (patch) | |
tree | 96b619db02d90b96e5dc09601db8bd7a58e95367 /gcc | |
parent | 5269bfe2809931ca62a0bcd8cad1bed7e78e5b32 (diff) | |
download | gcc-47e204910a9a3e154e38121f55b9cafec0620b63.zip gcc-47e204910a9a3e154e38121f55b9cafec0620b63.tar.gz gcc-47e204910a9a3e154e38121f55b9cafec0620b63.tar.bz2 |
Index: libcpp/ChangeLog
2005-03-12 Geoffrey Keating <geoffk@apple.com>
* directives.c (glue_header_name): Update call to cpp_spell_token.
* internal.h (_cpp_interpret_identifier): New.
* charset.c (_cpp_interpret_identifier): New.
(_cpp_valid_ucn): Allow UCN version of '$'.
* lex.c (lex_identifier): Add extra parameter to indicate if initial
character was '$' or '\'. Support identifiers with UCNs.
(forms_identifier_p): Allow UCNs.
(_cpp_lex_direct): Pass extra parameter to lex_identifier.
(utf8_to_ucn): New.
(cpp_spell_token): Add FORSTRING parameter. Use it.
(cpp_token_as_text): Update call to cpp_spell_token.
(cpp_output_token): Write UCNs back out.
(stringify_arg): Update call to cpp_spell_token.
(paste_tokens): Likewise.
(cpp_macro_definition): Likewise.
* macro.c (stringify_arg): Likewise.
(paste_tokens): Likewise.
(cpp_macro_definition): Likewise.
* include/cpplib.h: Add parameter to cpp_spell_token.
Index: gcc/ChangeLog
2005-03-12 Geoffrey Keating <geoffk@apple.com>
* c-lex.c (c_lex_with_flags): Add parameter to call to
cpp_spell_token.
Index: gcc/testsuite/ChangeLog
2005-03-12 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/ucnid-1.c: New.
* gcc.dg/ucnid-2.c: New.
* gcc.dg/ucnid-3.c: New.
* gcc.dg/ucnid-4.c: New.
* gcc.dg/ucnid-5.c: New.
* gcc.dg/ucnid-6.c: New.
* gcc.dg/cpp/ucnid-1.c: New.
* gcc.dg/cpp/ucnid-2.c: New.
* gcc.dg/cpp/ucnid-3.c: New.
* g++.dg/other/ucnid-1.C: New.
From-SVN: r96333
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-lex.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/ucnid-1.C | 25 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/ucnid-1.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/ucnid-2.c | 16 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp/ucnid-3.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ucnid-1.c | 25 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ucnid-2.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ucnid-3.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ucnid-4.c | 26 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ucnid-5.c | 14 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ucnid-6.c | 26 |
13 files changed, 236 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d85aba..b22a17e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-03-12 Geoffrey Keating <geoffk@apple.com> + + * c-lex.c (c_lex_with_flags): Add parameter to call to + cpp_spell_token. + 2005-03-11 Per Bothner <per@bothner.com> * c-tree.h (struct c_declarator): New id_loc field. diff --git a/gcc/c-lex.c b/gcc/c-lex.c index fdc1ff6..5be65f1 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -425,7 +425,7 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags) { unsigned char name[4]; - *cpp_spell_token (parse_in, tok, name) = 0; + *cpp_spell_token (parse_in, tok, name, true) = 0; error ("stray %qs in program", name); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7760588..5e748ad 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,18 @@ 2005-03-12 Geoffrey Keating <geoffk@apple.com> + * gcc.dg/ucnid-1.c: New. + * gcc.dg/ucnid-2.c: New. + * gcc.dg/ucnid-3.c: New. + * gcc.dg/ucnid-4.c: New. + * gcc.dg/ucnid-5.c: New. + * gcc.dg/ucnid-6.c: New. + * gcc.dg/cpp/ucnid-1.c: New. + * gcc.dg/cpp/ucnid-2.c: New. + * gcc.dg/cpp/ucnid-3.c: New. + * g++.dg/other/ucnid-1.C: New. + +2005-03-12 Geoffrey Keating <geoffk@apple.com> + * gcc.dg/vmx/darwin-abi-3.c: Delete. 2005-03-11 Per Bothner <per@bothner.com> diff --git a/gcc/testsuite/g++.dg/other/ucnid-1.C b/gcc/testsuite/g++.dg/other/ucnid-1.C new file mode 100644 index 0000000..a5884bc --- /dev/null +++ b/gcc/testsuite/g++.dg/other/ucnid-1.C @@ -0,0 +1,25 @@ +/* { dg-do run } */ +#include <cstdlib> + +int \u00C0(void) { return 1; } +int \u00C1(void) { return 2; } +int \U000000C2(void) { return 3; } +int wh\u00ff(void) { return 4; } +int a\u00c4b\u0441\U000003b4e(void) { return 5; } + +int main (void) +{ + + if (\u00C0() != 1) + abort (); + if (\u00c1() != 2) + abort (); + if (\u00C2() != 3) + abort (); + if (wh\u00ff() != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e() != 5) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-1.c b/gcc/testsuite/gcc.dg/cpp/ucnid-1.c new file mode 100644 index 0000000..bc516ca --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/ucnid-1.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99" } */ +void abort (void); + +#define \u00C0 1 +#define \u00C1 2 +#define \U000000C2 3 +#define wh\u00ff 4 +#define a\u00c4b\u0441\U000003b4e 5 + +int main (void) +{ + + if (\u00C0 != 1) + abort (); + if (\u00c1 != 2) + abort (); + if (\u00C2 != 3) + abort (); + if (wh\u00ff != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e != 5) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-2.c b/gcc/testsuite/gcc.dg/cpp/ucnid-2.c new file mode 100644 index 0000000..616680a --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/ucnid-2.c @@ -0,0 +1,16 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99" } */ +#include <stdlib.h> +#include <string.h> + +#define str(t) #t + +int main (void) +{ + const char s[] = str (\u30b2); + + if (strcmp (s, "\u30b2") != 0) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cpp/ucnid-3.c b/gcc/testsuite/gcc.dg/cpp/ucnid-3.c new file mode 100644 index 0000000..a910037 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/ucnid-3.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ +/* { dg-options "-std=c99" } */ + +#define paste(x, y) x ## y + +int paste(\u00aa, \u0531) = 3; + diff --git a/gcc/testsuite/gcc.dg/ucnid-1.c b/gcc/testsuite/gcc.dg/ucnid-1.c new file mode 100644 index 0000000..a8d49a3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ucnid-1.c @@ -0,0 +1,25 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99" } */ +void abort (void); + +int main (void) +{ + int \u00C0 = 1; + int \u00C1 = 2; + int \U000000C2 = 3; + int wh\u00ff = 4; + int a\u00c4b\u0441\U000003b4e = 5; + + if (\u00C0 != 1) + abort (); + if (\u00c1 != 2) + abort (); + if (\u00C2 != 3) + abort (); + if (wh\u00ff != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e != 5) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/ucnid-2.c b/gcc/testsuite/gcc.dg/ucnid-2.c new file mode 100644 index 0000000..8288514 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ucnid-2.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99" } */ +void abort (void); + +static int \u00C0 = 1; +static int \u00C1 = 2; +static int \U000000C2 = 3; +static int wh\u00ff = 4; +static int a\u00c4b\u0441\U000003b4e = 5; + +int main (void) +{ + + if (\u00C0 != 1) + abort (); + if (\u00c1 != 2) + abort (); + if (\u00C2 != 3) + abort (); + if (wh\u00ff != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e != 5) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/ucnid-3.c b/gcc/testsuite/gcc.dg/ucnid-3.c new file mode 100644 index 0000000..66e8414 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ucnid-3.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99" } */ +void abort (void); + +int \u00C0 = 1; +int \u00C1 = 2; +int \U000000C2 = 3; +int wh\u00ff = 4; +int a\u00c4b\u0441\U000003b4e = 5; + +int main (void) +{ + + if (\u00C0 != 1) + abort (); + if (\u00c1 != 2) + abort (); + if (\u00C2 != 3) + abort (); + if (wh\u00ff != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e != 5) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/ucnid-4.c b/gcc/testsuite/gcc.dg/ucnid-4.c new file mode 100644 index 0000000..35725a3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ucnid-4.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99" } */ +void abort (void); + +int \u00C0(void) { return 1; } +int \u00C1(void) { return 2; } +int \U000000C2(void) { return 3; } +int wh\u00ff(void) { return 4; } +int a\u00c4b\u0441\U000003b4e(void) { return 5; } + +int main (void) +{ + + if (\u00C0() != 1) + abort (); + if (\u00c1() != 2) + abort (); + if (\u00C2() != 3) + abort (); + if (wh\u00ff() != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e() != 5) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/ucnid-5.c b/gcc/testsuite/gcc.dg/ucnid-5.c new file mode 100644 index 0000000..08cd9c2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ucnid-5.c @@ -0,0 +1,14 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99 -fdollars-in-identifiers" } */ +void abort (void); + +int a$b(void) { return 1; } + +int main (void) +{ + + if (a\u0024b() != 1) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/ucnid-6.c b/gcc/testsuite/gcc.dg/ucnid-6.c new file mode 100644 index 0000000..61c8c3e --- /dev/null +++ b/gcc/testsuite/gcc.dg/ucnid-6.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-options "-std=c99 -save-temps" } */ +void abort (void); + +int \u00C0(void) { return 1; } +int \u00C1(void) { return 2; } +int \U000000C2(void) { return 3; } +int wh\u00ff(void) { return 4; } +int a\u00c4b\u0441\U000003b4e(void) { return 5; } + +int main (void) +{ + + if (\u00C0() != 1) + abort (); + if (\u00c1() != 2) + abort (); + if (\u00C2() != 3) + abort (); + if (wh\u00ff() != 4) + abort (); + if (a\u00c4b\u0441\U000003b4e() != 5) + abort (); + + return 0; +} |