Мне было лень писать всю эту хрень, и я сделал макро, чтоб не текло и не капало :)) Это для ХС16, а для ХС8 сообразишь сам:
// Macro allows writing just ISR(PeripheralName) instead of a full syntax - ISR(U2RX), ISR(AD1), ISR(DMA2) etc.
#define ISR(x) void __attribute__((interrupt, no_auto_psv)) _##x##Interrupt(void)
Enjoy :))