diff options
| author | Kaelyn Takata <rikka@google.com> | 2015-11-25 00:03:29 +0000 |
|---|---|---|
| committer | Kaelyn Takata <rikka@google.com> | 2015-11-25 00:03:29 +0000 |
| commit | d0955312d9f241be6bffb2952a5e6b6f48052301 (patch) | |
| tree | 62059241a90a304d114d57b5ce5145b50cd41912 /llvm/lib | |
| parent | 55fa418a90cea66ec32e96824ba2dbd21e588894 (diff) | |
| download | bcm5719-llvm-d0955312d9f241be6bffb2952a5e6b6f48052301.tar.gz bcm5719-llvm-d0955312d9f241be6bffb2952a5e6b6f48052301.zip | |
Fix an asan error where NumElements > 32 for at least one case in
test/CodeGen/X86/avg.ll.
llvm-svn: 254043
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 0bf5ee68d13..26e69507617 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -6244,7 +6244,7 @@ X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const { unsigned NumZero = 0; unsigned NumNonZero = 0; - unsigned NonZeros = 0; + uint64_t NonZeros = 0; bool IsAllConstants = true; SmallSet<SDValue, 8> Values; for (unsigned i = 0; i < NumElems; ++i) { @@ -6258,7 +6258,8 @@ X86TargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG) const { if (X86::isZeroNode(Elt)) NumZero++; else { - NonZeros |= (1 << i); + assert(i < sizeof(NonZeros) * 8); // Make sure the shift is within range. + NonZeros |= ((uint64_t)1 << i); NumNonZero++; } } |

