[libvirt] [PATCH v2 02/42] util: handle missing switch enum cases

Daniel P. Berrangé berrange at redhat.com
Thu Feb 15 16:43:07 UTC 2018


Ensure all enum cases are listed in switch statements.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/util/virconf.c               | 13 ++++++++++++-
 src/util/virfirewall.c           |  7 +++++--
 src/util/virlog.c                | 10 +++++++++-
 src/util/virnetdevvportprofile.c | 11 ++++++++++-
 4 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/src/util/virconf.c b/src/util/virconf.c
index a82a509ca3..af806dd735 100644
--- a/src/util/virconf.c
+++ b/src/util/virconf.c
@@ -296,7 +296,10 @@ virConfSaveValue(virBufferPtr buf, virConfValuePtr val)
             virBufferAddLit(buf, " ]");
             break;
         }
+        case VIR_CONF_LAST:
         default:
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("Unexpected conf value type %d"), val->type);
             return -1;
     }
     return 0;
@@ -986,13 +989,21 @@ int virConfGetValueStringList(virConfPtr conf,
         }
         ATTRIBUTE_FALLTHROUGH;
 
-    default:
+    case VIR_CONF_LLONG:
+    case VIR_CONF_ULLONG:
+    case VIR_CONF_NONE:
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        compatString ?
                        _("%s: expected a string or string list for '%s' parameter") :
                        _("%s: expected a string list for '%s' parameter"),
                        conf->filename, setting);
         return -1;
+
+    case VIR_CONF_LAST:
+    default:
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Unexpected value type %d"), cval->type);
+        return -1;
     }
 
     return 1;
diff --git a/src/util/virfirewall.c b/src/util/virfirewall.c
index ff1bb83073..e7da482640 100644
--- a/src/util/virfirewall.c
+++ b/src/util/virfirewall.c
@@ -827,9 +827,12 @@ virFirewallApplyRule(virFirewallPtr firewall,
         if (virFirewallApplyRuleFirewallD(rule, ignoreErrors, &output) < 0)
             return -1;
         break;
+
+    case VIR_FIREWALL_BACKEND_AUTOMATIC:
+    case VIR_FIREWALL_BACKEND_LAST:
     default:
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Unexpected firewall engine backend"));
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Unexpected firewall engine backend %d"), currentBackend);
         return -1;
     }
 
diff --git a/src/util/virlog.c b/src/util/virlog.c
index 4f66cc5e5c..ecbee71cfb 100644
--- a/src/util/virlog.c
+++ b/src/util/virlog.c
@@ -1206,10 +1206,18 @@ virLogGetOutputs(void)
                                   virLogDestinationTypeToString(dest),
                                   virLogOutputs[i]->name);
                 break;
-            default:
+            case VIR_LOG_TO_STDERR:
+            case VIR_LOG_TO_JOURNALD:
                 virBufferAsprintf(&outputbuf, "%d:%s",
                                   virLogOutputs[i]->priority,
                                   virLogDestinationTypeToString(dest));
+                break;
+            case VIR_LOG_TO_OUTPUT_LAST:
+            default:
+                virReportError(VIR_ERR_INTERNAL_ERROR,
+                               _("Unexpected log output type %d"), dest);
+                virLogUnlock();
+                return NULL;
         }
     }
     virLogUnlock();
diff --git a/src/util/virnetdevvportprofile.c b/src/util/virnetdevvportprofile.c
index db495a7549..4c0a64e439 100644
--- a/src/util/virnetdevvportprofile.c
+++ b/src/util/virnetdevvportprofile.c
@@ -1071,6 +1071,9 @@ virNetDevVPortProfileOp8021Qbg(const char *ifname,
     case VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE:
         op = PORT_REQUEST_PREASSOCIATE;
         break;
+    case VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE_RR:
+        op = PORT_REQUEST_PREASSOCIATE_RR;
+        break;
     case VIR_NETDEV_VPORT_PROFILE_LINK_OP_ASSOCIATE:
         op = PORT_REQUEST_ASSOCIATE;
         break;
@@ -1191,10 +1194,16 @@ virNetDevVPortProfileOp8021Qbh(const char *ifname,
                                            false);
         break;
 
-    default:
+    case VIR_NETDEV_VPORT_PROFILE_LINK_OP_PREASSOCIATE:
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("operation type %d not supported"), virtPortOp);
         rc = -1;
+        break;
+    default:
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("Unexpected operation type %d"), virtPortOp);
+        rc = -1;
+        break;
     }
 
  cleanup:
-- 
2.14.3




More information about the libvir-list mailing list