Skip to content

mpy-cross: Assertion failed for -march=debug and Viper code #17467

@agatti

Description

@agatti

Port, board and/or hardware

mpy-cross on Linux/amd64

MicroPython version

MicroPython v1.26.0-preview.196.g5f058e986 on 2025-06-09; linux [GCC 15.1.1] version

Reproduction

  1. Build mpy-cross without any special flags or parameters (as in, make -C mpy-cross clean && make -C mpy-cross
  2. Run ./mpy-cross/build/mpy-cross -march=debug ./tests/micropython/viper_ptr16_store.py

Expected behaviour

mpy-cross should not crash on exit but terminate gracefully.

Observed behaviour

mpy-cross will crash with:

mpy-cross: ../py/asmbase.c:56: mp_asm_base_start_pass: Assertion `as->code_base != NULL' failed.

after dumping native meta-opcodes to STDOUT.

Additional Information

This only happens for Viper code. For example, dumping tests/micropython/native_closure.py or tests/micropython/meminfo.py doesn't trigger the assertion.

I haven't really looked into this, but it seems like Viper code would still trigger an emit pass even for the debug arch? This could probably be fixed if N_DEBUG would be propagated into py/asmbase.c too but it doesn't seem to be the case.

Code of Conduct

Yes, I agree

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugpy-coreRelates to py/ directory in source

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions