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