From 159a9df02127cbf6fe640f67954794a99a12a005 Mon Sep 17 00:00:00 2001 From: John Snow Date: Wed, 20 Sep 2017 21:38:21 -0400 Subject: [PATCH] ide: fix enum comparison for gcc 4.7 Apparently GCC gets bent over comparing enum values against zero. Replace the conditional with something less readable. Tested-by: Mark Cave-Ayland Signed-off-by: John Snow Reviewed-by: Stefan Hajnoczi Message-id: 20170921013821.1673-1-jsnow@redhat.com Signed-off-by: Peter Maydell --- hw/ide/ahci.c | 2 +- hw/ide/core.c | 2 +- include/hw/ide/internal.h | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 24c65dfab3..32d1296a64 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -184,7 +184,7 @@ static void ahci_check_irq(AHCIState *s) static void ahci_trigger_irq(AHCIState *s, AHCIDevice *d, enum AHCIPortIRQ irqbit) { - g_assert(irqbit >= 0 && irqbit < 32); + g_assert((unsigned)irqbit < 32); uint32_t irq = 1U << irqbit; uint32_t irqstat = d->port_regs.irq_stat | irq; diff --git a/hw/ide/core.c b/hw/ide/core.c index a19bd9011c..d63eb4a72e 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -68,7 +68,7 @@ const char *IDE_DMA_CMD_lookup[IDE_DMA__COUNT] = { static const char *IDE_DMA_CMD_str(enum ide_dma_cmd enval) { - if (enval >= IDE_DMA__BEGIN && enval < IDE_DMA__COUNT) { + if ((unsigned)enval < IDE_DMA__COUNT) { return IDE_DMA_CMD_lookup[enval]; } return "DMA UNKNOWN CMD"; diff --git a/include/hw/ide/internal.h b/include/hw/ide/internal.h index 180e00e32c..e641012b48 100644 --- a/include/hw/ide/internal.h +++ b/include/hw/ide/internal.h @@ -333,8 +333,7 @@ struct unreported_events { }; enum ide_dma_cmd { - IDE_DMA__BEGIN = 0, - IDE_DMA_READ = IDE_DMA__BEGIN, + IDE_DMA_READ = 0, IDE_DMA_WRITE, IDE_DMA_TRIM, IDE_DMA_ATAPI,