Pass #1 at localizing assumptions about fixed layout and

handling non-fixed layouts.

This uncovered a bug where we weren't rounding up the header
size to the element alignment when allocating an array of archetypes.

Writing up a detailed test case for *that* revealed that we were
never initializing the length field of heap arrays.  Fixing that
caused a bunch of tests to crash trying to release stuff.  So...
I've left this in a workaround state right now because I have to
catch a plane.

Swift SVN r4804
This commit is contained in:
John McCall
2013-04-18 07:58:21 +00:00
parent 4d617d8508
commit 38b34b7307
20 changed files with 659 additions and 233 deletions

View File

@@ -51,8 +51,8 @@ namespace {
};
/// Layout information for struct types.
class StructTypeInfo :
public SequentialTypeInfo<StructTypeInfo, StructFieldInfo> {
class StructTypeInfo : // FIXME: FixedTypeInfo as the base class is a lie.
public SequentialTypeInfo<StructTypeInfo, FixedTypeInfo, StructFieldInfo> {
public:
StructTypeInfo(llvm::Type *T, unsigned numFields)
: SequentialTypeInfo(T, numFields) {