Switching -M parsing from QemuOptions and StringInputVisitor to keyval and QObjectInputVisitor exposed a latent bug in alias properties. Alias targets have a different name than the alias property itself (e.g. a machine's pflash0 might be an alias of a property named 'drive'). When the target's getter or setter invokes the visitor, it will use the "wrong" name compared to what was passed on the command line, and the visitor will not be able to find it.
The solution that is implemented here is for alias getters and setters to wrap the incoming visitor, and forward the sole field that the target is expecting while renaming it appropriately. Patch 1 implements the visitor adapter, while patch 2 applies it in QOM. Paolo Paolo Bonzini (2): qapi: introduce forwarding visitor qom: use correct field name when getting/setting alias properties include/qapi/forward-visitor.h | 27 +++ qapi/meson.build | 1 + qapi/qapi-forward-visitor.c | 307 ++++++++++++++++++++++++++++++ qom/object.c | 9 +- tests/unit/meson.build | 1 + tests/unit/test-forward-visitor.c | 165 ++++++++++++++++ 6 files changed, 508 insertions(+), 2 deletions(-) create mode 100644 include/qapi/forward-visitor.h create mode 100644 qapi/qapi-forward-visitor.c create mode 100644 tests/unit/test-forward-visitor.c -- 2.31.1