mdev: suppress aliasing warning
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 8 Dec 2018 14:41:17 +0000 (15:41 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 8 Dec 2018 14:41:17 +0000 (15:41 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
util-linux/mdev.c

index 4b4eeafba558354e4b5139d5c0b6490931bde1e4..5ad09e09afbaa60b834ecb1839f875b967a5702f 100644 (file)
@@ -808,6 +808,16 @@ static void make_device(char *device_name, char *path, int operation)
        } /* for (;;) */
 }
 
+static ssize_t readlink2(char *buf, size_t bufsize)
+{
+       // Grr... gcc 8.1.1:
+       // "passing argument 2 to restrict-qualified parameter aliases with argument 1"
+       // dance around that...
+       char *obuf FIX_ALIASING;
+       obuf = buf;
+       return readlink(buf, obuf, bufsize);
+}
+
 /* File callback for /sys/ traversal.
  * We act only on "/sys/.../dev" (pseudo)file
  */
@@ -831,7 +841,7 @@ static int FAST_FUNC fileAction(const char *fileName,
        /* Read ".../subsystem" symlink in the same directory where ".../dev" is */
        strcpy(subsys, path);
        strcpy(subsys + len, "/subsystem");
-       res = readlink(subsys, subsys, sizeof(subsys)-1);
+       res = readlink2(subsys, sizeof(subsys)-1);
        if (res > 0) {
                subsys[res] = '\0';
                free(G.subsystem);