linux Disabling PCI support implies that a void* pointer will be dereferenced

When PCI is disabled VORTEX_PCI(vp) will always return NULL, which is of type void*. VORTEX_PCI(vp) is defined by a conditional expression, but the compiler can infer that the pointer returned is always of this type, and emits a warning because it is being dereferenced later on.
Bug fixed by commit d530db0db90
Type VoidPointerDereference
Config "VORTEX && !PCI" (2nd degree)
Fix-in code
Location drivers/net/
#ifdef CONFIG_VORTEX
#include <stdlib.h>

int some_int = 1;


#ifdef CONFIG_PCI
#define DEVICE_PCI(dev) ((dev % 2) ? &some_int : NULL)
#else
#define DEVICE_PCI(dev) NULL
#endif

#define VORTEX_PCI(vp) ((vp) ? DEVICE_PCI(vp) : NULL)

void acpi_set_WOL(int vp)
{
	if (1) {
		if (*VORTEX_PCI(vp) < 0) // ERROR
			return;
	}
}
#endif

int main()
{
#ifdef CONFIG_VORTEX
  acpi_set_WOL(1); 
#endif
  return 0;
}

diff --git a/simple/d530db0.c b/simple/d530db0.c
--- a/simple/d530db0.c
+++ b/simple/d530db0.c
@@ -11,7 +11,7 @@
 #define DEVICE_PCI(dev) NULL
 #endif
 
-#define VORTEX_PCI(vp) ((vp) ? DEVICE_PCI(vp) : NULL)
+#define VORTEX_PCI(vp) ((int) (vp) ? DEVICE_PCI(vp) : NULL)
 
 void acpi_set_WOL(int vp)
 {
#ifdef CONFIG_VORTEX
#include <stdlib.h>

int some_int = 1;


#ifdef CONFIG_PCI
#define DEVICE_PCI(dev) ((dev % 2) ? &some_int : NULL)
#else
#define DEVICE_PCI(dev) NULL
#endif

#define VORTEX_PCI(vp) ((vp) ? DEVICE_PCI(vp) : NULL)

int main()
{
#ifdef CONFIG_VORTEX
//  acpi_set_WOL(1); 
  if (1) {
    if (*VORTEX_PCI(1) < 0) // ERROR
      return;
  }
#endif
  return 0;
}