Mercurial > ~dholland > hg > ag > index.cgi
view tests/mpp/README @ 8:ec2b657edf13
Add explicit lint-comment-style fallthrough annotations.
GCC now assumes that if you don't have these you're making a mistake,
which is annoying.
XXX: This changeset updates the AG output files only (by hand) and is
XXX: abusive - rebuilding them will erase the change. However, I need
XXX: to get things to build before I can try to get AG to issue the
XXX: annotations itself, so this seems like a reasonable expedient.
author | David A. Holland |
---|---|
date | Mon, 30 May 2022 23:51:43 -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