Return-Path: 
Delivery-Date: Wed, 14 Mar 90 17:03:21 PST
Received: by jumbo; id AA01781; Wed, 14 Mar 90 17:03:04 PST
From: stolfi (Jorge Stolfi)
Message-Id: <9003150103.AA01781@jumbo>
Date: 14 Mar 1990 1702-PST (Wednesday)
To: muller, kalsow
X-Folder-Carbon: sw-m3
Subject: m3.1.4 outstanding bug list


Eric and Bill

What do you think of posting this do srcext.m3?

If you approve, please feel free to correct and rewrite it at will.  
Perhaps you want to add other people's bugs to this list, and 
suggest code patches where appropriate?

Thanks for all the good work,

--jorge

------------------------------------------------------------------------------
Outstanding bugs in the SRC Modula-3 compiler, version 1.4:
------------------------------------------------------------------------------

...

#2. Initialization of structured local variables

    Initializing a local variable on its declaration may generate 
    bad C code if the type is ARRAY or RECORD, and the block is not
    the outermost block of a porcedure or module, as in this example:

      BEGIN
        ...
        VAR a := Rect{0, 10, 0, 10};
        BEGIN
          ...
        END;
        ...
      END;

    The symptom is that the C compiler prints the error messages

      "Foo.m3", line 7: no automatic aggregate initialization
      "Foo.m3", line 7: no automatic aggregate initialization
      "Foo.m3", line 7: illegal lhs of assignment operator

    The workaround is to use plain assignment statements to initialize 
    variables, as in item #1.
    
    <Permanent fix? Next release?>

