Autah-cs.157
net.bugs.v7
utzoo!decvax!duke!chico!zeppo!harpo!utah-cs!lepreau
Wed Jan 6 12:25:21 1982
Another C compiler bug
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
-----------------------------------------------------------------
gopher://quux.org/ conversion by John Goerzen <
[email protected]>
of
http://communication.ucsd.edu/A-News/
This Usenet Oldnews Archive
article may be copied and distributed freely, provided:
1. There is no money collected for the text(s) of the articles.
2. The following notice remains appended to each copy:
The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996
Bruce Jones, Henry Spencer, David Wiseman.