acm_random,Rand9Signed: correct cast
authorJames Zern <jzern@google.com>
Fri, 27 May 2016 17:33:56 +0000 (10:33 -0700)
committerJames Zern <jzern@google.com>
Fri, 27 May 2016 17:33:56 +0000 (10:33 -0700)
convert the random value to int16 before subtracting 256 from it; quiets
a ubsan (sanitize=integer) warning

BUG=webm:1225

Change-Id: Ibc2c5a21f30e112bd6c180f7d6a033327c38d0df

test/acm_random.h

index a29ced2..b94b6e1 100644 (file)
@@ -35,7 +35,7 @@ class ACMRandom {
   int16_t Rand9Signed(void) {
     // Use 9 bits: values between 255 (0x0FF) and -256 (0x100).
     const uint32_t value = random_.Generate(512);
-    return static_cast<int16_t>(value - 256);
+    return static_cast<int16_t>(value) - 256;
   }
 
   uint8_t Rand8(void) {