[IRGen][runtime] Prepare to change the is-Swift bit in class metadata. (#13595)

Swift class metadata has a bit to distinguish it from non-Swift Objective-C
classes. The stable ABI will use a different bit so that stable Swift and
pre-stable Swift can be distinguished from each other.

No bits are actually changed yet. Enabling the new bit needs to wait for
other coordination such as libobjc.

rdar://35767811
This commit is contained in:
Greg Parker
2017-12-22 00:52:00 -08:00
committed by GitHub
parent f39d1cd6b6
commit c677a5dc11
19 changed files with 78 additions and 34 deletions

View File

@@ -31,8 +31,8 @@ static SWIFT_CC(swift) void destroyTestObject(SWIFT_CONTEXT HeapObject *_object)
static const FullMetadata<ClassMetadata> TestClassObjectMetadata = {
{ { &destroyTestObject }, { &VALUE_WITNESS_SYM(Bo) } },
{ { { MetadataKind::Class } }, 0, /*rodata*/ 1,
ClassFlags::UsesSwift1Refcounting, 0, 0, 0, 0, 0, 0 }
{ { { MetadataKind::Class } }, 0, SWIFT_CLASS_IS_SWIFT_MASK,
ClassFlags::UsesSwiftRefcounting, 0, 0, 0, 0, 0, 0 }
};
/// Create an object that, when deallocated, stores the given value to