------- Comment #11 from wvangulik at xs4all dot nl 2007-11-06 21:01 -------
I just realised I did not tried hard enough to find the smallest case:
===========================================
volatile unsigned char bar;
void foo(void) {
unsigned char x;
for(x=0;x<128; x++) {
//bar = x+1;
bar = x;
}
}
Looks like using the loop counter inside the loop causes the problem. Because
when not using x, but just e.g. calling a function is also gives the smallest
loop.
Looking at the RTL output of test.c.00.expand. it allready is a QI vs HI
there... so it's going wrong some where inside gcc I really have no knowledge
off...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33970