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 <mark.cave-ayland@ilande.co.uk>
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20170921013821.1673-1-jsnow@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
master
John Snow 2017-09-20 21:38:21 -04:00 committed by Peter Maydell
parent a664607440
commit 159a9df021
3 changed files with 3 additions and 4 deletions

View File

@ -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;

View File

@ -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";

View File

@ -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,