diff options
author | Nuno Lopes <nunoplopes@sapo.pt> | 2012-05-22 15:26:48 +0000 |
---|---|---|
committer | Nuno Lopes <nunoplopes@sapo.pt> | 2012-05-22 15:26:48 +0000 |
commit | 3e86a0433db4c664d29f2b19eb977138e071a68a (patch) | |
tree | 2e4f7cab96a4e154ef835309081a693e4ddd83f6 | |
parent | d95e95ec5300249f5b7c6f1b72bde59e5141069c (diff) |
revert the usage of the objectsize intrinsic with 3 parameters (to match LLVM r157255)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157256 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CGBuiltin.cpp | 5 | ||||
-rw-r--r-- | lib/CodeGen/CGExpr.cpp | 3 | ||||
-rw-r--r-- | test/CodeGen/bounds-checking.c | 8 | ||||
-rw-r--r-- | test/CodeGen/object-size.c | 4 |
4 files changed, 8 insertions, 12 deletions
diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp index 792893f54e..944fbe9f19 100644 --- a/lib/CodeGen/CGBuiltin.cpp +++ b/lib/CodeGen/CGBuiltin.cpp @@ -346,12 +346,9 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD, assert(CI); uint64_t val = CI->getZExtValue(); CI = ConstantInt::get(Builder.getInt1Ty(), (val & 0x2) >> 1); - Value *Runtime = Builder.getInt32(0); // FIXME: use BoundsChecking here? Value *F = CGM.getIntrinsic(Intrinsic::objectsize, ResType); - return RValue::get(Builder.CreateCall3(F, - EmitScalarExpr(E->getArg(0)), - CI, Runtime)); + return RValue::get(Builder.CreateCall2(F, EmitScalarExpr(E->getArg(0)),CI)); } case Builtin::BI__builtin_prefetch: { Value *Locality, *RW, *Address = EmitScalarExpr(E->getArg(0)); diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index d4e4c402b7..11b8ed254c 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -526,8 +526,7 @@ void CodeGenFunction::EmitCheck(llvm::Value *Address, unsigned Size) { llvm::Value *F = CGM.getIntrinsic(llvm::Intrinsic::objectsize, IntPtrTy); llvm::Value *Min = Builder.getFalse(); - llvm::Value *Runtime = Builder.getInt32(BoundsChecking); - llvm::Value *C = Builder.CreateCall3(F, Address, Min, Runtime); + llvm::Value *C = Builder.CreateCall2(F, Address, Min); llvm::BasicBlock *Cont = createBasicBlock(); Builder.CreateCondBr(Builder.CreateICmpUGE(C, llvm::ConstantInt::get(IntPtrTy, Size)), diff --git a/test/CodeGen/bounds-checking.c b/test/CodeGen/bounds-checking.c index ce7f24fde9..3271b76dcb 100644 --- a/test/CodeGen/bounds-checking.c +++ b/test/CodeGen/bounds-checking.c @@ -4,22 +4,22 @@ double f(int b, int i) { double a[b]; return a[i]; - // CHECK: objectsize.i64({{.*}}, i1 false, i32 4) + // CHECK: objectsize.i64({{.*}}, i1 false) // CHECK: icmp uge i64 {{.*}}, 8 } // CHECK: @f2 void f2() { int a[2]; - // CHECK: objectsize.i64({{.*}}, i1 false, i32 4) + // CHECK: objectsize.i64({{.*}}, i1 false) // CHECK: icmp uge i64 {{.*}}, 4 a[1] = 42; short *b = malloc(64); - // CHECK: objectsize.i64({{.*}}, i1 false, i32 4) + // CHECK: objectsize.i64({{.*}}, i1 false) // CHECK: icmp uge i64 {{.*}}, 4 // CHECK: getelementptr {{.*}}, i64 5 - // CHECK: objectsize.i64({{.*}}, i1 false, i32 4) + // CHECK: objectsize.i64({{.*}}, i1 false) // CHECK: icmp uge i64 {{.*}}, 2 b[5] = a[1]+2; } diff --git a/test/CodeGen/object-size.c b/test/CodeGen/object-size.c index 966d59f11d..1f16d02d7d 100644 --- a/test/CodeGen/object-size.c +++ b/test/CodeGen/object-size.c @@ -40,7 +40,7 @@ void test4() { // CHECK: define void @test5 void test5() { // CHECK: = load i8** @gp - // CHECK-NEXT:= call i64 @llvm.objectsize.i64(i8* %{{.*}}, i1 false, i32 0) + // CHECK-NEXT:= call i64 @llvm.objectsize.i64(i8* %{{.*}}, i1 false) strcpy(gp, "Hi there"); } @@ -55,7 +55,7 @@ void test6() { // CHECK: define void @test7 void test7() { int i; - // CHECK: = call i64 @llvm.objectsize.i64(i8* {{.*}}@gbuf{{.*}}, i1 false, i32 0) + // CHECK: = call i64 @llvm.objectsize.i64(i8* {{.*}}@gbuf{{.*}}, i1 false) strcpy((++i, gbuf), "Hi there"); } |