Without hardware information its impossible to answer. On most processors the isr is entered because the interrupt flag has been set so there is no requirement to check it again. If you clear the flag at the start of the isr then you wont miss an interrupt that occurs during the isr, the hardware will just rerun the isr. You would miss then if there were 2 or more occuring. Correctly prioritising will solve most problems. Later in this thread you mention software interrupts, you cannot get this sort of problem with those as their code generated.