About trapping integer division-by-zero errors with __rt_raise()
By default, integer division by zero returns zero. If you want to intercept division by zero, you can re-implement the C library helper function
The function prototype for
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,
__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.