From 220acc3fc8bd703fbec64f3964637202194def76 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sat, 8 Nov 2014 10:53:49 +0000 Subject: [PATCH] Fixes for clang -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error Fixes 'Illegal instruction' when SWIG executes and compiled with above compiler options Fixes #263 --- Source/DOH/string.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/DOH/string.c b/Source/DOH/string.c index 3e02e05d1..cfc6c70f6 100644 --- a/Source/DOH/string.c +++ b/Source/DOH/string.c @@ -181,10 +181,10 @@ static int String_hash(DOH *so) { return s->hashkey; } else { register char *c = s->str; - register int len = s->len > 50 ? 50 : s->len; - register int h = 0; - register int mlen = len >> 2; - register int i = mlen; + register unsigned int len = s->len > 50 ? 50 : s->len; + register unsigned int h = 0; + register unsigned int mlen = len >> 2; + register unsigned int i = mlen; for (; i; --i) { h = (h << 5) + *(c++); h = (h << 5) + *(c++); @@ -195,7 +195,7 @@ static int String_hash(DOH *so) { h = (h << 5) + *(c++); } h &= 0x7fffffff; - s->hashkey = h; + s->hashkey = (int)h; return h; } }