gallium/auxiliary/pipe-loader: Fix usage of anonymous union.
authorFrancisco Jerez <currojerez@riseup.net>
Wed, 16 May 2012 13:43:29 +0000 (15:43 +0200)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 16 May 2012 16:51:35 +0000 (18:51 +0200)
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 <michaell@gmx.org>
src/gallium/auxiliary/pipe-loader/pipe_loader.h
src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
src/gallium/state_trackers/clover/core/device.cpp

index e41969458dd3e723d789982e162a5c1159902ada..21a609fce7ebfe57c1ded63dfed367f13e4c7835 100644 (file)
@@ -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;
index 7a7e9942f3bd0943125b3ffbd0b42ca05336b35a..518f3da3107a9de0009763cf6c66d4be26a013b6 100644 (file)
@@ -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;
 }
 
index 1f40010b019a4ace383b89c32ee1e242137e1bbd..69b1b4a6ac01d16a3ee3edc9c313d116dedc0302 100644 (file)
@@ -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;