Fix a bug indicated by -fsanitize=shift-exponent.
authorAlexey Samsonov <vonosmas@gmail.com>
Thu, 2 Apr 2015 01:30:10 +0000 (01:30 +0000)
committerAlexey Samsonov <vonosmas@gmail.com>
Thu, 2 Apr 2015 01:30:10 +0000 (01:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233881 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/LoopUnrollRuntime.cpp

index 381d8fc33eac441cd84206604656a594eb6ee1d4..46570a11a4f30b8e00bc9e0c2b2ea87baa0ae969 100644 (file)
@@ -320,7 +320,7 @@ bool llvm::UnrollRuntimeLoopProlog(Loop *L, unsigned Count, LoopInfo *LI,
   // This constraint lets us deal with an overflowing trip count easily; see the
   // comment on ModVal below.  This check is equivalent to `Log2(Count) <
   // BEWidth`.
-  if (static_cast<uint64_t>(Count) > (1ULL << BEWidth))
+  if (BEWidth < 64 && static_cast<uint64_t>(Count) > (1ULL << BEWidth))
     return false;
 
   // If this loop is nested, then the loop unroller changes the code in