On Tue, Oct 13, 2015 at 11:55 PM, Michel Dänzer <michel@xxxxxxxxxxx> wrote: > From: Michel Dänzer <michel.daenzer@xxxxxxx> > > Arithmetic on void pointers is a GCC extension. > > CC libdrm_la-xf86drm.lo > ../xf86drm.c: In function 'drmProcessPciDevice': > ../xf86drm.c:3017:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith] > addr += sizeof(drmDevice); > ^ > ../xf86drm.c:3020:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith] > addr += DRM_NODE_MAX * sizeof(void *); > ^ > ../xf86drm.c:3023:14: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith] > addr += max_node_str; > ^ > ../xf86drm.c:3035:14: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith] > addr += sizeof(drmPciBusInfo); > ^ > > Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > xf86drm.c | 19 ++++++++++--------- > 1 file changed, 10 insertions(+), 9 deletions(-) > > diff --git a/xf86drm.c b/xf86drm.c > index 27313cc..a29db42 100644 > --- a/xf86drm.c > +++ b/xf86drm.c > @@ -3001,21 +3001,22 @@ static int drmProcessPciDevice(drmDevicePtr *device, const char *d_name, > { > const int max_node_str = drmGetMaxNodeName(); > int ret, i; > - void *addr; > + char *addr; > > - addr = *device = calloc(1, sizeof(drmDevice) + > - (DRM_NODE_MAX * > - (sizeof(void *) + max_node_str)) + > - sizeof(drmPciBusInfo) + > - sizeof(drmPciDeviceInfo)); > + *device = calloc(1, sizeof(drmDevice) + > + (DRM_NODE_MAX * (sizeof(void *) + max_node_str)) + > + sizeof(drmPciBusInfo) + > + sizeof(drmPciDeviceInfo)); > if (!*device) > return -ENOMEM; > > + addr = (char*)*device; > + > (*device)->bustype = DRM_BUS_PCI; > (*device)->available_nodes = 1 << node_type; > > addr += sizeof(drmDevice); > - (*device)->nodes = addr; > + (*device)->nodes = (char**)addr; > > addr += DRM_NODE_MAX * sizeof(void *); > for (i = 0; i < DRM_NODE_MAX; i++) { > @@ -3024,7 +3025,7 @@ static int drmProcessPciDevice(drmDevicePtr *device, const char *d_name, > } > memcpy((*device)->nodes[node_type], node, max_node_str); > > - (*device)->businfo.pci = addr; > + (*device)->businfo.pci = (drmPciBusInfoPtr)addr; > > ret = drmParsePciBusInfo(maj, min, (*device)->businfo.pci); > if (ret) > @@ -3033,7 +3034,7 @@ static int drmProcessPciDevice(drmDevicePtr *device, const char *d_name, > // Fetch the device info if the user has requested it > if (fetch_deviceinfo) { > addr += sizeof(drmPciBusInfo); > - (*device)->deviceinfo.pci = addr; > + (*device)->deviceinfo.pci = (drmPciDeviceInfoPtr)addr; > > ret = drmParsePciDeviceInfo(d_name, (*device)->deviceinfo.pci); > if (ret) > -- > 2.6.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel