r293475 - Revert "r293343 - [ubsan] Sanity-check shift amounts before truncation

Vedant Kumar via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 30 15:50:58 PST 2017


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 at 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 at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list