tsan: fix shift overflow

3<<30 fits into 32-bit unsigned, but does not fit into int.
Found by ubsan.

llvm-svn: 243241
This commit is contained in:
Dmitry Vyukov 2015-07-26 07:45:26 +00:00
parent 4376ddb88e
commit d161fcba17
1 changed files with 3 additions and 3 deletions

View File

@ -86,9 +86,9 @@ class MetaMap {
void OnThreadIdle(ThreadState *thr);
private:
static const u32 kFlagMask = 3 << 30;
static const u32 kFlagBlock = 1 << 30;
static const u32 kFlagSync = 2 << 30;
static const u32 kFlagMask = 3u << 30;
static const u32 kFlagBlock = 1u << 30;
static const u32 kFlagSync = 2u << 30;
typedef DenseSlabAlloc<MBlock, 1<<16, 1<<12> BlockAlloc;
typedef DenseSlabAlloc<SyncVar, 1<<16, 1<<10> SyncAlloc;
BlockAlloc block_alloc_;