Fixed an error with the 32 bit time.
authorTimothy Manning <codedraftsman@gmail.com>
Thu, 5 Aug 2021 03:27:00 +0000 (15:27 +1200)
committerTimothy Manning <codedraftsman@gmail.com>
Thu, 5 Aug 2021 03:27:00 +0000 (15:27 +1200)
The compiler was throwing an "right shift count >= width of type"
error when yaffs was compiled using 32 bit time.

This was fixed by replacing an if statement with a #define.

Signed-off-by: Timothy Manning <codedraftsman@gmail.com>
yaffs_guts.c

index 41ceb5b526caca8d3a644ca1ae01eeeb55b2b52a..b83fa6388a22f7861cc00d89001678d927568584 100644 (file)
@@ -4902,10 +4902,15 @@ static void yaffs_oh_time_load(u32 *yst_time, u32 *win_time, YTIME_T timeval)
        u32 lower;
 
        lower = timeval & 0xffffffff;
-       if (sizeof(YTIME_T) > sizeof(u32))
-               upper = (timeval >> 32) & 0xffffffff;
-       else
-               upper = 0;
+       /* we have to use #defines here insted of an if statement
+       otherwise the compiler throws an error saying that
+       right shift count >= width of type when we are using 32 bit time.
+       */
+       #ifdef CONFIG_YAFFS_USE_32_BIT_TIME_T
+                upper = 0;
+        #else
+                upper = (timeval >> 32) & 0xffffffff;
+        #endif
 
        *yst_time = lower;
        win_time[0] = lower;