page%ulowell.csnet@CSNET-RELAY.ARPA (10/30/85)
From: Bob Page <page%ulowell.csnet@CSNET-RELAY.ARPA> Here are the problems with Lattice C V3.02 that are fixed in C V3.03: 1. When objects whose size was not a power of two was subscripted with a short index, long multiplication was performed. Now the multiply is performed in-line with the MUL instruction. 2. Indirect references with offsets greater than 32K did not work correctly. 3. There were miscellaneous problems with short and character expressions where the operands were not being extended or masked correctly. 4. Technically invalid declarations were being accepted by the compiler (e.g., int a(space)b(space)c; instead of int a,b,c;). 5. Expressions like ((a !=0) != 0) were not evaluated properly. 6. When character pointers were converted to other types of pointers the value was forced to an even value to cause alignment on word boundaries. This has been removed; Caveat Emptor. 7. Casting an enum to an integral type generated an error message. 8. Initialization of arrays of structures required full use of brackets. 9. Enum declarations caused the compiler to fail on the Amiga, usually dragging the system down with it. Feel free to repost this to BIX, the fridge, and anywhere else you'd like. ~BP