提交 d3ffa0ec 编写于 作者: R Roman Bogorodskiy

nodedev: fix build with clang

Build fails with:

conf/node_device_conf.c:825:62: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare]
    if ((data->drm.type = virNodeDevDRMTypeFromString(type)) < 0) {
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
conf/node_device_conf.c:1801:59: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare]
        if ((type = virNodeDevDevnodeTypeFromString(tmp)) < 0) {
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
2 errors generated.

Fix by using intermediate variable to store the result similarly
to how it's done for other FromString* calls.
上级 78c01869
...@@ -814,7 +814,7 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt, ...@@ -814,7 +814,7 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt,
virNodeDevCapDataPtr data) virNodeDevCapDataPtr data)
{ {
xmlNodePtr orignode; xmlNodePtr orignode;
int ret = -1; int ret = -1, val;
char *type = NULL; char *type = NULL;
orignode = ctxt->node; orignode = ctxt->node;
...@@ -822,11 +822,12 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt, ...@@ -822,11 +822,12 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt,
type = virXPathString("string(./type[1])", ctxt); type = virXPathString("string(./type[1])", ctxt);
if ((data->drm.type = virNodeDevDRMTypeFromString(type)) < 0) { if ((val = virNodeDevDRMTypeFromString(type)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown drm type '%s' for '%s'"), type, def->name); _("unknown drm type '%s' for '%s'"), type, def->name);
goto out; goto out;
} }
data->drm.type = val;
ret = 0; ret = 0;
...@@ -1791,6 +1792,7 @@ virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt, ...@@ -1791,6 +1792,7 @@ virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt,
xmlNodePtr node = nodes[i]; xmlNodePtr node = nodes[i];
char *tmp = virXMLPropString(node, "type"); char *tmp = virXMLPropString(node, "type");
virNodeDevDevnodeType type; virNodeDevDevnodeType type;
int val;
if (!tmp) { if (!tmp) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
...@@ -1798,12 +1800,13 @@ virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt, ...@@ -1798,12 +1800,13 @@ virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt,
goto error; goto error;
} }
if ((type = virNodeDevDevnodeTypeFromString(tmp)) < 0) { if ((val = virNodeDevDevnodeTypeFromString(tmp)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown devnode type '%s'"), tmp); _("unknown devnode type '%s'"), tmp);
VIR_FREE(tmp); VIR_FREE(tmp);
goto error; goto error;
} }
type = val;
switch (type) { switch (type) {
case VIR_NODE_DEV_DEVNODE_DEV: case VIR_NODE_DEV_DEVNODE_DEV:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册