Skip to content

Commit 6cb3181

Browse files
authored
Merge pull request #84529 from tshortli/fix-compiler-armv7-build
AST: Give `CustomAvailabilityDomain` 8 byte alignment.
2 parents 2710f20 + 434d3a1 commit 6cb3181

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

include/swift/AST/AvailabilityDomain.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "swift/AST/AvailabilityRange.h"
2323
#include "swift/AST/Identifier.h"
2424
#include "swift/AST/PlatformKindUtils.h"
25+
#include "swift/AST/TypeAlignments.h"
2526
#include "swift/Basic/Assertions.h"
2627
#include "swift/Basic/LLVM.h"
2728
#include "swift/Basic/SourceLoc.h"
@@ -334,7 +335,8 @@ struct StableAvailabilityDomainComparator {
334335
};
335336

336337
/// Represents an availability domain that has been defined in a module.
337-
class CustomAvailabilityDomain : public llvm::FoldingSetNode {
338+
class alignas(1 << CustomAvailabilityDomainAlignInBits) CustomAvailabilityDomain
339+
: public llvm::FoldingSetNode {
338340
public:
339341
enum class Kind : uint8_t {
340342
/// A domain that is known to be enabled at compile time.

include/swift/AST/TypeAlignments.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ namespace swift {
3434
class AttributeBase;
3535
class BraceStmt;
3636
class CaptureListExpr;
37+
class CustomAvailabilityDomain;
3738
class Decl;
3839
class DeclContext;
3940
class DifferentiableAttr;
@@ -80,6 +81,7 @@ namespace swift {
8081
constexpr size_t ASTContextAlignInBits = 2;
8182
constexpr size_t TypeVariableAlignInBits = 4;
8283
constexpr size_t StoredDefaultArgumentAlignInBits = 3;
84+
constexpr size_t CustomAvailabilityDomainAlignInBits = 3;
8385

8486
// Well, this is the *minimum* pointer alignment; it's going to be 3 on
8587
// 64-bit targets, but that doesn't matter.
@@ -165,6 +167,9 @@ LLVM_DECLARE_TYPE_ALIGNMENT(swift::CaseLabelItem, swift::PatternAlignInBits)
165167
LLVM_DECLARE_TYPE_ALIGNMENT(swift::StmtConditionElement,
166168
swift::PatternAlignInBits)
167169

170+
LLVM_DECLARE_TYPE_ALIGNMENT(swift::CustomAvailabilityDomain,
171+
swift::CustomAvailabilityDomainAlignInBits)
172+
168173
static_assert(alignof(void*) >= 2, "pointer alignment is too small");
169174

170175
#endif

0 commit comments

Comments
 (0)