| 49 | } |
| 50 | |
| 51 | SIValue AR_MODULO(SIValue *argv, int argc, void *private_data) { |
| 52 | if(SIValue_IsNull(argv[0]) || SIValue_IsNull(argv[1])) return SI_NullVal(); |
| 53 | |
| 54 | // check for modulo by zero e.g. n % 0 |
| 55 | if((SI_TYPE(argv[0]) & SI_TYPE(argv[1]) & T_INT64) && SI_GET_NUMERIC(argv[1]) == 0) { |
| 56 | Error_DivisionByZero(); |
| 57 | return SI_NullVal(); |
| 58 | } |
| 59 | return SIValue_Modulo(argv[0], argv[1]); |
| 60 | } |
| 61 | |
| 62 | /* TODO All AR_* functions need to emit appropriate failures when provided |
| 63 | * with arguments of invalid types and handle multiple arguments. */ |
nothing calls this directly
no test coverage detected