Merge pull request 'fix vendored libdeflate _rotr* macros vs mingw stdlib.h' (#1) from fix/mingw-rotr64-stdlib-collision into master
Reviewed-on: #1
This commit is contained in:
commit
e70cc9212b
1 changed files with 12 additions and 0 deletions
|
|
@ -203,7 +203,19 @@ typedef char __v64qi __attribute__((__vector_size__(64)));
|
|||
/*
|
||||
* Setup rotation macros similar to MSVS intrinsics.
|
||||
* These should recognized by compilers.
|
||||
*
|
||||
* mingw's <stdlib.h> declares _rotl/_rotr/_rotl64/_rotr64 as functions, so
|
||||
* a translation unit that pulls compiler_gcc.h in first (libdeflate's own
|
||||
* utils.c does exactly that) and then includes <stdlib.h> would see the
|
||||
* function declarations mangled by these macros. Force <stdlib.h> in here
|
||||
* on mingw so the declarations get parsed before the macro names get
|
||||
* shadowed; the header guard makes the later #include a no-op and call
|
||||
* sites still resolve to the macros below.
|
||||
*/
|
||||
#if defined(__MINGW32__) || defined(__MINGW64__)
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifndef _rotr16
|
||||
#define _rotr16(x,n) ((x>>n) + (x<<(16-n)))
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue