@@ -580,6 +580,7 @@ class ObjCTypeParamDecl : public TypedefNameDecl {
580
580
unsigned Index : 14 ;
581
581
582
582
// / The variance of the type parameter.
583
+ LLVM_PREFERRED_TYPE (ObjCTypeParamVariance)
583
584
unsigned Variance : 2 ;
584
585
585
586
// / The location of the variance, if any.
@@ -741,10 +742,13 @@ class ObjCPropertyDecl : public NamedDecl {
741
742
742
743
QualType DeclType;
743
744
TypeSourceInfo *DeclTypeSourceInfo;
745
+ LLVM_PREFERRED_TYPE (ObjCPropertyAttribute::Kind)
744
746
unsigned PropertyAttributes : NumObjCPropertyAttrsBits;
747
+ LLVM_PREFERRED_TYPE (ObjCPropertyAttribute::Kind)
745
748
unsigned PropertyAttributesAsWritten : NumObjCPropertyAttrsBits;
746
749
747
750
// \@required/\@optional
751
+ LLVM_PREFERRED_TYPE (PropertyControl)
748
752
unsigned PropertyImplementation : 2 ;
749
753
750
754
// getter name of NULL if no getter
@@ -1178,14 +1182,17 @@ class ObjCInterfaceDecl : public ObjCContainerDecl
1178
1182
1179
1183
// / Indicates that the contents of this Objective-C class will be
1180
1184
// / completed by the external AST source when required.
1185
+ LLVM_PREFERRED_TYPE (bool )
1181
1186
mutable unsigned ExternallyCompleted : 1 ;
1182
1187
1183
1188
// / Indicates that the ivar cache does not yet include ivars
1184
1189
// / declared in the implementation.
1190
+ LLVM_PREFERRED_TYPE (bool )
1185
1191
mutable unsigned IvarListMissingImplementation : 1 ;
1186
1192
1187
1193
// / Indicates that this interface decl contains at least one initializer
1188
1194
// / marked with the 'objc_designated_initializer' attribute.
1195
+ LLVM_PREFERRED_TYPE (bool )
1189
1196
unsigned HasDesignatedInitializers : 1 ;
1190
1197
1191
1198
enum InheritedDesignatedInitializersState {
@@ -1201,9 +1208,11 @@ class ObjCInterfaceDecl : public ObjCContainerDecl
1201
1208
};
1202
1209
1203
1210
// / One of the \c InheritedDesignatedInitializersState enumeratos.
1211
+ LLVM_PREFERRED_TYPE (InheritedDesignatedInitializersState)
1204
1212
mutable unsigned InheritedDesignatedInitializers : 2 ;
1205
1213
1206
1214
// / Tracks whether a ODR hash has been computed for this interface.
1215
+ LLVM_PREFERRED_TYPE (bool )
1207
1216
unsigned HasODRHash : 1 ;
1208
1217
1209
1218
// / A hash of parts of the class to help in ODR checking.
@@ -2007,7 +2016,9 @@ class ObjCIvarDecl : public FieldDecl {
2007
2016
ObjCIvarDecl *NextIvar = nullptr ;
2008
2017
2009
2018
// NOTE: VC++ treats enums as signed, avoid using the AccessControl enum
2019
+ LLVM_PREFERRED_TYPE (AccessControl)
2010
2020
unsigned DeclAccess : 3;
2021
+ LLVM_PREFERRED_TYPE (bool )
2011
2022
unsigned Synthesized : 1;
2012
2023
};
2013
2024
@@ -2074,6 +2085,7 @@ class ObjCProtocolDecl : public ObjCContainerDecl,
2074
2085
ObjCProtocolList ReferencedProtocols;
2075
2086
2076
2087
// / Tracks whether a ODR hash has been computed for this protocol.
2088
+ LLVM_PREFERRED_TYPE (bool )
2077
2089
unsigned HasODRHash : 1 ;
2078
2090
2079
2091
// / A hash of parts of the class to help in ODR checking.
@@ -2596,9 +2608,11 @@ class ObjCImplementationDecl : public ObjCImplDecl {
2596
2608
2597
2609
// / Do the ivars of this class require initialization other than
2598
2610
// / zero-initialization?
2611
+ LLVM_PREFERRED_TYPE (bool )
2599
2612
bool HasNonZeroConstructors : 1 ;
2600
2613
2601
2614
// / Do the ivars of this class require non-trivial destruction?
2615
+ LLVM_PREFERRED_TYPE (bool )
2602
2616
bool HasDestructors : 1 ;
2603
2617
2604
2618
ObjCImplementationDecl (DeclContext *DC,
0 commit comments