Another C compiler bug
utzoo!decvax!duke!chico!zeppo!harpo!utah-cs!lepreau
utzoo!decvax!duke!chico!zeppo!harpo!utah-cs!lepreau
Wed Jan 6 12:25:21 AEST 1982
While I'm at it, here's another apparent bug in the v7 Ritchie compiler
which Spencer Thomas found. We have no fix, does anyone?
------------------
From: thomas
Subj: C compiler bug
Try this:
{
char a[2][2];
register int i, j, k;
a[i][j] %= k;
}
and look at the assembly code:
~a=177766
~i=r4
~j=r3
~k=r2
mov r4,r1 // figure out index into array
asl r1
add r5,r1
add r3,r1
add $-12,r1
mov r1,-(sp) // push array address
mov r2,-(sp) // push divisor
movb *2(sp),r1 // get a[i][j]
sxt r0 // prepare for divide
div (sp)+,r0 // do divide
mov r1,*(sp)+ // and save remainder (into a word, not a byte!!)
=S
More information about the Net.bugs.v7
mailing list