From: groepaz (groepaz_at_gmx.net)
Date: 2002-07-18 16:05:03
whoppa.... like always, when there's just a tiny bit left to fix some
compiler bug pops up :=DDD
look at this, problem is a case value of "0x8000" (min_int) used in a
switch statement where the switch is done by a signed int. (mmmh and
its weird to me that 0x8000 and -32768 are threated differently ...
sth with signed vs unsigned conversion looks fux0red here.....0xffff
vs -1 shouldnt make a difference at this point either eh?)
#include <stdio.h>
int main(void) {
int i;
switch(i) {
case -1: // works
// case 0xffff: // 'range error' (-1)
// max int
// case 0x7fff: // works
case 32767: // works
// case 32768: // 'range error' (correct for that one!)
// min int
case -32768: // 'warning. constant is long'
// case 0x8000: // 'range error'
// case -32769: // 'range error' (correct for that one!)
printf("testing\n");
break;
}
/* return OK */
return(0);
}
--
Best regards,
groepaz mailto:groepaz_at_gmx.net
----------------------------------------------------------------------
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 : 2002-07-18 16:06:39 CEST