avr-gcc (GCC) 5.3.0 on command avr-gcc -Os -save-temps -v -mmcu=attiny44 -c main.c -o main.o produce error: GNU assembler version 2.25.1 (avr) using BFD version (GNU Binutils) 2.25.1 main.s: Assembler messages: main.s:15: Error: operand out of range: 32 main.c content: int main (void) { *(volatile unsigned char *)(0x40) &= 0b11111110; } NOTE: no error if 0x40 substituted with 0x3f or 0x41 NOTE: no error if optimisation is not used ( -O0)
Appears to be already fixed. Assembler generated CBI / SBI with address of 0x20. cbi 0x20,0 ; 9 *cbi [length = 1] ret ; 15 return [length = 1] which violates CBI. *** This bug has been marked as a duplicate of bug 67839 ***