From d148e322a9b2c247fc70ea3c7cec935c76c797f9 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 2 Apr 2015 01:30:10 +0000 Subject: [PATCH] Fix a bug indicated by -fsanitize=shift-exponent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233881 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/LoopUnrollRuntime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Transforms/Utils/LoopUnrollRuntime.cpp b/lib/Transforms/Utils/LoopUnrollRuntime.cpp index 381d8fc33ea..46570a11a4f 100644 --- a/lib/Transforms/Utils/LoopUnrollRuntime.cpp +++ b/lib/Transforms/Utils/LoopUnrollRuntime.cpp @@ -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(Count) > (1ULL << BEWidth)) + if (BEWidth < 64 && static_cast(Count) > (1ULL << BEWidth)) return false; // If this loop is nested, then the loop unroller changes the code in