re PR c++/23333 (accepts invalid pure specifier)

2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

	PR c++/23333
	* include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.

	* c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
	number is a single digit '0'.

	* parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
	identify a single '0'.

	* g++.dg/parse/error25.C: Add more tests.

From-SVN: r108947
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index b5bece5..0ab6635 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -172,6 +172,8 @@
 #define NAMED_OP	(1 << 4) /* C++ named operators.  */
 #define NO_EXPAND	(1 << 5) /* Do not macro-expand this token.  */
 #define BOL		(1 << 6) /* Token at beginning of line.  */
+#define PURE_ZERO	(1 << 7) /* Single 0 digit, used by the C++ frontend,
+				    set in c-lex.c.  */
 
 /* Specify which field, if any, of the cpp_token union is used.  */