[comp.sys.amiga] Lattice C 5.02 Bug????

chen@enel.UCalgary.CA (Lawrence Chen) (04/07/89)

I was working on a program late one night when I found this bug?
 
   printf("Some Text"\n);

NOTE: that I put the \n in the wrong place....I was tired

Anyways, this always causes a GURU during compiling.  I think it was
a 0000000A.???????? or something like that.


     / ADHOCNET: Chen@Daffy.FhHosp.AB.CA     ___ Lunatic Haven BBS
    /         or Chen@Mv2.UNCA.AdhocNet.CA  /    [CA 403 239 1225]
   /    __        __  __       __  __      /         __
  /    /_/ /   / /_/ /_  /\ / /   /_      /     /_/ /_  /\ /
 /___ / / /_/\/ / \ /__ / // /__ /__      \__/ / / /__ / //
 "I'm crazy, I don't work for anybody, and I'm having fun"
 BITNET: Chen%Daffy.FhHosp.AB.CA@UNCAEDU          - The Dreamer
      or Chen%Mv2.UNCA.AdhocNet.CA@UNCAEDU

amr@dukee.egr.duke.edu (Anthony M. Richardson) (04/08/89)

From article <8904071558.AA00552@enel.UCalgary.CA>, by chen@enel.UCalgary.CA (Lawrence Chen):
> I was working on a program late one night when I found this bug?
>  
>    printf("Some Text"\n);
> 
> NOTE: that I put the \n in the wrong place....I was tired
> 
> Anyways, this always causes a GURU during compiling.  I think it was
> a 0000000A.???????? or something like that.
> 

Here's a bug I ran into with 5.02 that I consider to be even more
serious.  At least it's correct code that gives an incorrect result

    temp = x1;
    x1 = x2;
    x2 = temp;
    temp = y1;
    y1 = y2;
    y2 = temp;

This is supposed to swap x1 with x2 and y1 with y2.  After running
through the code, x1, y1, and x2 are correctly set, but y2 is wrong.
The error occurs regardless of the variable type.

I reported this bug to Lattice about 1 1/2 months ago.  I got a call
from them about a week after that and they said they had verified the
bug.  I was also told that this bug seemed to be present only in
5.02 (This didn't help me much -- I ran into so many bugs with 5.00
that I found it to be useless and I don't have the earlier versions).

I was able to get around the bug by defining another temporary
variable and using it when swapping y1 and y2.  The existence of
this type of bug does not give me much confidence in the compiler
though.

Sorry about not reporting this earlier, but I only got post access
to the net yesterday.

Tony Richardson    amr@dukee.egr.duke.edu