I think I have stumbled across a minor bug in avr-gcc. I tried to set a constant equal to [ 2^0 ], which, in my math book, should come out as the value 1. It doesn't. I haven't been able to determine exactly what value is produced since I can't simply "print" at the moment.
const int led = 1 ; // Result is [ 1 ] as expected.
const int led = 2^0 ; // Result is not [ 1 ] !
> avr-gcc -dumpversion
on Win XP SP3
avr-gcc -g -Wall -Wno-unused-variable -Os -mmcu=atmega16 -DF_CPU=1000000UL -c -o LEDBTN.o LEDBTN.c
Attached is the source file.