mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-22 15:39:28 +00:00
* Fix divide by zero error with empty structs
* Empty structs should have ALIGNMENT 1, not SIZE 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6263 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
77c9fcb797
commit
4e840d4db7
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user