[comp.os.minix] c68 68000 C-compiler, patch_05

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (06/13/90)

This patch comes so quickly after patch_4 due to a bug report I got
over the net.
But most of the stuff is that I changed the DIAG-messages to fatal error
messages. Yes, I failed to implement error recovery, so inconsistencies
yield to compiler termination now.

The bug affected commands/nroff/macros.c and commands/nroff/strings.c.
It is a bug in the register allocator: Register could be dumped in the
wrong order when they were saved across function calls (strlen in this
case). What surprised me most is that I checked all C-sources in
fs mm kernel commands lib/* commands/bawk commands/nroff commands/mined
commands/sh commands/make
and I only found these two files metioned affected.
I fixed this problem quickly yesterday, but today I decided to re-write
the register allocator (register.c), which will be supplied completely
(not a cdiff) in the patch.
I built in several consitency checks, so errors here or in the code
generator (take care of the right order of freeop, validate etc!)
will be flagged (in the past, such errors simply led to wrong code).

You don't have to recompile everything, as I checked most of the MINIX
sources if the output of the old and the new compiler is different
(see the list above).

A subsequent posting contains the patch itself.....

Thanks to the person which dropped me a note, since I don't use nroff,
I would not have found the error in years.......
With YOUR help, we can make C68 reliable....
C.v.W.