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
|
||||
uint max_num_labels = 0;
|
||||
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
|
||||
} 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);
|
||||
} else
|
||||
#endif
|
||||
} else {
|
||||
{
|
||||
compile_scope(comp, s, MP_PASS_SCOPE);
|
||||
|
||||
// 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;
|
||||
#endif
|
||||
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
|
||||
} else if (s->emit_options == MP_EMIT_OPT_ASM) {
|
||||
if (s->emit_options == MP_EMIT_OPT_ASM) {
|
||||
// inline assembly
|
||||
if (comp->emit_inline_asm == NULL) {
|
||||
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) {
|
||||
compile_scope_inline_asm(comp, s, MP_PASS_EMIT);
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
|
||||
} else {
|
||||
{
|
||||
|
||||
// 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;
|
||||
emit_pre_pop_reg_flexible(emit, &vtype_rhs, ®_rhs, REG_RET, REG_ARG_2);
|
||||
emit_pre_pop_reg(emit, &vtype_lhs, REG_ARG_2);
|
||||
if (0) {
|
||||
// dummy
|
||||
#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);
|
||||
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
||||
} else if (op == MP_BINARY_OP_RSHIFT) {
|
||||
ASM_ASR_REG_REG(emit->as, REG_ARG_2, reg_rhs);
|
||||
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
||||
} else
|
||||
#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);
|
||||
emit_post_push_reg(emit, VTYPE_INT, REG_ARG_2);
|
||||
} 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
|
||||
} else {
|
||||
mp_obj_array_t *o = MP_OBJ_TO_PTR(self_in);
|
||||
if (0) {
|
||||
#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;
|
||||
if (!mp_seq_get_fast_slice_indexes(o->len, index_in, &slice)) {
|
||||
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;
|
||||
size_t sz = mp_binary_get_size('@', o->typecode & TYPECODE_MASK, NULL);
|
||||
assert(sz > 0);
|
||||
if (0) {
|
||||
// dummy
|
||||
#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 = *o;
|
||||
res->memview_offset += slice.start;
|
||||
res->len = slice.stop - slice.start;
|
||||
} else
|
||||
#endif
|
||||
} else {
|
||||
{
|
||||
res = array_new(o->typecode, slice.stop - slice.start);
|
||||
memcpy(res->items, (uint8_t*)o->items + slice.start * sz, (slice.stop - slice.start) * sz);
|
||||
}
|
||||
return MP_OBJ_FROM_PTR(res);
|
||||
} else
|
||||
#endif
|
||||
} else {
|
||||
{
|
||||
size_t index = mp_get_index(o->base.type, o->len, index_in, false);
|
||||
#if MICROPY_PY_BUILTINS_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);
|
||||
} else {
|
||||
mp_obj_type_t *type = mp_obj_get_type(obj);
|
||||
if (0) {
|
||||
#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)
|
||||
return (mp_int_t)mp_obj_float_get(obj);
|
||||
} else
|
||||
#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)
|
||||
size_t len;
|
||||
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);
|
||||
}
|
||||
|
||||
if (0) {
|
||||
#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)) {
|
||||
goto zero_division_error;
|
||||
}
|
||||
mp_float_t flhs = mpz_as_float(zlhs);
|
||||
mp_float_t frhs = mpz_as_float(zrhs);
|
||||
return mp_obj_new_float(flhs / frhs);
|
||||
} else
|
||||
#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();
|
||||
|
||||
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);
|
||||
|
||||
// look for built-in names
|
||||
if (0) {
|
||||
#if MICROPY_CPYTHON_COMPAT
|
||||
} else if (attr == MP_QSTR___class__) {
|
||||
if (attr == MP_QSTR___class__) {
|
||||
// a.__class__ is equivalent to type(a)
|
||||
dest[0] = MP_OBJ_FROM_PTR(type);
|
||||
} else
|
||||
#endif
|
||||
|
||||
} else if (attr == MP_QSTR___next__ && type->iternext != NULL) {
|
||||
if (attr == MP_QSTR___next__ && type->iternext != NULL) {
|
||||
dest[0] = MP_OBJ_FROM_PTR(&mp_builtin_next_obj);
|
||||
dest[1] = obj;
|
||||
|
||||
|
|
Loading…
Reference in New Issue