🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #3085

Manx 5.0a bugs

#3085
From: Paul John Falstad
Date: Tue, 27 Mar 1990 00:08
118 lines
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!pfalstad

Show 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