[net.micro.amiga] Lattice C V3.03

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