mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-24 00:18:36 -07:00
Right now, we emit the branches of union types as a boxed pointer,
and it suffices to have a forward declaration of the type. However,
a future patch will swap things to directly use the branch type,
instead of hiding it behind a pointer. For this to work, the
compiler needs the full definition of the type, not just a forward
declaration, prior to the union that is including the branch type.
This patch just adds topological sorting to hoist all types
mentioned in a branch of a union to be fully declared before the
union itself. The sort is always possible, because we do not
allow circular union types that include themselves as a direct
branch (it is, however, still possible to include a branch type
that itself has a pointer to the union, for a type that can
indirectly recursively nest itself - that remains safe, because
that the member of the branch type will remain a pointer, and the
QMP representation of such a type adds another {} for each recurring
layer of the union type).
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1455778109-6278-11-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
||
|---|---|---|
| .. | ||
| kvm | ||
| qemu-guest-agent | ||
| qemugdb | ||
| qmp | ||
| tracetool | ||
| analyse-9p-simpletrace.py | ||
| analyze-migration.py | ||
| check-qerror.sh | ||
| checkpatch.pl | ||
| clean-includes | ||
| cleanup-trace-events.pl | ||
| cocci-macro-file.h | ||
| coverity-model.c | ||
| create_config | ||
| disas-objdump.pl | ||
| dump-guest-memory.py | ||
| extract-vsssdk-headers | ||
| feature_to_c.sh | ||
| get_maintainer.pl | ||
| gtester-cat | ||
| hxtool | ||
| make-release | ||
| make_device_config.sh | ||
| ordereddict.py | ||
| qapi-commands.py | ||
| qapi-event.py | ||
| qapi-introspect.py | ||
| qapi-types.py | ||
| qapi-visit.py | ||
| qapi.py | ||
| qemu-binfmt-conf.sh | ||
| qemu-gdb.py | ||
| qtest.py | ||
| refresh-pxe-roms.sh | ||
| shaderinclude.pl | ||
| signrom.py | ||
| simpletrace.py | ||
| switch-timer-api | ||
| texi2pod.pl | ||
| tracetool.py | ||
| update-linux-headers.sh | ||
| vmstate-static-checker.py | ||