r288440 - Struct GEPs must use i32, not whatever size_t is. It should be safe
John McCall via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 1 15:51:30 PST 2016
Author: rjmccall
Date: Thu Dec 1 17:51:30 2016
New Revision: 288440
URL: http://llvm.org/viewvc/llvm-project?rev=288440&view=rev
Log:
Struct GEPs must use i32, not whatever size_t is. It should be safe
to do this unconditionally, given that the indices will always be small
constant integers anyway.
Modified:
cfe/trunk/lib/CodeGen/ConstantBuilder.h
Modified: cfe/trunk/lib/CodeGen/ConstantBuilder.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ConstantBuilder.h?rev=288440&r1=288439&r2=288440&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/ConstantBuilder.h (original)
+++ cfe/trunk/lib/CodeGen/ConstantBuilder.h Thu Dec 1 17:51:30 2016
@@ -248,11 +248,13 @@ public:
// Otherwise, add an index to drill into the first level of pointer.
} else {
assert(indices.empty());
- indices.push_back(llvm::ConstantInt::get(Builder.CGM.SizeTy, 0));
+ indices.push_back(llvm::ConstantInt::get(Builder.CGM.Int32Ty, 0));
}
assert(position >= Begin);
- indices.push_back(llvm::ConstantInt::get(Builder.CGM.SizeTy,
+ // We have to use i32 here because struct GEPs demand i32 indices.
+ // It's rather unlikely to matter in practice.
+ indices.push_back(llvm::ConstantInt::get(Builder.CGM.Int32Ty,
position - Begin));
}
};
More information about the cfe-commits
mailing list