view tests/mpp/README @ 24:a4899cdfc2d6 default tip

Obfuscate the regexps to strip off the IBM compiler's copyright banners. I don't want bots scanning github to think they're real copyright notices because that could cause real problems.
author David A. Holland
date Mon, 13 Jun 2022 00:40:23 -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