diff options
author | Zack Weinberg <zack@wolery.cumb.org> | 2000-05-10 19:29:20 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2000-05-10 19:29:20 +0000 |
commit | e43a157747ca2a71a4a55c16b2bc6299e9a636c8 (patch) | |
tree | f3b430924614b3fbd0ba60c6319d5b379b8108b6 | |
parent | fa5572714eed920f6d162a1d7ab08d990926ba83 (diff) | |
download | gcc-e43a157747ca2a71a4a55c16b2bc6299e9a636c8.zip gcc-e43a157747ca2a71a4a55c16b2bc6299e9a636c8.tar.gz gcc-e43a157747ca2a71a4a55c16b2bc6299e9a636c8.tar.bz2 |
cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
* cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
Make error message friendlier.
From-SVN: r33829
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cppexp.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cpp-if4.c | 8 |
3 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46a89c2..a942946 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2000-05-10 Zack Weinberg <zack@wolery.cumb.org> + * cppexp.c (lex): Use %.*s to print non-NUL-terminated string. + Make error message friendlier. + * cpphash.h (struct hashnode): Use struct hack for name member. * cpphash.c (struct hashdummy): New. diff --git a/gcc/cppexp.c b/gcc/cppexp.c index 00eaea7..7e99292 100644 --- a/gcc/cppexp.c +++ b/gcc/cppexp.c @@ -466,8 +466,8 @@ lex (pfile, skip_evaluation) && tok_start[1] == toktab->operator[1]) break; if (toktab->token == ERROR) - cpp_error (pfile, "'%s' not allowed in operand of #if", - tok_start); + cpp_error (pfile, "'%.*s' is not allowed in #if expressions", + (int) (tok_end - tok_start), tok_start); op.op = toktab->token; return op; } diff --git a/gcc/testsuite/gcc.dg/cpp-if4.c b/gcc/testsuite/gcc.dg/cpp-if4.c new file mode 100644 index 0000000..84764fb --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp-if4.c @@ -0,0 +1,8 @@ +/* Regression test for proper error message. The token name isn't + NUL terminated, so we would print garbage after it. */ +/* { dg-do compile } */ + +#if 1 += 2 /* { dg-error "'\\+=' is not allowed" "+= in if" } */ +syntax_error +#endif +int foo; |