From: MagerValp (MagerValp_at_cling.gu.se)
Date: 1999-07-09 19:09:09
I think something's broken in cc65 -- x[y>>n] doesn't seem to work the way it should. Try the following: #include <stdio.h> #include <stdlib.h> int main (void) { unsigned char c[4]; unsigned int y; c[0] = 0; c[1] = 1; c[2] = 2; c[3] = 3; printf("c[0]=%d, c[1]=%d, c[2]=%d, c[3]=%d\n", c[0], c[1], c[2], c[3]); for (y=0; y<8; y++) { printf("y=%d; c[y & 3]=%d\n", y, c[y & 3]); } for (y=0; y<8; y++) { printf("y=%d; y>>1=%d; c[(y>>1)]=%d\n", y, (y>>1), c[(y>>1)]); } } With gcc the last loop prints: y=0; y>>1=0; c[(y>>1)]=0 y=1; y>>1=0; c[(y>>1)]=0 y=2; y>>1=1; c[(y>>1)]=1 y=3; y>>1=1; c[(y>>1)]=1 y=4; y>>1=2; c[(y>>1)]=2 y=5; y>>1=2; c[(y>>1)]=2 y=6; y>>1=3; c[(y>>1)]=3 y=7; y>>1=3; c[(y>>1)]=3 but with cc65 i get: y=0; y>>1=0; c[(y>>1)]=0 y=1; y>>1=0; c[(y>>1)]=1 y=2; y>>1=1; c[(y>>1)]=1 y=3; y>>1=1; c[(y>>1)]=2 y=4; y>>1=2; c[(y>>1)]=2 y=5; y>>1=2; c[(y>>1)]=3 y=6; y>>1=3; c[(y>>1)]=3 y=7; y>>1=3; c[(y>>1)]=0 (see http://www.cling.gu.se/~cl3polof/bug.gif for the full cc65 output) Am I missing something here or is cc65 broken? % cc65 -V cc65 V2.2.0 cc65: No input files % gcc --version 2.8.0 % uname -a SunOS frege.cling.gu.se 5.5.1 Generic sun4u sparc SUNW,Ultra-1. cc65 was built from source. -- ___ . . . . . + . . o _|___|_ + . + . + . . Per Olofsson, konstnär o-o . . . o + MagerValp_at_cling.gu.se - + + . http://www.cling.gu.se/~cl3polof/ ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2001-12-14 22:05:44 CET