Here is what the preprocessor produced for this code:
$ avr-gcc -mmcu=atmega128 -Wall -O2 -g -E test.c
...
void __vector_18 (void) __attribute__ ((signal,used,
externally_visible)) ; void __vector_18 (void)
{
unsigned char status = (*(volatile uint8_t *)((0x0B) + 0x20));
unsigned char data = (*(volatile uint8_t *)((0x0C) + 0x20));
volatile static int slot = (-2);
if (status & 0x10) {
if (slot == (-2)) {
slot++;
} else {
goto search;
}
} else {
if ((slot < (-1)) || (++slot > (512))) {
goto search;
}
...