Skip to content

test: Adjust for clang's removal of __builtin_shuffle

Adam Jackson requested to merge ajax/pixman:clang into master

__builtin_shuffle was removed in clang 5.0.

Build log says: test/utils-prng.c:207:27: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration] randdata.vb = __builtin_shuffle (randdata.vb, bswap_shufflemask); ^ test/utils-prng.c:207:25: error: assigning to 'uint8x16' (vector of 16 'uint8_t' values) from incompatible type 'int' randdata.vb = __builtin_shuffle (randdata.vb, bswap_shufflemask); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated

Link to original discussion: http://lists.llvm.org/pipermail/cfe-dev/2017-August/055140.html

It's possible to build pixman if attached patch is applied. Basically patch adds check for __builtin_shuffle support and in case there is none, falls back to clang-specific __builtin_shufflevector that do the same but have different API.

Bugzilla: https://bugs.gentoo.org/646360 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104886 Tested-by: Philip Chimento philip.chimento@gmail.com Reviewed-by: Matt Turner mattst88@gmail.com Reviewed-by: Adam Jackson ajax@redhat.com

Merge request reports