picture.c:351:37: error: implicit conversion from 'unsigned int' to 'CARD16' 
(aka 'unsigned short') changes value from 4294967295 to 65535
      [-Werror,-Wconstant-conversion]
            pFormats[f].direct.alphaMask = Mask(PICT_FORMAT_A(format));
                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
...
fatal error: too many errors emitted, stopping now [-ferror-limit=]

Signed-off-by: Jeremy Huddleston <[email protected]>
Suggested-by: Jamey Sharp <[email protected]>

---
 render/picture.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/render/picture.c b/render/picture.c
index e7e1f2b..f0fc5c8 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -158,7 +158,9 @@ addFormat (FormatInitRec    formats[256],
     return ++nformat;
 }
 
-#define Mask(n)        ((n) == 32 ? 0xffffffff : ((1 << (n))-1))
+/* Returns a CARD16 mask, n wide. */
+/*@ requires 0 <= n <= 16 but does not enforce it */
+#define Mask(n) ((1 << (n)) - 1)
 
 PictFormatPtr
 PictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp)
-- 
1.7.4.1


_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to