[net.lang.mod2] Bugs in DECWRL

jbm@mordred.cs.purdue.edu (Joseph Manning) (10/18/86)

Here are some bugs that I've come across using the DECWRL Modula-2 compiler
running under UNIX 4.2 / 4.3 BSD :

   [1]  " FLOAT( c ) "  returns garbage when  c  is a CARDINAL CONST

   [2]  " FOR c := lo TO hi DO s END ", with  c : CARDINAL, lo >= 0, hi < 0
        will execute  s  ONCE, with c = lo, instead of just falling through
        (it does work correctly when c : INTEGER, but there are cases where
        CARDINAL is logically more appropriate)

   [3]  NEGATIVE whole numbers may be freely assigned to CARDINAL VARs;  no
        complaint even when compiled with the  -C  and  -sc  options  (!!!)

   [4]  FIRST( CARDINAL ) = -2147483648, instead of 0

   [5]  RETURN  inside a  WITH  from inside a function procedure causes the
        compiler to complain that the "Function does not end with a return"
        and no code is generated.

   [6]  A CASE statement with a BOOLEAN selector CRASHES the compiler !

Although some of these constructs may appear unusual, that's not the point;
the fact is that they should work correctly but do not.

Each of these bugs caused me varying degrees of grief / distress / confusion
before tracking it down and isolating it.  I'm posting this list to the net
hoping that other users of is compiler will be aware of these problems and
avoid the same difficulties.

If anyone has come across any other bugs, please let me know !!!

I'm new to net.lang.mod2, so apologies if this topic is old ...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Joseph Manning

Dept of Computer Sciences, Purdue University, West Lafayette, IN 47906, USA

InterNet: jbm @ mordred.cs.purdue.edu
UUCP    : ...{allegra,decwrl,ihnp4}!purdue!jbm