Skip to content

Commit d7ab0c1

Browse files
authored
[AutoDiff] Fix "'alignof' to an incomplete type" error in AutoDiff.h. (#29983)
Using `DenseMap<SILAutoDiffDerivativeFunctionKey, ...>` in a file that includes AutoDiff.h but not Types.h produced the following error: ``` error: invalid application of 'alignof' to an incomplete type 'swift::SILFunctionType' ``` Fix the error by: - Including TypeAlignments.h in AutoDiff.h. - Adding an alignment forward declaration for `SILFunctionType` to TypeAlignments.h.
1 parent 9013bbb commit d7ab0c1

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

include/swift/AST/AutoDiff.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "swift/AST/Identifier.h"
2424
#include "swift/AST/IndexSubset.h"
2525
#include "swift/AST/Type.h"
26+
#include "swift/AST/TypeAlignments.h"
2627
#include "swift/Basic/Range.h"
2728
#include "swift/Basic/SourceLoc.h"
2829

include/swift/AST/TypeAlignments.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ namespace swift {
4646
class ProtocolDecl;
4747
class ProtocolConformance;
4848
class SILFunction;
49+
class SILFunctionType;
4950
class Stmt;
5051
class TypeVariableType;
5152
class TypeBase;
@@ -100,6 +101,8 @@ LLVM_DECLARE_TYPE_ALIGNMENT(swift::ExtensionDecl, swift::DeclAlignInBits)
100101
LLVM_DECLARE_TYPE_ALIGNMENT(swift::TypeBase, swift::TypeAlignInBits)
101102
LLVM_DECLARE_TYPE_ALIGNMENT(swift::ArchetypeType, swift::TypeAlignInBits)
102103
LLVM_DECLARE_TYPE_ALIGNMENT(swift::TypeVariableType, swift::TypeVariableAlignInBits)
104+
LLVM_DECLARE_TYPE_ALIGNMENT(swift::SILFunctionType,
105+
swift::TypeVariableAlignInBits)
103106

104107
LLVM_DECLARE_TYPE_ALIGNMENT(swift::Stmt, swift::StmtAlignInBits)
105108
LLVM_DECLARE_TYPE_ALIGNMENT(swift::BraceStmt, swift::StmtAlignInBits)

0 commit comments

Comments
 (0)