Module Name: xsrc Committed By: martin Date: Thu Dec 14 17:53:22 UTC 2023
Modified Files: xsrc/external/mit/pixman/dist/pixman [netbsd-10]: pixman.h Log Message: Pull up following revision(s) (requested by rin in ticket #497): xsrc/external/mit/pixman/dist/pixman/pixman.h: revision 1.10 pull across a fix from upstream to fix clang builds. https://gitlab.freedesktop.org/pixman/pixman/-/merge_requests/16/diffs?commit_id=d60b0af5e32fed034bd163d244148947d3ed91a8 Avoid undefined behavior (left-shifting negative value) in pixman_int_to_fixed Reported in https://bugzilla.mozilla.org/show_bug.cgi?id=1580352. Casting the argument to uint32_t should avoid invoking undefined behavior here. We'll still have *implementation-defined* behavior when casting the result back to pixman_fixed_t, but that's better than *undefined*. To generate a diff of this commit: cvs rdiff -u -r1.8.2.1 -r1.8.2.2 \ xsrc/external/mit/pixman/dist/pixman/pixman.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: xsrc/external/mit/pixman/dist/pixman/pixman.h diff -u xsrc/external/mit/pixman/dist/pixman/pixman.h:1.8.2.1 xsrc/external/mit/pixman/dist/pixman/pixman.h:1.8.2.2 --- xsrc/external/mit/pixman/dist/pixman/pixman.h:1.8.2.1 Mon Dec 19 12:05:18 2022 +++ xsrc/external/mit/pixman/dist/pixman/pixman.h Thu Dec 14 17:53:22 2023 @@ -127,7 +127,7 @@ typedef pixman_fixed_16_16_t pixman_fixe #define pixman_fixed_1_minus_e (pixman_fixed_1 - pixman_fixed_e) #define pixman_fixed_minus_1 (pixman_int_to_fixed(-1)) #define pixman_fixed_to_int(f) ((int) ((f) >> 16)) -#define pixman_int_to_fixed(i) ((pixman_fixed_t) ((i) << 16)) +#define pixman_int_to_fixed(i) ((pixman_fixed_t) ((uint32_t) (i) << 16)) #define pixman_fixed_to_double(f) (double) ((f) / (double) pixman_fixed_1) #define pixman_double_to_fixed(d) ((pixman_fixed_t) ((d) * 65536.0)) #define pixman_fixed_frac(f) ((f) & pixman_fixed_1_minus_e)