summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHÃ¥vard Pettersen <3535158+havardpe@users.noreply.github.com>2022-06-23 11:06:50 +0200
committerGitHub <noreply@github.com>2022-06-23 11:06:50 +0200
commit750669b3fd7414a4cd626a9c655f07032c203ad3 (patch)
treeffa349aa445398039c18f9130ef397121fcefda0 /searchlib
parent3006ce5bd9184c6cf3b9324599221c6530472cb9 (diff)
parentaa7b705991ffb236edac79f329229c3598a433ae (diff)
Merge pull request #23208 from vespa-engine/toregge/avoid-undefined-shift
Avoid undefined shift.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/bitcompression/compression.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/bitcompression/compression.h b/searchlib/src/vespa/searchlib/bitcompression/compression.h
index 441fac3aef1..74231638213 100644
--- a/searchlib/src/vespa/searchlib/bitcompression/compression.h
+++ b/searchlib/src/vespa/searchlib/bitcompression/compression.h
@@ -504,7 +504,11 @@ public:
if (length >= cacheFree) { \
cacheInt |= (data << (64 - cacheFree)); \
*bufI++ = EC::bswap(cacheInt); \
- data >>= cacheFree; \
+ if (__builtin_expect(cacheFree != 64, true)) { \
+ data >>= cacheFree; \
+ } else { \
+ data = 0; \
+ } \
length -= cacheFree; \
cacheInt = 0; \
cacheFree = 64; \