mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-05 12:31:33 +00:00
TargetData.cpp::getTypeInfo() was returning alignment of element type as the
alignment of a packed type. This is obviously wrong. Added a workaround that returns the size of the packed type as its alignment. The correct fix would be to return a target dependent alignment value provided via TargetLowering (or some other interface). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27319 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f1d0c623c6
commit
e668bdaa52
@ -215,6 +215,9 @@ static inline void getTypeInfo(const Type *Ty, const TargetData *TD,
|
|||||||
getTypeInfo(PTy->getElementType(), TD, Size, Alignment);
|
getTypeInfo(PTy->getElementType(), TD, Size, Alignment);
|
||||||
unsigned AlignedSize = (Size + Alignment - 1)/Alignment*Alignment;
|
unsigned AlignedSize = (Size + Alignment - 1)/Alignment*Alignment;
|
||||||
Size = AlignedSize*PTy->getNumElements();
|
Size = AlignedSize*PTy->getNumElements();
|
||||||
|
// FIXME: The alignments of specific packed types are target dependent.
|
||||||
|
// For now, just set it to be equal to Size.
|
||||||
|
Alignment = Size;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
case Type::StructTyID: {
|
case Type::StructTyID: {
|
||||||
|
Loading…
Reference in New Issue
Block a user