* Fix divide by zero error with empty structs

* Empty structs should have ALIGNMENT 1, not SIZE 1.

llvm-svn: 6263
This commit is contained in:
Chris Lattner 2003-05-21 18:08:44 +00:00
parent 2a651d7a0e
commit 6532e427b4
1 changed files with 3 additions and 5 deletions

View File

@ -56,15 +56,13 @@ StructLayout::StructLayout(const StructType *ST, const TargetData &TD)
StructSize += TySize; // Consume space for this data item
}
// Empty structures have alignment of 1 byte.
if (StructAlignment == 0) StructAlignment = 1;
// Add padding to the end of the struct so that it could be put in an array
// and all array elements would be aligned correctly.
if (StructSize % StructAlignment != 0)
StructSize = (StructSize/StructAlignment + 1) * StructAlignment;
if (StructSize == 0) {
StructSize = 1; // Empty struct is 1 byte
StructAlignment = 1;
}
}
Annotation *TargetData::TypeAnFactory(AnnotationID AID, const Annotable *T,