Remove warnings related to type-punning
[openafs.git] / src / util / uuid.c
index 4fc3ad0..7439311 100644 (file)
@@ -247,8 +247,11 @@ afs_uuid_create(afsUUID * uuid)
     afs_int32 got_no_time = 0, code;
 
     if (!uuid_init_done) {
-       uuid_time_t t;
-       u_short *seedp, seed = 0;
+       union {
+           uuid_time_t t;
+           u_short seed[4];
+       } uuid_time;
+       u_short seed = 0;
        rand_m = 971;;
        rand_ia = 11113;
        rand_ib = 104322;
@@ -264,12 +267,11 @@ afs_uuid_create(afsUUID * uuid)
         * independent.  Then for good measure to ensure a unique seed when there
         * are multiple processes creating UUID's on a system, we add in the PID.
         */
-       uuid__get_os_time(&t);
-       seedp = (u_short *) (&t);
-       seed ^= *seedp++;
-       seed ^= *seedp++;
-       seed ^= *seedp++;
-       seed ^= *seedp++;
+       uuid__get_os_time(&uuid_time.t);
+       seed ^= uuid_time.seed[0];
+       seed ^= uuid_time.seed[1];
+       seed ^= uuid_time.seed[2];
+       seed ^= uuid_time.seed[3];
 #if defined(KERNEL) && defined(AFS_XBSD_ENV)
        rand_irand += seed + (afs_uint32) curproc->p_pid;
 #else