py: remove "if (0)" and "if (false)" branches.
Prior to this commit, building the unix port with `DEBUG=1` and `-finstrument-functions` the compilation would fail with an error like "control reaches end of non-void function". This change fixes this by removing the problematic "if (0)" branches. Not all branches affect compilation, but they are all removed for consistency.
This commit is contained in:
parent
32ba679924
commit
089c9b71d1
15
py/compile.c
15
py/compile.c
@ -3457,12 +3457,12 @@ mp_raw_code_t *mp_compile_to_raw_code(mp_parse_tree_t *parse_tree, qstr source_f
|
|||||||
#endif
|
#endif
|
||||||
uint max_num_labels = 0;
|
uint max_num_labels = 0;
|
||||||
for (scope_t *s = comp->scope_head; s != NULL && comp->compile_error == MP_OBJ_NULL; s = s->next) {
|
for (scope_t *s = comp->scope_head; s != NULL && comp->compile_error == MP_OBJ_NULL; s = s->next) {
|
||||||
if (false) {
|
|
||||||
#if MICROPY_EMIT_INLINE_ASM
|
#if MICROPY_EMIT_INLINE_ASM
|
||||||
} else if (s->emit_options == MP_EMIT_OPT_ASM) {
|
if (s->emit_options == MP_EMIT_OPT_ASM) {
|
||||||
compile_scope_inline_asm(comp, s, MP_PASS_SCOPE);
|
compile_scope_inline_asm(comp, s, MP_PASS_SCOPE);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else {
|
{
|
||||||
compile_scope(comp, s, MP_PASS_SCOPE);
|
compile_scope(comp, s, MP_PASS_SCOPE);
|
||||||
|
|
||||||
// Check if any implicitly declared variables should be closed over
|
// Check if any implicitly declared variables should be closed over
|
||||||
@ -3493,11 +3493,8 @@ mp_raw_code_t *mp_compile_to_raw_code(mp_parse_tree_t *parse_tree, qstr source_f
|
|||||||
emit_t *emit_native = NULL;
|
emit_t *emit_native = NULL;
|
||||||
#endif
|
#endif
|
||||||
for (scope_t *s = comp->scope_head; s != NULL && comp->compile_error == MP_OBJ_NULL; s = s->next) {
|
for (scope_t *s = comp->scope_head; s != NULL && comp->compile_error == MP_OBJ_NULL; s = s->next) {
|
||||||
if (false) {
|
|
||||||
// dummy
|
|
||||||
|
|
||||||
#if MICROPY_EMIT_INLINE_ASM
|
#if MICROPY_EMIT_INLINE_ASM
|
||||||
} else if (s->emit_options == MP_EMIT_OPT_ASM) {
|
if (s->emit_options == MP_EMIT_OPT_ASM) {
|
||||||
// inline assembly
|
// inline assembly
|
||||||
if (comp->emit_inline_asm == NULL) {
|
if (comp->emit_inline_asm == NULL) {
|
||||||
comp->emit_inline_asm = ASM_EMITTER(new)(max_num_labels);
|
comp->emit_inline_asm = ASM_EMITTER(new)(max_num_labels);
|
||||||
@ -3519,9 +3516,9 @@ mp_raw_code_t *mp_compile_to_raw_code(mp_parse_tree_t *parse_tree, qstr source_f
|
|||||||
if (comp->compile_error == MP_OBJ_NULL) {
|
if (comp->compile_error == MP_OBJ_NULL) {
|
||||||
compile_scope_inline_asm(comp, s, MP_PASS_EMIT);
|
compile_scope_inline_asm(comp, s, MP_PASS_EMIT);
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
} else {
|
|
||||||
|
|
||||||
// choose the emit type
|
// choose the emit type
|
||||||
|
|
||||||
|
@ -2227,17 +2227,16 @@ STATIC void emit_native_binary_op(emit_t *emit, mp_binary_op_t op) {
|
|||||||
int reg_rhs = REG_ARG_3;
|
int reg_rhs = REG_ARG_3;
|
||||||
emit_pre_pop_reg_flexible(emit, &vtype_rhs, ®_rhs, REG_RET, REG_ARG_2);
|
emit_pre_pop_reg_flexible(emit, &vtype_rhs, ®_rhs, REG_RET, REG_ARG_2);
|
||||||
emit_pre_pop_reg(emit, &vtype_lhs, REG_ARG_2);
|
emit_pre_pop_reg(emit, &vtype_lhs, REG_ARG_2);
|
||||||
if (0) {
|
|
||||||
// dummy
|
|
||||||
#if !(N_X64 || N_X86)
|
#if !(N_X64 || N_X86)
|
||||||
} else if (op == MP_BINARY_OP_LSHIFT) {
|
if (op == MP_BINARY_OP_LSHIFT) {
|
||||||
ASM_LSL_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
ASM_LSL_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
||||||
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
||||||
} else if (op == MP_BINARY_OP_RSHIFT) {
|
} else if (op == MP_BINARY_OP_RSHIFT) {
|
||||||
ASM_ASR_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
ASM_ASR_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
||||||
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else if (op == MP_BINARY_OP_OR) {
|
if (op == MP_BINARY_OP_OR) {
|
||||||
ASM_OR_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
ASM_OR_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
||||||
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
||||||
} else if (op == MP_BINARY_OP_XOR) {
|
} else if (op == MP_BINARY_OP_XOR) {
|
||||||
|
@ -375,9 +375,8 @@ STATIC mp_obj_t array_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value
|
|||||||
return MP_OBJ_NULL; // op not supported
|
return MP_OBJ_NULL; // op not supported
|
||||||
} else {
|
} else {
|
||||||
mp_obj_array_t *o = MP_OBJ_TO_PTR(self_in);
|
mp_obj_array_t *o = MP_OBJ_TO_PTR(self_in);
|
||||||
if (0) {
|
|
||||||
#if MICROPY_PY_BUILTINS_SLICE
|
#if MICROPY_PY_BUILTINS_SLICE
|
||||||
} else if (mp_obj_is_type(index_in, &mp_type_slice)) {
|
if (mp_obj_is_type(index_in, &mp_type_slice)) {
|
||||||
mp_bound_slice_t slice;
|
mp_bound_slice_t slice;
|
||||||
if (!mp_seq_get_fast_slice_indexes(o->len, index_in, &slice)) {
|
if (!mp_seq_get_fast_slice_indexes(o->len, index_in, &slice)) {
|
||||||
mp_raise_NotImplementedError("only slices with step=1 (aka None) are supported");
|
mp_raise_NotImplementedError("only slices with step=1 (aka None) are supported");
|
||||||
@ -456,22 +455,22 @@ STATIC mp_obj_t array_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value
|
|||||||
mp_obj_array_t *res;
|
mp_obj_array_t *res;
|
||||||
size_t sz = mp_binary_get_size('@', o->typecode & TYPECODE_MASK, NULL);
|
size_t sz = mp_binary_get_size('@', o->typecode & TYPECODE_MASK, NULL);
|
||||||
assert(sz > 0);
|
assert(sz > 0);
|
||||||
if (0) {
|
|
||||||
// dummy
|
|
||||||
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
||||||
} else if (o->base.type == &mp_type_memoryview) {
|
if (o->base.type == &mp_type_memoryview) {
|
||||||
res = m_new_obj(mp_obj_array_t);
|
res = m_new_obj(mp_obj_array_t);
|
||||||
*res = *o;
|
*res = *o;
|
||||||
res->memview_offset += slice.start;
|
res->memview_offset += slice.start;
|
||||||
res->len = slice.stop - slice.start;
|
res->len = slice.stop - slice.start;
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else {
|
{
|
||||||
res = array_new(o->typecode, slice.stop - slice.start);
|
res = array_new(o->typecode, slice.stop - slice.start);
|
||||||
memcpy(res->items, (uint8_t*)o->items + slice.start * sz, (slice.stop - slice.start) * sz);
|
memcpy(res->items, (uint8_t*)o->items + slice.start * sz, (slice.stop - slice.start) * sz);
|
||||||
}
|
}
|
||||||
return MP_OBJ_FROM_PTR(res);
|
return MP_OBJ_FROM_PTR(res);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else {
|
{
|
||||||
size_t index = mp_get_index(o->base.type, o->len, index_in, false);
|
size_t index = mp_get_index(o->base.type, o->len, index_in, false);
|
||||||
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
#if MICROPY_PY_BUILTINS_MEMORYVIEW
|
||||||
if (o->base.type == &mp_type_memoryview) {
|
if (o->base.type == &mp_type_memoryview) {
|
||||||
|
@ -458,13 +458,13 @@ STATIC mp_uint_t convert_obj_for_inline_asm(mp_obj_t obj) {
|
|||||||
return (mp_uint_t)mp_obj_str_get_data(obj, &l);
|
return (mp_uint_t)mp_obj_str_get_data(obj, &l);
|
||||||
} else {
|
} else {
|
||||||
mp_obj_type_t *type = mp_obj_get_type(obj);
|
mp_obj_type_t *type = mp_obj_get_type(obj);
|
||||||
if (0) {
|
|
||||||
#if MICROPY_PY_BUILTINS_FLOAT
|
#if MICROPY_PY_BUILTINS_FLOAT
|
||||||
} else if (type == &mp_type_float) {
|
if (type == &mp_type_float) {
|
||||||
// convert float to int (could also pass in float registers)
|
// convert float to int (could also pass in float registers)
|
||||||
return (mp_int_t)mp_obj_float_get(obj);
|
return (mp_int_t)mp_obj_float_get(obj);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
} else if (type == &mp_type_tuple || type == &mp_type_list) {
|
if (type == &mp_type_tuple || type == &mp_type_list) {
|
||||||
// pointer to start of tuple (could pass length, but then could use len(x) for that)
|
// pointer to start of tuple (could pass length, but then could use len(x) for that)
|
||||||
size_t len;
|
size_t len;
|
||||||
mp_obj_t *items;
|
mp_obj_t *items;
|
||||||
|
@ -194,18 +194,18 @@ mp_obj_t mp_obj_int_binary_op(mp_binary_op_t op, mp_obj_t lhs_in, mp_obj_t rhs_i
|
|||||||
return mp_obj_int_binary_op_extra_cases(op, lhs_in, rhs_in);
|
return mp_obj_int_binary_op_extra_cases(op, lhs_in, rhs_in);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0) {
|
|
||||||
#if MICROPY_PY_BUILTINS_FLOAT
|
#if MICROPY_PY_BUILTINS_FLOAT
|
||||||
} else if (op == MP_BINARY_OP_TRUE_DIVIDE || op == MP_BINARY_OP_INPLACE_TRUE_DIVIDE) {
|
if (op == MP_BINARY_OP_TRUE_DIVIDE || op == MP_BINARY_OP_INPLACE_TRUE_DIVIDE) {
|
||||||
if (mpz_is_zero(zrhs)) {
|
if (mpz_is_zero(zrhs)) {
|
||||||
goto zero_division_error;
|
goto zero_division_error;
|
||||||
}
|
}
|
||||||
mp_float_t flhs = mpz_as_float(zlhs);
|
mp_float_t flhs = mpz_as_float(zlhs);
|
||||||
mp_float_t frhs = mpz_as_float(zrhs);
|
mp_float_t frhs = mpz_as_float(zrhs);
|
||||||
return mp_obj_new_float(flhs / frhs);
|
return mp_obj_new_float(flhs / frhs);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else if (op >= MP_BINARY_OP_INPLACE_OR && op < MP_BINARY_OP_CONTAINS) {
|
if (op >= MP_BINARY_OP_INPLACE_OR && op < MP_BINARY_OP_CONTAINS) {
|
||||||
mp_obj_int_t *res = mp_obj_int_new_mpz();
|
mp_obj_int_t *res = mp_obj_int_new_mpz();
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
|
@ -1049,14 +1049,13 @@ void mp_load_method_maybe(mp_obj_t obj, qstr attr, mp_obj_t *dest) {
|
|||||||
mp_obj_type_t *type = mp_obj_get_type(obj);
|
mp_obj_type_t *type = mp_obj_get_type(obj);
|
||||||
|
|
||||||
// look for built-in names
|
// look for built-in names
|
||||||
if (0) {
|
|
||||||
#if MICROPY_CPYTHON_COMPAT
|
#if MICROPY_CPYTHON_COMPAT
|
||||||
} else if (attr == MP_QSTR___class__) {
|
if (attr == MP_QSTR___class__) {
|
||||||
// a.__class__ is equivalent to type(a)
|
// a.__class__ is equivalent to type(a)
|
||||||
dest[0] = MP_OBJ_FROM_PTR(type);
|
dest[0] = MP_OBJ_FROM_PTR(type);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
if (attr == MP_QSTR___next__ && type->iternext != NULL) {
|
||||||
} else if (attr == MP_QSTR___next__ && type->iternext != NULL) {
|
|
||||||
dest[0] = MP_OBJ_FROM_PTR(&mp_builtin_next_obj);
|
dest[0] = MP_OBJ_FROM_PTR(&mp_builtin_next_obj);
|
||||||
dest[1] = obj;
|
dest[1] = obj;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user