From: Francisco Jerez Date: Wed, 16 May 2012 13:43:29 +0000 (+0200) Subject: gallium/auxiliary/pipe-loader: Fix usage of anonymous union. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=03e3bc4ba56f1021899a5f773b6ec21893619e3a;p=mesa.git gallium/auxiliary/pipe-loader: Fix usage of anonymous union. Anonymous unions aren't part of the C99 standard. Fixes build on GCC versions older than 4.6. https://bugs.freedesktop.org/show_bug.cgi?id=50001 Reported-by: Michael Lange --- diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader.h b/src/gallium/auxiliary/pipe-loader/pipe_loader.h index e41969458dd..21a609fce7e 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader.h +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader.h @@ -58,7 +58,7 @@ struct pipe_loader_device { int vendor_id; int chip_id; } pci; - }; /**< Discriminated by \a type */ + } u; /**< Discriminated by \a type */ const char *driver_name; const struct pipe_loader_ops *ops; diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index 7a7e9942f3b..518f3da3107 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -78,8 +78,8 @@ find_drm_pci_id(struct pipe_loader_drm_device *ddev) pci_id = udev_device_get_property_value(parent, "PCI_ID"); if (!pci_id || - sscanf(pci_id, "%x:%x", &ddev->base.pci.vendor_id, - &ddev->base.pci.chip_id) != 2) + sscanf(pci_id, "%x:%x", &ddev->base.u.pci.vendor_id, + &ddev->base.u.pci.chip_id) != 2) goto fail; return TRUE; @@ -101,7 +101,7 @@ find_drm_driver_name(struct pipe_loader_drm_device *ddev) int i, j; for (i = 0; driver_map[i].driver; i++) { - if (dev->pci.vendor_id != driver_map[i].vendor_id) + if (dev->u.pci.vendor_id != driver_map[i].vendor_id) continue; if (driver_map[i].num_chips_ids == -1) { @@ -110,7 +110,7 @@ find_drm_driver_name(struct pipe_loader_drm_device *ddev) } for (j = 0; j < driver_map[i].num_chips_ids; j++) { - if (dev->pci.chip_id == driver_map[i].chip_ids[j]) { + if (dev->u.pci.chip_id == driver_map[i].chip_ids[j]) { dev->driver_name = driver_map[i].driver; goto found; } @@ -120,8 +120,8 @@ find_drm_driver_name(struct pipe_loader_drm_device *ddev) return FALSE; found: - debug_printf("driver for %04x:%04x: %s\n", dev->pci.vendor_id, - dev->pci.chip_id, dev->driver_name); + debug_printf("driver for %04x:%04x: %s\n", dev->u.pci.vendor_id, + dev->u.pci.chip_id, dev->driver_name); return TRUE; } diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 1f40010b019..69b1b4a6ac0 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -75,7 +75,7 @@ _cl_device_id::vendor_id() const { case PIPE_LOADER_DEVICE_SOFTWARE: return 0; case PIPE_LOADER_DEVICE_PCI: - return ldev->pci.vendor_id; + return ldev->u.pci.vendor_id; default: assert(0); return 0;