Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles; site ea.UUCP
Path: utzoo!watmath!clyde!burl!mgnetp!ihnp4!inuxc!pur-ee!uiucdcs!ea!jejones
From: jejones@ea.UUCP
Newsgroups: net.micro.6809
Subject: bugs found in Microware C for 6809 - (nf)
Message-ID: <7300004@ea.UUCP>
Date: Mon, 13-Aug-84 19:46:00 EDT
Article-I.D.: ea.7300004
Posted: Mon Aug 13 19:46:00 1984
Date-Received: Thu, 16-Aug-84 01:12:38 EDT
Lines: 30
Nf-ID: #N:ea:7300004:000:852
Nf-From: ea!jejones    Aug 13 18:46:00 1984

#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