@@ -580,6 +580,7 @@ class ObjCTypeParamDecl : public TypedefNameDecl {
580580 unsigned Index : 14 ;
581581
582582 // / The variance of the type parameter.
583+ LLVM_PREFERRED_TYPE (ObjCTypeParamVariance)
583584 unsigned Variance : 2 ;
584585
585586 // / The location of the variance, if any.
@@ -741,10 +742,13 @@ class ObjCPropertyDecl : public NamedDecl {
741742
742743 QualType DeclType;
743744 TypeSourceInfo *DeclTypeSourceInfo;
745+ LLVM_PREFERRED_TYPE (ObjCPropertyAttribute::Kind)
744746 unsigned PropertyAttributes : NumObjCPropertyAttrsBits;
747+ LLVM_PREFERRED_TYPE (ObjCPropertyAttribute::Kind)
745748 unsigned PropertyAttributesAsWritten : NumObjCPropertyAttrsBits;
746749
747750 // \@required/\@optional
751+ LLVM_PREFERRED_TYPE (PropertyControl)
748752 unsigned PropertyImplementation : 2 ;
749753
750754 // getter name of NULL if no getter
@@ -1178,14 +1182,17 @@ class ObjCInterfaceDecl : public ObjCContainerDecl
11781182
11791183 // / Indicates that the contents of this Objective-C class will be
11801184 // / completed by the external AST source when required.
1185+ LLVM_PREFERRED_TYPE (bool )
11811186 mutable unsigned ExternallyCompleted : 1 ;
11821187
11831188 // / Indicates that the ivar cache does not yet include ivars
11841189 // / declared in the implementation.
1190+ LLVM_PREFERRED_TYPE (bool )
11851191 mutable unsigned IvarListMissingImplementation : 1 ;
11861192
11871193 // / Indicates that this interface decl contains at least one initializer
11881194 // / marked with the 'objc_designated_initializer' attribute.
1195+ LLVM_PREFERRED_TYPE (bool )
11891196 unsigned HasDesignatedInitializers : 1 ;
11901197
11911198 enum InheritedDesignatedInitializersState {
@@ -1201,9 +1208,11 @@ class ObjCInterfaceDecl : public ObjCContainerDecl
12011208 };
12021209
12031210 // / One of the \c InheritedDesignatedInitializersState enumeratos.
1211+ LLVM_PREFERRED_TYPE (InheritedDesignatedInitializersState)
12041212 mutable unsigned InheritedDesignatedInitializers : 2 ;
12051213
12061214 // / Tracks whether a ODR hash has been computed for this interface.
1215+ LLVM_PREFERRED_TYPE (bool )
12071216 unsigned HasODRHash : 1 ;
12081217
12091218 // / A hash of parts of the class to help in ODR checking.
@@ -2007,7 +2016,9 @@ class ObjCIvarDecl : public FieldDecl {
20072016 ObjCIvarDecl *NextIvar = nullptr ;
20082017
20092018 // NOTE: VC++ treats enums as signed, avoid using the AccessControl enum
2019+ LLVM_PREFERRED_TYPE (AccessControl)
20102020 unsigned DeclAccess : 3;
2021+ LLVM_PREFERRED_TYPE (bool )
20112022 unsigned Synthesized : 1;
20122023};
20132024
@@ -2074,6 +2085,7 @@ class ObjCProtocolDecl : public ObjCContainerDecl,
20742085 ObjCProtocolList ReferencedProtocols;
20752086
20762087 // / Tracks whether a ODR hash has been computed for this protocol.
2088+ LLVM_PREFERRED_TYPE (bool )
20772089 unsigned HasODRHash : 1 ;
20782090
20792091 // / A hash of parts of the class to help in ODR checking.
@@ -2596,9 +2608,11 @@ class ObjCImplementationDecl : public ObjCImplDecl {
25962608
25972609 // / Do the ivars of this class require initialization other than
25982610 // / zero-initialization?
2611+ LLVM_PREFERRED_TYPE (bool )
25992612 bool HasNonZeroConstructors : 1 ;
26002613
26012614 // / Do the ivars of this class require non-trivial destruction?
2615+ LLVM_PREFERRED_TYPE (bool )
26022616 bool HasDestructors : 1 ;
26032617
26042618 ObjCImplementationDecl (DeclContext *DC,
0 commit comments