[comp.sys.mac.programmer] MPW C v3.0 bugs

minshall@kinetics.UUCP (Greg Minshall) (06/07/89)

I am curious about known bugs in the release level C compiler for MPW 3.0.

We recently discovered the following bug, and now I'm a bit leary of what else
might be lurking in the woodshed.  (By the way, in our 10,000 lines of code
or so, the following construct [bitfields and the &= operator] occured only
once.)

If anyone could post a somewhat authoritive list... Otherwise, I'll be glad
to accept contributions and then post a list of received bugs in the
next few weeks.

Greg Minshall			1-415-947-0998
minshall@kinetics.com		Kinetics, a division of Excelan, Inc.

main()
{
	struct foo {
		short a;
		short b:3, c:13;
	} this, that, *p = &this;
	
	p->b = 1;
	
	p->b &= ~1;
	
	printf("p->b = %x\n", p->b);
	
	p->b = 1;
	
	p->b = p->b & ~1;
	
	printf("Now, p->b = %x\n", p->b);
}
#if 0

/* I run the above, and I get...

# 4:24:30 PM ----- Build of testbitand.
# 4:24:30 PM ----- Analyzing dependencies.
# 4:24:33 PM ----- Executing build commands.
    C testbitand.c
### Warning 254 Local variable "that" not used within the body of the function :  main
#--------------------------------------------------------------------------------------------------------------------------------
    File "testbitand.c"; Line 19
#--------------------------------------------------------------------------------------------------------------------------------
    Link -w -c 'MPS ' -t MPST testbitand.c.o ...whatever
# 4:24:49 PM ----- Done.
	testbitand 
p->b = 1
Now, p->b = 0

*/

#endif