From bc2836d41e4de1899e5aa649db849befc9dfa109 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 19 Aug 2018 13:48:32 +0200 Subject: Fix undefined behaviour --- chilbert/FixBitVec.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'chilbert') diff --git a/chilbert/FixBitVec.hpp b/chilbert/FixBitVec.hpp index da26d12..001e4c2 100644 --- a/chilbert/FixBitVec.hpp +++ b/chilbert/FixBitVec.hpp @@ -218,7 +218,7 @@ public: /// Right-rotate by `bits` positions CFixBitVec& rotr(const size_t bits) { - if (bits) { + if (bits > 0 && bits < size()) { assert(bits <= bits_per_rack); m_rack &= FBVN1S(size()); m_rack = (m_rack >> bits) | (m_rack << (size() - bits)); @@ -230,7 +230,7 @@ public: /// Left-rotate by `bits` positions CFixBitVec& rotl(const size_t bits) { - if (bits > 0) { + if (bits > 0 && bits < size()) { assert(bits <= bits_per_rack); m_rack &= FBVN1S(size()); m_rack = (m_rack << bits) | (m_rack >> (size() - bits)); -- cgit v1.2.1