Article View: comp.sys.amiga.tech
Article #3085Manx 5.0a bugs
From: Paul John Falstad
Date: Tue, 27 Mar 1990 00:08
Date: Tue, 27 Mar 1990 00:08
118 lines
7510 bytes
7510 bytes
[I downloaded this off the Manx BBS. Hope it helps.]
Following is a quick list I put together of known Amiga 5.0a bugs and common
problems. If your 'favorite' bug is not listed, fear not - it probably
just was reported too late to make it on this list or we're still looking into
it. However, you may want to just send me a brief reminder just to make sure
that it didn't get lost in the shuffle.
KNOWN AMIGA 5.0a BUGS & 3.6a INCOMPATABILITIES
----------------------------------------------
Description
------------------------------------------------------------------------------
Internal compiler error 'Attempt to release item already free'.
Workaround: simplify expression.
------------------------------------------------------------------------------
The stderr stream is fully buffered when redirected to a file. This can
cause you to lose information if your program terminates abnormally and
you needed to see the stderr messages (i.e., your program crashes).
------------------------------------------------------------------------------
The d0 register is extraneously loaded for code like:
int i,j;
for (i = j = 0; whatever; i++, j++);
Not really a bug per se, but it makes for un-optimal code.
------------------------------------------------------------------------------
The BeginIO function trashes the A6 register.
------------------------------------------------------------------------------
'ls' dates are 8 years off.
------------------------------------------------------------------------------
The code 'char name[][] = {"asdf","asdf"};' should generate an
error (only allowed one open array index), but doesn't.
------------------------------------------------------------------------------
The code 'char name[][][] = {"asdf","asdf"};' crashes the compiler.
------------------------------------------------------------------------------
The compiler's -qa option generates bad prototypes for function
arguments w/ type modifiers such as const, volatile, etc.
------------------------------------------------------------------------------
Bad code is generated when local arrays are initialized to an
odd number of bytes (e.g., char foo[] = "ab"; as the last local
variable).
------------------------------------------------------------------------------
The macro 'FUNCDEF' is missing from the assembly headers. The definition for
it is:
COUNT SET -30
FUNCDEF MACRO
_LVO\1 EQU COUNT
COUNT SET COUNT-6
ENDM
------------------------------------------------------------------------------
Functions.h has incorrect prototypes, mostly in the Dos functions.
------------------------------------------------------------------------------
Compiler generates a 'cmp.s' instruction (which is illegal) for
passing of a float constant of 0 to a function.
Workaround: have the function prototype/definition use a double instead of a
float.
------------------------------------------------------------------------------
Compiler crashes upon encountering 'error 12: illegal pointer
reference'. This can be done by trying to de-refernce a variable
of type 'char'.
------------------------------------------------------------------------------
SDB occasionally gurus unexepectantly. Not confirmed - if you have a
reproducible example of this, please get it to us ASAP.
------------------------------------------------------------------------------
SDB can take a long time to trace over library functions (30-60
seconds). Also not confirmed, but there seems to be a significant # of people
reporting this.
------------------------------------------------------------------------------
SDB acts strangely when the -sn or -so options are used. Not really a bug,
but a consequence of design. Obvious fix is don't use those options
when using SDB.
------------------------------------------------------------------------------
The compiler option -qa generates bad prototypes for structure-
typedef's where the structure does not have a tag name (e.g.,
typedef struct { int i; char c; } foo;). The compiler always uses the struct
name instead of the typedef, which gets you into trouble in cases like this.
------------------------------------------------------------------------------
The compiler option -qa does not give any diagnostic messages if
the '.pro' file is not created (like if there's a disk error).
------------------------------------------------------------------------------
See Bix Message # 1981 for alternate __main() startup code. This hasn't been
fully evaluated by us at Manx, but may be useful if you're having problems.
Sorry, I haven't uploaded it to the BBS yet.
------------------------------------------------------------------------------
The 'setdat' utility doesn't work.
------------------------------------------------------------------------------
The 'obd' utility gives sporadic 'out of memory' error messages.
------------------------------------------------------------------------------
The cia resource functions are missing from the library and from
functions.h.
------------------------------------------------------------------------------
The -qa compiler option generates incompatible prototypes for
functions defined using K&R style.
Workaround: change 'char' and 'float' in prototypes to 'int' and 'double'.
------------------------------------------------------------------------------
The -pp option (chars unsigned by default) is not implimented in 5.0a.
------------------------------------------------------------------------------
Enum function arguments generate 'argument type mismatch' errors
on prototyped functions when used w/ -wa. Works fine if -wa is not used.
------------------------------------------------------------------------------
'Expression too complex' internal compiler error message can occur on some
complex code.
Workaround: simplify expression/code.
------------------------------------------------------------------------------
'Attempted to free reg not allocated!' error message. See above.
------------------------------------------------------------------------------
'scanf ("%f",&a_double);' does not work w/ -f8. Not really a bug, but a 3.6a
incompatability. Should say 'scanf ("%lf",&a_double);' instead.
------------------------------------------------------------------------------
The -qf option (QuickFix) does not give an error if it can't exec
the editor, or if the 'CCEDIT' environment variable doesn't exist.
------------------------------------------------------------------------------
The compiler generates incorrect code for small code/small data for array
accesses like "c = lookup[c-'A'];". Works OK in large data model.
------------------------------------------------------------------------------
The register allocator (-sr option) does not automatically allocate floating
point variables to floating point registers if the -f8 option is used.
------------------------------------------------------------------------------
Technical Details
Message-ID:
<14862@phoenix.Princeton.EDU>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!jarthur!brutus.cs.uiuc.edu!rpi!uupsi!njin!princeton!phoenix!pfalstadShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!jarthur!brutus.cs.uiuc.edu!rpi!uupsi!njin!princeton!phoenix!pfalstad From: pfalstad@phoenix.Princeton.EDU (Paul John Falstad) Newsgroups: comp.sys.amiga.tech Subject: Manx 5.0a bugs Message-ID: <14862@phoenix.Princeton.EDU> Date: 27 Mar 90 00:08:00 GMT Reply-To: pfalstad@phoenix.Princeton.EDU (Paul John Falstad) Organization: Princeton University, NJ Lines: 118