Make getAlignOf return an i64, for consistency with getSizeOf and

getOffsetOf, and remove the comment about assuming i8 is byte-aligned,
which is no longer applicable.

llvm-svn: 94738
This commit is contained in:
Dan Gohman 2010-01-28 02:43:22 +00:00
parent 1eb6920a2f
commit 4319402eb0
2 changed files with 3 additions and 4 deletions

View File

@ -644,8 +644,7 @@ public:
///
/// getAlignOf constant expr - computes the alignment of a type in a target
/// independent way (Note: the return type is an i32; Note: assumes that i8
/// is byte aligned).
/// independent way (Note: the return type is an i64).
static Constant *getAlignOf(const Type* Ty);
/// getSizeOf constant expr - computes the size of a type in a target

View File

@ -1484,12 +1484,12 @@ Constant* ConstantExpr::getAlignOf(const Type* Ty) {
const Type *AligningTy = StructType::get(Ty->getContext(),
Type::getInt1Ty(Ty->getContext()), Ty, NULL);
Constant *NullPtr = Constant::getNullValue(AligningTy->getPointerTo());
Constant *Zero = ConstantInt::get(Type::getInt32Ty(Ty->getContext()), 0);
Constant *Zero = ConstantInt::get(Type::getInt64Ty(Ty->getContext()), 0);
Constant *One = ConstantInt::get(Type::getInt32Ty(Ty->getContext()), 1);
Constant *Indices[2] = { Zero, One };
Constant *GEP = getGetElementPtr(NullPtr, Indices, 2);
return getCast(Instruction::PtrToInt, GEP,
Type::getInt32Ty(Ty->getContext()));
Type::getInt64Ty(Ty->getContext()));
}
Constant* ConstantExpr::getOffsetOf(const StructType* STy, unsigned FieldNo) {