diff options
author | HÃ¥vard Pettersen <3535158+havardpe@users.noreply.github.com> | 2022-06-23 11:06:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-23 11:06:50 +0200 |
commit | 750669b3fd7414a4cd626a9c655f07032c203ad3 (patch) | |
tree | ffa349aa445398039c18f9130ef397121fcefda0 /searchlib | |
parent | 3006ce5bd9184c6cf3b9324599221c6530472cb9 (diff) | |
parent | aa7b705991ffb236edac79f329229c3598a433ae (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.h | 6 |
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; \ |