Fatal bugs with (double *)'s in 5.0 PCC2 for m68k

gm at lmi-angel.UUCP gm at lmi-angel.UUCP
Fri Jul 18 12:21:27 AEST 1986


The following C code fragments cause fatal compiler errors.
The compiler is PCC2 as distributed with System 5.0 for the
68K from Motorola.  The comments summarize what works and
what doesn't. (including the compiler error messages)

foo()
{
	register double	*rdp;
	double		*dp;
	double		d;

	/* these are OK */

	d = *dp++;

	*rdp++;
	d = *rdp;

	/*      vv  compiler error: Illegal byte address (ZB) */
	d = *rdp++;
}

bar()
{
	double		*dp;
	double		d;

	/* these are OK */

	d = dp[0];
	d = dp[1];

	dp[0] = d;
	dp[1] = d;


	/*    vvv  compiler error: allocation fails, op STAR */
	d = dp[0] = 0;

	/*    vvv  compiler error: cfix trouble */
	d = dp[1] = 0;
}

I imagine that these have been found and fixed before and that
they probably work in 5.2 and/or 5.3.  Unfortunately, my company
is only peripherally involved as a UNIX vendor and doesn't want
to spend any money to upgrade.  So... I would greatly appreciate
any patches available that fix this or any other nasty bugs in
5.0.  Does anyone have a standard kit of patches for 5.0? (Doug Gwyn?)

BTW, I found a couple more fatal bugs that result from too-small
table sizes.  I'm pretty irritated that PCC's tables are allocated
statically.  Is this still the case with newer C compilers from AT&T?

Thanks Mucho,
-- 
-- Greg McGary        {decvax!cca,harvard,mit-eddie}!lmi-angel!gm
--
``Make something of yourself! ... Try a casserole!''



More information about the Net.bugs.usg mailing list