Files
swift-mirror/include/swift/AST/Decl.h
Connor Wakamo 3c555ac19b Made Decl's ClangNode storage support 32-bit platforms.
Previously, this storage required that alignof(void *) >= alignof(Decl). This is
true on 64-bit platforms, where these are both 8, but on 32-bit platforms
alignof(void *) is only 4.

This now allocates enough bytes to match the alignment of the Decl in question.
This does mean that a void * must fit in that alignment, but this is true on 32-
and 64-bit platforms, and a static_assert ensures that this is true at compile
time.

As part of this change, the logic for allocating memory for a Decl has been
refactored into a separate function, so that the logic for allocating space for
a ClangNode can be centralized.

Swift SVN r23990
2014-12-17 21:23:16 +00:00

175 KiB