There seems to be a problem with flexcan_driver.c when FIFO mode is used and an incoming packet is not dealt with in time by (for example) FLEXCAN_DRV_RxFifoBlocking() causing an overrun. The interrupt handler FLEXCAN_IRQHandler() at flexcan_driver.c gets called forever because the interrupt is never cleared from IFLAG1 (c.f. 50.4.2.11).
Basically, FLEXCAN_IRQHandler() finds mb_idx == 6 (FEATURE_CAN_RXFIFO_WARNING) but has no code that deals with that situation. Since (state->mbs[6].state == FLEXCAN_MB_IDLE) the handler just drops down to FLEXCAN_ClearErrIntStatusFlag(base) near the end. But FLEXCAN_ClearMsgBuffIntStatusFlag(base, mb_idx) never gets called to clear the interrupt so it goes on forever.
For now I've hacked FLEXCAN_IRQHandler() to clear the interrupt in this situation, but is there a better approach or will there be a fix?