[LLVMdev] [Compiler-RT] [ARM] Where __aeabi_[il]div0 builtins should be implemented?

Sergey Dmitrouk sdmitrouk at accesssoftek.com
Fri Sep 5 11:10:01 PDT 2014


There are several places in compiler-rt which refer to __aeabi_idiv0.
For example, in lib/builtins/arm/udivsi3.S:

#ifdef __ARM_EABI__
    b __aeabi_idiv0

At the same time there is no definition of it.  It looks as if it was
done intentionally so that third-party could provide custom handler for
division by zero.

IMHO It's not very consistent and looks odd as all other __aebi_*
functions are provided by compiler-rt.

Did I get it all right or maybe I'm missing something?

libgcc provides both __aeabi_idiv0 and __aeabi_ldiv0 as weak symbols,
any reasons not to do the same in compiler-rt?  Or, to put it
differently, why force external implementation of these functions?


More information about the llvm-dev mailing list