diff options
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGExpr.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index 722ec868f5..47d2ee96d8 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -1078,23 +1078,10 @@ LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E) { = getContext().getAsConstantArrayType(DRE->getType())) { llvm::APInt Size = CAT->getSize(); llvm::BasicBlock *Cont = createBasicBlock("cont"); - if (IdxSigned) { - Builder.CreateCondBr(Builder.CreateICmpSGE(Idx, - llvm::ConstantInt::get(Idx->getType(), 0)), - Cont, getAbortBB()); - EmitBlock(Cont); - Cont = createBasicBlock("cont"); - Builder.CreateCondBr(Builder.CreateICmpSLT(Idx, + Builder.CreateCondBr(Builder.CreateICmpULT(Idx, llvm::ConstantInt::get(Idx->getType(), Size)), - Cont, getAbortBB()); - EmitBlock(Cont); - } else { - llvm::BasicBlock *Cont = createBasicBlock("cont"); - Builder.CreateCondBr(Builder.CreateICmpULT(Idx, - llvm::ConstantInt::get(Idx->getType(), Size)), - Cont, getAbortBB()); - EmitBlock(Cont); - } + Cont, getAbortBB()); + EmitBlock(Cont); } } } |