* cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
Make error message friendlier.
From-SVN: r33829
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.
&& 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;
}
--- /dev/null
+/* 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;