Sorry about that! I took another shot at it in r293572.
vedant > On Jan 30, 2017, at 3:37 AM, Alex Lorenz via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > Author: arphaman > Date: Mon Jan 30 05:37:18 2017 > New Revision: 293475 > > URL: http://llvm.org/viewvc/llvm-project?rev=293475&view=rev > Log: > Revert "r293343 - [ubsan] Sanity-check shift amounts before truncation > (fixes PR27271)" > > After r293343 clang fails to compile itself with -fsanitize=undefined ( > http://lab.llvm.org:8080/green/job/clang-stage2-cmake-RgSan_build/). > > rdar://30259929 > > Removed: > cfe/trunk/test/CodeGen/ubsan-shift.c > Modified: > cfe/trunk/lib/CodeGen/CGExprScalar.cpp > > Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=293475&r1=293474&r2=293475&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Mon Jan 30 05:37:18 2017 > @@ -2751,8 +2751,8 @@ Value *ScalarExprEmitter::EmitShl(const > isa<llvm::IntegerType>(Ops.LHS->getType())) { > CodeGenFunction::SanitizerScope SanScope(&CGF); > SmallVector<std::pair<Value *, SanitizerMask>, 2> Checks; > - llvm::Value *WidthMinusOne = GetWidthMinusOneValue(Ops.LHS, Ops.RHS); > - llvm::Value *ValidExponent = Builder.CreateICmpULE(Ops.RHS, > WidthMinusOne); > + llvm::Value *WidthMinusOne = GetWidthMinusOneValue(Ops.LHS, RHS); > + llvm::Value *ValidExponent = Builder.CreateICmpULE(RHS, WidthMinusOne); > > if (SanitizeExponent) { > Checks.push_back( > > Removed: cfe/trunk/test/CodeGen/ubsan-shift.c > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/ubsan-shift.c?rev=293474&view=auto > ============================================================================== > --- cfe/trunk/test/CodeGen/ubsan-shift.c (original) > +++ cfe/trunk/test/CodeGen/ubsan-shift.c (removed) > @@ -1,29 +0,0 @@ > -// RUN: %clang_cc1 -triple=x86_64-apple-darwin -fsanitize=shift-exponent > -emit-llvm %s -o - | FileCheck %s > - > -// CHECK-LABEL: define i32 @f1 > -int f1(int c, int shamt) { > -// CHECK: icmp ule i32 %{{.*}}, 31, !nosanitize > -// CHECK: icmp ule i32 %{{.*}}, 31, !nosanitize > - return 1 << (c << shamt); > -} > - > -// CHECK-LABEL: define i32 @f2 > -int f2(long c, int shamt) { > -// CHECK: icmp ule i32 %{{.*}}, 63, !nosanitize > -// CHECK: icmp ule i64 %{{.*}}, 31, !nosanitize > - return 1 << (c << shamt); > -} > - > -// CHECK-LABEL: define i32 @f3 > -unsigned f3(unsigned c, int shamt) { > -// CHECK: icmp ule i32 %{{.*}}, 31, !nosanitize > -// CHECK: icmp ule i32 %{{.*}}, 31, !nosanitize > - return 1U << (c << shamt); > -} > - > -// CHECK-LABEL: define i32 @f4 > -unsigned f4(unsigned long c, int shamt) { > -// CHECK: icmp ule i32 %{{.*}}, 63, !nosanitize > -// CHECK: icmp ule i64 %{{.*}}, 31, !nosanitize > - return 1U << (c << shamt); > -} > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits