The function prototype for __rt_raise()
is:
void
__rt_raise(int
signal, int
type);
If you re-implement __rt_raise()
, then the library automatically provides
the signal-handling library version of __aeabi_idiv0()
, which calls
__rt_raise()
, then that library version of
__aeabi_idiv0()
is included in the final image.
In that case, when a divide-by-zero error occurs, __aeabi_idiv0()
calls
__rt_raise(SIGFPE, DIVBYZERO)
. Therefore, if you re-implement
__rt_raise()
, you must check (signal == SIGFPE) && (type
== DIVBYZERO)
to determine if division by zero has occurred.