Clang part of r69947. Reverting back 69574 as it is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69949 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExprScalar.cpp b/lib/CodeGen/CGExprScalar.cpp
index 77771bd..308a45e 100644
--- a/lib/CodeGen/CGExprScalar.cpp
+++ b/lib/CodeGen/CGExprScalar.cpp
@@ -958,14 +958,10 @@
}
unsigned Width = cast<llvm::IntegerType>(Idx->getType())->getBitWidth();
- // Only 32 and 64 are valid index widths. So if a target has shorter
- // pointe width, extend to 32 at least.
- unsigned IdxValidWidth
- = (CGF.LLVMPointerWidth < 32) ? 32 : CGF.LLVMPointerWidth;
- if (Width < IdxValidWidth) {
+ if (Width < CGF.LLVMPointerWidth) {
// Zero or sign extend the pointer value based on whether the index is
// signed or not.
- const llvm::Type *IdxType = llvm::IntegerType::get(IdxValidWidth);
+ const llvm::Type *IdxType = llvm::IntegerType::get(CGF.LLVMPointerWidth);
if (IdxExp->getType()->isSignedIntegerType())
Idx = Builder.CreateSExt(Idx, IdxType, "idx.ext");
else
@@ -1008,12 +1004,10 @@
// pointer - int
Value *Idx = Ops.RHS;
unsigned Width = cast<llvm::IntegerType>(Idx->getType())->getBitWidth();
- unsigned IdxValidWidth
- = (CGF.LLVMPointerWidth < 32) ? 32 : CGF.LLVMPointerWidth;
- if (Width < IdxValidWidth) {
+ if (Width < CGF.LLVMPointerWidth) {
// Zero or sign extend the pointer value based on whether the index is
// signed or not.
- const llvm::Type *IdxType = llvm::IntegerType::get(IdxValidWidth);
+ const llvm::Type *IdxType = llvm::IntegerType::get(CGF.LLVMPointerWidth);
if (Ops.E->getRHS()->getType()->isSignedIntegerType())
Idx = Builder.CreateSExt(Idx, IdxType, "idx.ext");
else