From 06ed3e788ab3d71350b7cc7d077f4bd9a2b57799 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Thu, 28 Jan 2010 02:43:22 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94738 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Constants.h | 3 +-- lib/VMCore/Constants.cpp | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index f34f9cbf58b..58077f0eb23 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -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 diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 9e1154e95e3..1415944885b 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -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) {