explicitly cast 16-bit constants to uint16_t
For some reason GCC 8.1 is now giving me this error when
we use these integer constants:
error: conversion of scalar 'int' to vector 'U16x8'
{aka '__vector(8) short unsigned int'} involves truncation
Casting the constants explicitly to uint16_t seems to quiet it.
Change-Id: I46f7012bf2a0c9e05ac407e81bef398a2b308eb1
Reviewed-on: https://skia-review.googlesource.com/138993
Auto-Submit: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/src/Transform_inl.h b/src/Transform_inl.h
index 0f05b22..6dc2a79 100644
--- a/src/Transform_inl.h
+++ b/src/Transform_inl.h
@@ -600,9 +600,9 @@
U16 rgb;
small_memcpy(&rgb, src + 2*i, 2*N);
- r = CAST(F, rgb & (31<< 0)) * (1.0f / (31<< 0));
- g = CAST(F, rgb & (63<< 5)) * (1.0f / (63<< 5));
- b = CAST(F, rgb & (31<<11)) * (1.0f / (31<<11));
+ r = CAST(F, rgb & (uint16_t)(31<< 0)) * (1.0f / (31<< 0));
+ g = CAST(F, rgb & (uint16_t)(63<< 5)) * (1.0f / (63<< 5));
+ b = CAST(F, rgb & (uint16_t)(31<<11)) * (1.0f / (31<<11));
a = F1;
} break;