diff options
author | chenyang8094 <chenyang8094@users.noreply.github.com> | 2022-04-04 23:38:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-04 18:38:18 +0300 |
commit | cb625844bfe8fd8129a34bc2b7499e5735eb07ce (patch) | |
tree | ad9a6f82af43ca7b810af14ca9ef43a2263c0893 | |
parent | 8500ca4ae8f87fdae3be984146eb2eccd832e56f (diff) | |
download | redis-cb625844bfe8fd8129a34bc2b7499e5735eb07ce.tar.gz |
Fix null pointer subtraction warning (#10498)
The warning:
```
pqsort.c:106:7: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
loop: SWAPINIT(a, es);
^~~~~~~~~~~~~~~
pqsort.c:65:47: note: expanded from macro 'SWAPINIT'
#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)NULL) % sizeof(long) || \
```
Clang version:
```
Apple clang version 13.1.6 (clang-1316.0.21.2)
Target: x86_64-apple-darwin21.3.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
```
-rw-r--r-- | src/pqsort.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pqsort.c b/src/pqsort.c index 508c09f92..fab54e026 100644 --- a/src/pqsort.c +++ b/src/pqsort.c @@ -38,7 +38,7 @@ */ #include <sys/types.h> - +#include <stdint.h> #include <errno.h> #include <stdlib.h> @@ -62,7 +62,7 @@ static inline void swapfunc (char *, char *, size_t, int); } while (--i > 0); \ } -#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \ +#define SWAPINIT(a, es) swaptype = (uintptr_t)a % sizeof(long) || \ es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1; static inline void |