diff options
author | Chris Lamb <chris@chris-lamb.co.uk> | 2019-02-11 17:07:26 +0100 |
---|---|---|
committer | Chris Lamb <chris@chris-lamb.co.uk> | 2019-02-11 17:12:27 +0100 |
commit | d0089cf2082bafabbce15ec35057f403ce881d81 (patch) | |
tree | 2ef0c5b03017d5d40cfd68170bbc3efca114abc6 | |
parent | df346bca3938de04dbf9794edc2dbaee64d5fc68 (diff) | |
download | redis-d0089cf2082bafabbce15ec35057f403ce881d81.tar.gz |
Don't assume the __x86_64__ pointer size to avoid warnings on x32.
__x86_64__ is defined on the on the x32 architecture and the conditionals in
debug.c therefore assume the size of (void*) etc:
debug.c: In function 'getMcontextEip':
debug.c:757:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
^
debug.c: In function 'logRegisters':
debug.c:920:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
logStackContent((void**)uc->uc_mcontext.gregs[15]);
We can remedy this by checking for __ILP32__ first. See:
https://wiki.debian.org/ArchitectureSpecificsMemo
... for more info.
-rw-r--r-- | src/debug.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/debug.c b/src/debug.c index a98bc61ad..0c6b5630c 100644 --- a/src/debug.c +++ b/src/debug.c @@ -803,7 +803,7 @@ static void *getMcontextEip(ucontext_t *uc) { #endif #elif defined(__linux__) /* Linux */ - #if defined(__i386__) + #if defined(__i386__) || defined(__ILP32__) return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */ #elif defined(__X86_64__) || defined(__x86_64__) return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */ @@ -915,7 +915,7 @@ void logRegisters(ucontext_t *uc) { /* Linux */ #elif defined(__linux__) /* Linux x86 */ - #if defined(__i386__) + #if defined(__i386__) || defined(__ILP32__) serverLog(LL_WARNING, "\n" "EAX:%08lx EBX:%08lx ECX:%08lx EDX:%08lx\n" |