mirror of https://gitee.com/openkylin/libvirt.git
conf: don't use virDomainVirtType in struct field
Use of enum types for struct fields is generally avoided since it causes
warnings if the compiler assumes the enum is unsigned. For example
commit 8e2982b576
Author: Cole Robinson <crobinso@redhat.com>
Date: Tue Jul 24 16:27:54 2018 -0400
conf: Clean up virDomainDefParseCaps
Introduced a line:
if ((def->virtType = virDomainVirtTypeFromString(virttype)) < 0) {
which causes a build failure with CLang
conf/domain_conf.c:19143:65: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare]
as the compiler is free to optimize away the "< 0" check due to the
assumption that the enum type is unsigned and always in range.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
8c496a1d00
commit
9e66ecb5ea
|
@ -15075,7 +15075,7 @@ virDomainVideoDefaultRAM(const virDomainDef *def,
|
|||
int
|
||||
virDomainVideoDefaultType(const virDomainDef *def)
|
||||
{
|
||||
switch (def->virtType) {
|
||||
switch ((virDomainVirtType)def->virtType) {
|
||||
case VIR_DOMAIN_VIRT_TEST:
|
||||
case VIR_DOMAIN_VIRT_XEN:
|
||||
if (def->os.type == VIR_DOMAIN_OSTYPE_XEN ||
|
||||
|
|
|
@ -2386,7 +2386,7 @@ struct _virDomainVirtioOptions {
|
|||
typedef struct _virDomainDef virDomainDef;
|
||||
typedef virDomainDef *virDomainDefPtr;
|
||||
struct _virDomainDef {
|
||||
virDomainVirtType virtType;
|
||||
int virtType; /* enum virDomainVirtType */
|
||||
int id;
|
||||
unsigned char uuid[VIR_UUID_BUFLEN];
|
||||
|
||||
|
|
|
@ -7163,7 +7163,7 @@ qemuBuildMachineCommandLine(virCommandPtr cmd,
|
|||
virCommandAddArg(cmd, "-machine");
|
||||
virBufferAdd(&buf, def->os.machine, -1);
|
||||
|
||||
switch (def->virtType) {
|
||||
switch ((virDomainVirtType)def->virtType) {
|
||||
case VIR_DOMAIN_VIRT_QEMU:
|
||||
virBufferAddLit(&buf, ",accel=tcg");
|
||||
break;
|
||||
|
|
|
@ -7191,6 +7191,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
|
||||
virCapsPtr caps = NULL;
|
||||
bool active = false;
|
||||
virDomainVirtType virtType;
|
||||
|
||||
VIR_DEBUG("Beginning VM attach process");
|
||||
|
||||
|
@ -7342,8 +7343,9 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
goto exit_monitor;
|
||||
if (qemuMonitorGetStatus(priv->mon, &running, &reason) < 0)
|
||||
goto exit_monitor;
|
||||
if (qemuMonitorGetVirtType(priv->mon, &vm->def->virtType) < 0)
|
||||
if (qemuMonitorGetVirtType(priv->mon, &virtType) < 0)
|
||||
goto exit_monitor;
|
||||
vm->def->virtType = virtType;
|
||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
||||
goto error;
|
||||
|
||||
|
|
Loading…
Reference in New Issue