Skip to contentSkip to conversation

ide: fix enum comparison for gcc 4.7

PATCH In review John Snow 3 participants 3 messages Sep 21, 2017 – Sep 22, 2017

lore
Share & tools
lore

John Snow

author
#0 lore raw

PATCH v2 1/1 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.

---

v2: Second verse, same as the first.

---
 hw/ide/ahci.c             | 2 +-
 hw/ide/core.c             | 2 +-
 include/hw/ide/internal.h | 3 +--
 3 files changed, 3 insertions(+), 4 deletions(-)
hw/ide/ahci.c +1 -1
index 24c65df..32d1296 100644
@@ -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;
 
hw/ide/core.c +1 -1
index a19bd90..d63eb4a 100644
@@ -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";
include/hw/ide/internal.h +1 -2
index 180e00e..e641012 100644
@@ -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,
Signature · 1 line
2.9.5
Reviewed-by on v2 1/1
#1 lore raw
Quoted 8 lines · John Snow

Apparently GCC gets bent over comparing enum values against zero. Replace the conditional with something less readable.

---

Quoted 7 lines

v2: Second verse, same as the first.

---
 hw/ide/ahci.c             | 2 +-
 hw/ide/core.c             | 2 +-
 include/hw/ide/internal.h | 3 +--
 3 files changed, 3 insertions(+), 4 deletions(-)
#2 lore raw
Quoted 17 lines · Stefan Hajnoczi
Quoted 8 lines · John Snow

Apparently GCC gets bent over comparing enum values against zero. Replace the conditional with something less readable.

---

Quoted 7 lines

v2: Second verse, same as the first.

---
 hw/ide/ahci.c             | 2 +-
 hw/ide/core.c             | 2 +-
 include/hw/ide/internal.h | 3 +--
 3 files changed, 3 insertions(+), 4 deletions(-)
Quoted 1 line

Thanks, applied to master as a buildfix.

-- PMM