Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!alberta!calgary!ingoldsby From: ingoldsby@calgary.UUCP (Terry Ingoldsby) Newsgroups: net.micro.6809 Subject: Microware C Compiler Bugs Message-ID: <204@vaxb.calgary.UUCP> Date: Wed, 18-Jun-86 12:15:06 EDT Article-I.D.: vaxb.204 Posted: Wed Jun 18 12:15:06 1986 Date-Received: Fri, 20-Jun-86 03:24:33 EDT Organization: U. of Calgary, Calgary, Ab. Lines: 37 Keywords: C Compiler Bugs I've been meaning to do this for some time, but have never gotten around to it. I was wondering how many people have found bugs in the Microware OS9 C compiler, specifically the CoCo implementation sold by RS. I've found at least one: The bug involves using arrays and the `&' and `|' operators. For example unsigned array[10]; unsigned var; Any use of statements like var & array[1] actually compile as var & array[0] This can be corrected by using array[1] & var but if you are trying to & two array values, the one on the right hand side of the & will be indexed at zero. I wrote Radio Shack about it, and they said that this was indeed a bug, and that they would fix it in the next version. Unfortunately, they said that they had no current plans to release another version anytime soon. Does anyone know if there is a fix for this? On another, related note. I am doing some number crunching using this compiler, and frequently get the error #40, Floating point under/overflow error. This usually stems from multiplying two very small numbers together. I can, of course, put tests on every multiplication but this is very inefficient. What I would like to do is catch the signal, get hold of the over/underflowed value, fix it, and get the corrected value back to the multiplication statement. Is this asking too much? Why don't I have this problem on other compilers? Terry Ingoldsby