Commit Graph

2 Commits

Author SHA1 Message Date
Doug Gregor
9af914eafa [ABI] Remove the “final” assertion from the ABI’s TrailingObjects.
In our ABI, we’re using some C++ ABI tricks to simplify the 
implementation of the runtime. One of them, in FullMetadata, requires
that we inherit from classes that we would also like to make use
TrailingObjects. Remove the “final” assertion from TrailingObjects
so we can do so.

We promise to be careful.
2018-07-20 20:54:49 -07:00
Joe Groff
fe192c6daf Runtime: Refactor NominalTypeDescriptor to use TrailingObjects.
NFC intended. The layout of trailing matter here is getting fairly complex, so it's good to use LLVM's existing library code to keep track of it. We use a fork of llvm's TrailingObjects.h header so that future changes to LLVM don't disturb the ABI of Swift runtime objects that use the template.
2017-12-11 16:26:29 -08:00