view tests/mpp/README @ 21:1c9dac05d040

Add lint-style FALLTHROUGH annotations to fallthrough cases. (in the parse engine and thus the output code) Document this, because the old output causes warnings with gcc10.
author David A. Holland
date Mon, 13 Jun 2022 00:04:38 -0400
parents 13d2b8934445
children
line wrap: on
line source

This test suite is a subset of one put together some years ago, as a
regression suite for a different cpp.

It was never intended to test for standards conformance, although if
you look around you'll find that the mpp example gets quite a lot of
things wrong.

Some highlights:

   badinc15.c		- crashes
   badmac{03-06,17,18,20}.c - varargs macros not supported
   badmac07.c		- allows multiple definition of macro arg names
   badmac08.c		- allows arbitrary redefinitions of macros
   badmac{09,10-14}.c	- allows undefining/redefining builtin macros
   badmac{15,16}.c	- allows defining "defined"
   badmisc{1,2}.c	- allows out-of-range line numbers
   broken01.c		- passing empty macro args crashes
   broken02.c		- doesn't allow macro expansions to span lines
   broken{03-04}.c	- even simple recursive macros crash
   broken05.c		- wrong number of macro args causes assertion
   broken06.c		- nested token pasting crashes
   broken07.c		- doesn't allow pasting to an empty token
   broken08.c		- empty macro before directive causes strange error
   broken{09,10,11}.c	- macros expanding to directive-like lines crash
   broken12.c		- weird thing with #undef inside #if 0
   error1.c		- apparently doesn't support #error
   evil01.c		- crashes
   evil02.c		- completely bogus error message
   includes.c		- incorrect macro substitution in final #includes
   length{01-06}.c	- crashes
   line.c		- doesn't support line numbering?

   misc.c
		- doesn't splice continuation lines correctly in some cases
		- doesn't handle // comments
		- doesn't understand digraph tokens
		- doesn't handle character constants in conditionals properly
		- after #undef ifndef, #ifdef ifndef gives wrong answer
		- doesn't handle nested expansion correctly
		- allows pasting punctuation tokens together