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