home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / AZTEC-C / AZTEC-C.BUG < prev    next >
Internet Message Format  |  2000-06-30  |  2KB

  1. Date: Thursday, 7 June 1984  09:44-MDT
  2. From: "Pearson Pete" at LLL-MFE.ARPA
  3. To:   info-micro at BRL.ARPA
  4. Re:   Five known problems with Aztec C compiler (long).
  5.  
  6.     Re: Manx Software Systems' Aztec C compiler for Z80, CP/M,
  7.     version CZII 1.05c.
  8.  
  9. The following five problems were reported to Manx long enough ago (1983, I
  10. think) that I'm confident they're never going to acknowledge them, let alone
  11. fix them for me.
  12.  
  13. - Does not flag an error when a structure is passed as an argument, if
  14. there is another argument. However, the code generated passes a nonsense
  15. value instead of the address of the structure.
  16.   Example:
  17.     struct confrm {    int c_act;    };    /* No error messages is    */
  18.     testsub(s)                /* output during the    */
  19.     char *s;                /* compilation of this    */
  20.     {    struct confrm xyz;        /* program, though    */
  21.         sreadcf(s, xyz);        /* bad code is        */
  22.     }                    /* generated.         */
  23.  
  24. - Does not report an error when an undefined structure is referenced in the
  25. definition of a second structure. Of course, it can't possibly generate
  26. correct code in this situation!
  27.   Example:
  28.     struct ss1 {    int a;
  29.             struct ss2 b;    };
  30.     sub1()                    /* No error message    */
  31.     {                    /* appears during the    */
  32.         struct ss1 c;            /* compilation of this    */
  33.         c.a = 1;                /* program.        */
  34.     }
  35.  
  36. - Does not properly interpret the logical negation operator ("!") during
  37. the compile-time evaluation of constant expressions.
  38.   Example:
  39.     #define    TRUE    (1==1)
  40.     #define    FALSE    (!TRUE)
  41.     sub1()
  42.     {
  43.         sub2(TRUE);    /* The compiler evaluates all    */
  44.         sub3(FALSE);    /* three of these arguments    */
  45.         sub4(!1);    /* to 1.            */
  46.     }
  47.  
  48. - Programs compiled with the Aztec C compiler and running with the Z80CLIB
  49. runtime library run ridiculously slowly when "stdout" output is redirected
  50. to a file. A change to the Aztec-supplied module "Croot" (which scans the
  51. execute line to perform redirection) can correct this problem.
  52.  
  53. - Generates incorrect code for the statement
  54.     i = (x > 0);
  55.  
  56. pearson@lll-mfe
  57. Opinions and speculations entirely my own.
  58.