ptgen: work around gcc miscompilation
authorJonas Gorski <jonas.gorski@gmail.com>
Mon, 12 Sep 2016 10:59:21 +0000 (12:59 +0200)
committerJonas Gorski <jonas.gorski@gmail.com>
Mon, 26 Sep 2016 10:23:41 +0000 (12:23 +0200)
Some gcc versions seem to miscompile code using ternary operators,
work around this by just returning the result if exp is 0.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
tools/firmware-utils/src/ptgen.c

index 04f4ec8..8466d35 100644 (file)
@@ -93,7 +93,9 @@ static long to_kbytes(const char *string) {
        }
 
        /* result: number + 1024^(exp) */
-       return result * ((2 << ((10 * exp) - 1)) ?: 1);
+       if (exp == 0)
+               return result;
+       return result * (2 << ((10 * exp) - 1));
 }
 
 /* convert the sector number into a CHS value for the partition table */