Ensure all enum cases are listed in switch statements, or cast away
enum type in places where we don't wish to cover all cases.
Signed-off-by: Daniel P. Berrangé
---
src/qemu/qemu_command.c | 28
src/qemu/qemu_domain.c| 21 +
src/qemu/qemu_driver.c| 27 +++
src/qemu/qemu_hotplug.c | 36 +++-
src/qemu/qemu_migration.c | 11 ++-
src/qemu/qemu_process.c | 2 ++
6 files changed, 103 insertions(+), 22 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 2a75a169c2..33ca1e0960 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2634,7 +2634,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
switch ((virDomainControllerModelSCSI) def->model) {
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI:
-switch ((virDomainDeviceAddressType) address_type) {
+switch (address_type) {
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
virBufferAddLit(, "virtio-scsi-ccw");
break;
@@ -2686,7 +2686,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
break;
case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL:
-switch ((virDomainDeviceAddressType) address_type) {
+switch (address_type) {
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
virBufferAddLit(, "virtio-serial-pci");
break;
@@ -3400,12 +3400,18 @@ qemuBuildNicDevStr(virDomainDefPtr def,
case VIR_DOMAIN_NET_VIRTIO_TX_MODE_TIMER:
virBufferAddLit(, "timer");
break;
+
+case VIR_DOMAIN_NET_VIRTIO_TX_MODE_DEFAULT:
+break;
+
+case VIR_DOMAIN_NET_VIRTIO_TX_MODE_LAST:
default:
/* this should never happen, if it does, we need
* to add another case to this switch.
*/
-virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("unrecognized virtio-net-pci 'tx'
option"));
+virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unexpected NIC tx mode %d"),
+ net->driver.virtio.txmode);
goto error;
}
} else {
@@ -6540,7 +6546,7 @@ qemuBuildGlobalControllerCommandLine(virCommandPtr cmd,
bool cap = false;
bool machine = false;
-switch ((virDomainControllerModelPCI) cont->model) {
+switch (cont->model) {
case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT:
hoststr = "i440FX-pcihost";
cap = virQEMUCapsGet(qemuCaps,
QEMU_CAPS_I440FX_PCI_HOLE64_SIZE);
@@ -6883,7 +6889,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd,
if (cpu_flags && !cpu) {
const char *default_model;
-switch (def->os.arch) {
+switch ((int)def->os.arch) {
case VIR_ARCH_I686:
default_model = "qemu32";
break;
@@ -6929,7 +6935,7 @@ qemuBuildObsoleteAccelArg(virCommandPtr cmd,
bool disableKVM = false;
bool enableKVM = false;
-switch (def->virtType) {
+switch ((int)def->virtType) {
case VIR_DOMAIN_VIRT_QEMU:
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM))
disableKVM = true;
@@ -7903,8 +7909,14 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr
cfg,
case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_CLIENT:
virBufferAddLit(, "agent-mouse=on,");
break;
-default:
+case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_DEFAULT:
break;
+case VIR_DOMAIN_GRAPHICS_SPICE_MOUSE_MODE_LAST:
+default:
+virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unexpected mouse mode %d"),
+ graphics->data.spice.mousemode);
+goto error;
}
}
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e114f5dfcf..7697de69e4 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -2806,6 +2806,27 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def,
addPCIRoot = true;
break;
+case VIR_ARCH_ARMV6L:
+case VIR_ARCH_ARMV7B:
+case VIR_ARCH_CRIS:
+case VIR_ARCH_ITANIUM:
+case VIR_ARCH_LM32:
+case VIR_ARCH_M68K:
+case VIR_ARCH_MICROBLAZE:
+case VIR_ARCH_MICROBLAZEEL:
+case VIR_ARCH_MIPS:
+case VIR_ARCH_MIPSEL:
+case VIR_ARCH_MIPS64:
+case VIR_ARCH_MIPS64EL:
+case VIR_ARCH_OR32:
+case VIR_ARCH_PARISC:
+case VIR_ARCH_PARISC64:
+case VIR_ARCH_PPCLE:
+case VIR_ARCH_UNICORE32:
+case VIR_ARCH_XTENSA:
+case VIR_ARCH_XTENSAEB:
+case VIR_ARCH_NONE:
+case