8sa1-gcc/gcc/testsuite/gcc.dg/cpp/skipping2.c
Neil Booth cef0d199d2 cpphash.h (struct_lexer_state): Delete was_skipping.
* cpphash.h (struct_lexer_state): Delete was_skipping.
	Move skipping here from struct cpp_reader.
	* cpplex.c (parse_identifier): Update.
	(_cpp_lex_token): Don't skip tokens in a directive.
	* cpplib.c (struct if_stack): Update.
	(start_directive, end_directive): Don't change skipping state.
	(_cpp_handle_directive): Update.
	(do_ifdef, do_ifndef, do_if, do_elif): Similarly.
	(do_else, do_endif): Update; only check for excess tokens if not
	in a skipped conditional block.
	(push_conditional): Update for new struct if_stack.

	* gcc.dg/cpp/extratokens.c: Fix.
	* gcc.dg/cpp/skipping2.c: New tests.

From-SVN: r44380
2001-07-26 06:02:47 +00:00

15 lines
443 B
C

/* Copyright (C) 2001 Free Software Foundation, Inc. */
/* { dg-do preprocess } */
/* Tests that excess tokens in skipped conditional blocks don't warn. */
/* Source: Neil Booth, 25 Jul 2001. */
#if 0
#if foo
#else foo /* { dg-bogus "extra tokens" "extra tokens in skipped block" } */
#endif foo /* { dg-bogus "extra tokens" "extra tokens in skipped block" } */
#endif bar /* { dg-warning "extra tokens" "tokens after #endif" } */