[net.micro.6809] bugs found in Microware C for 6809

jejones@ea.UUCP (08/14/84)

#N:ea:7300004:000:852
ea!jejones    Aug 13 18:46:00 1984

Bugs found in Microware C:

1. a continue in a for loop with empty continuation part bypasses
   the test part and simply branches back to the first statement
   in the loop body.

2. constant folding in address calculations seems to be hosed; to
   wit, the example

	w_offset = offset & sizemask[LOG2WSIZE];

   where w_offset and offset are integers, offset global, sizemask
   a global array of integers, and LOG2WSIZE the #defined constant
   4, generates the assembler

	ldd	offset,y
	anda	sizemask,y	(should be sizemask+8,y)
	andb	sizemask+1,y	(should be sizemask+9,y)
	std	8,s

Also, the header file that describes the option portion of path
descriptors (that getstat() can return) is erroneous for RBF devices.
(There's a 3-byte gap that the structure doesn't notice between
PD.SAS and PD.ATT.)

					More news as it happens,
					James Jones