home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
aztec-c
/
aztec-c.bug
< prev
next >
Wrap
Internet Message Format
|
1985-01-06
|
2KB
Date: Thursday, 7 June 1984 09:44-MDT
From: "Pearson Pete" at LLL-MFE.ARPA
To: info-micro at BRL.ARPA
Re: Five known problems with Aztec C compiler (long).
Re: Manx Software Systems' Aztec C compiler for Z80, CP/M,
version CZII 1.05c.
The following five problems were reported to Manx long enough ago (1983, I
think) that I'm confident they're never going to acknowledge them, let alone
fix them for me.
- Does not flag an error when a structure is passed as an argument, if
there is another argument. However, the code generated passes a nonsense
value instead of the address of the structure.
Example:
struct confrm { int c_act; }; /* No error messages is */
testsub(s) /* output during the */
char *s; /* compilation of this */
{ struct confrm xyz; /* program, though */
sreadcf(s, xyz); /* bad code is */
} /* generated. */
- Does not report an error when an undefined structure is referenced in the
definition of a second structure. Of course, it can't possibly generate
correct code in this situation!
Example:
struct ss1 { int a;
struct ss2 b; };
sub1() /* No error message */
{ /* appears during the */
struct ss1 c; /* compilation of this */
c.a = 1; /* program. */
}
- Does not properly interpret the logical negation operator ("!") during
the compile-time evaluation of constant expressions.
Example:
#define TRUE (1==1)
#define FALSE (!TRUE)
sub1()
{
sub2(TRUE); /* The compiler evaluates all */
sub3(FALSE); /* three of these arguments */
sub4(!1); /* to 1. */
}
- Programs compiled with the Aztec C compiler and running with the Z80CLIB
runtime library run ridiculously slowly when "stdout" output is redirected
to a file. A change to the Aztec-supplied module "Croot" (which scans the
execute line to perform redirection) can correct this problem.
- Generates incorrect code for the statement
i = (x > 0);
pearson@lll-mfe
Opinions and speculations entirely my own.