Hi On Fri, Feb 7, 2020 at 12:03 PM Philippe Mathieu-Daudé <[email protected]> wrote: > > It would be confusing to have multiple default machines. > Abort if this ever occurs. > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > --- > vl.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/vl.c b/vl.c > index 7dcb0879c4..da828188eb 100644 > --- a/vl.c > +++ b/vl.c > @@ -2354,6 +2354,8 @@ static MachineClass *machine_parse(const char *name, > GSList *machines) > GSList *el; > > if (is_help_option(name)) { > + int default_count = 0; > + > printf("Supported machines are:\n"); > machines = g_slist_sort(machines, machine_class_cmp); > for (el = machines; el; el = el->next) { > @@ -2364,6 +2366,11 @@ static MachineClass *machine_parse(const char *name, > GSList *machines) > printf("%-20s %s%s%s\n", mc->name, mc->desc, > mc->is_default ? " (default)" : "", > mc->deprecation_reason ? " (deprecated)" : ""); > + default_count += !!mc->is_default; > + } > + if (default_count > 1) { > + error_printf("Multiple default machines available\n"); > + abort();
looks ok It's a build-time issue? If the user can't do anything about it, you may simply have an assert(default_count <= 1) rather than a human-friendly string, I think. -- Marc-André Lureau
