py/objfloat: Raise ZeroDivisionError for 0 to negative power.
diff --git a/py/objfloat.c b/py/objfloat.c
index 73d07fe..9292490 100644
--- a/py/objfloat.c
+++ b/py/objfloat.c
@@ -228,7 +228,12 @@
}
break;
case MP_BINARY_OP_POWER:
- case MP_BINARY_OP_INPLACE_POWER: lhs_val = MICROPY_FLOAT_C_FUN(pow)(lhs_val, rhs_val); break;
+ case MP_BINARY_OP_INPLACE_POWER:
+ if (lhs_val == 0 && rhs_val < 0) {
+ goto zero_division_error;
+ }
+ lhs_val = MICROPY_FLOAT_C_FUN(pow)(lhs_val, rhs_val);
+ break;
case MP_BINARY_OP_DIVMOD: {
if (rhs_val == 0) {
goto zero_division_error;