From: Matthias Braun Date: Fri, 20 Jan 2017 04:23:08 +0000 (+0000) Subject: BitVector: Fix undefined behaviour X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=440f273c40cd5a4dbdaf81910c4f5dfc51435bff;p=llvm BitVector: Fix undefined behaviour Calling reset() on an empty BitVector would call memset with a nullptr argument which is undefined behaviour. This should fix the sanitizer bot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292575 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/ADT/BitVector.h b/include/llvm/ADT/BitVector.h index cf3756d0d9c..cb318199ec7 100644 --- a/include/llvm/ADT/BitVector.h +++ b/include/llvm/ADT/BitVector.h @@ -539,7 +539,8 @@ private: } void init_words(BitWord *B, unsigned NumWords, bool t) { - memset(B, 0 - (int)t, NumWords*sizeof(BitWord)); + if (NumWords > 0) + memset(B, 0 - (int)t, NumWords*sizeof(BitWord)); } template