The High-Ordered Word Is Zeroed Out

Product Version(s): 3.20
Operating System:   MS-DOS
Flags: ENDUSER | TAR50048 buglist3.20 fixlist3.30
Last Modified: 30-SEP-1988    ArticleIdent: Q10388

In the program below, improper code is generated for the multiply.
After the multiply is performed, the high-order word is zeroed-out,
indicating that the compiler is trying to do an unsigned coercion
before assigning the value to a 4-byte integer.

Microsoft has confirmed this to be a problem in Version 3.20. This
problem was corrected in Version 3.30.

The following is a short example code:

   program fu;
   VAR X : INTEGER4;
   W : WORD;
   BEGIN
   W := 50;
   X := W * 10000;
   END.
