@@ -154,22 +154,26 @@ class CXXBaseSpecifier {
154154 SourceLocation EllipsisLoc;
155155
156156 // / Whether this is a virtual base class or not.
157+ LLVM_PREFERRED_TYPE (bool )
157158 unsigned Virtual : 1 ;
158159
159160 // / Whether this is the base of a class (true) or of a struct (false).
160161 // /
161162 // / This determines the mapping from the access specifier as written in the
162163 // / source code to the access specifier used for semantic analysis.
164+ LLVM_PREFERRED_TYPE (bool )
163165 unsigned BaseOfClass : 1 ;
164166
165167 // / Access specifier as written in the source code (may be AS_none).
166168 // /
167169 // / The actual type of data stored here is an AccessSpecifier, but we use
168- // / "unsigned" here to work around a VC++ bug.
170+ // / "unsigned" here to work around Microsoft ABI.
171+ LLVM_PREFERRED_TYPE (AccessSpecifier)
169172 unsigned Access : 2 ;
170173
171174 // / Whether the class contains a using declaration
172175 // / to inherit the named class's constructors.
176+ LLVM_PREFERRED_TYPE (bool )
173177 unsigned InheritConstructors : 1 ;
174178
175179 // / The type of the base class.
@@ -290,15 +294,19 @@ class CXXRecordDecl : public RecordDecl {
290294 #include " CXXRecordDeclDefinitionBits.def"
291295
292296 // / Whether this class describes a C++ lambda.
297+ LLVM_PREFERRED_TYPE (bool )
293298 unsigned IsLambda : 1 ;
294299
295300 // / Whether we are currently parsing base specifiers.
301+ LLVM_PREFERRED_TYPE (bool )
296302 unsigned IsParsingBaseSpecifiers : 1 ;
297303
298304 // / True when visible conversion functions are already computed
299305 // / and are available.
306+ LLVM_PREFERRED_TYPE (bool )
300307 unsigned ComputedVisibleConversions : 1 ;
301308
309+ LLVM_PREFERRED_TYPE (bool )
302310 unsigned HasODRHash : 1 ;
303311
304312 // / A hash of parts of the class to help in ODR checking.
@@ -383,12 +391,15 @@ class CXXRecordDecl : public RecordDecl {
383391 // / lambda will have been created with the enclosing context as its
384392 // / declaration context, rather than function. This is an unfortunate
385393 // / artifact of having to parse the default arguments before.
394+ LLVM_PREFERRED_TYPE (LambdaDependencyKind)
386395 unsigned DependencyKind : 2 ;
387396
388397 // / Whether this lambda is a generic lambda.
398+ LLVM_PREFERRED_TYPE (bool )
389399 unsigned IsGenericLambda : 1 ;
390400
391401 // / The Default Capture.
402+ LLVM_PREFERRED_TYPE (LambdaCaptureDefault)
392403 unsigned CaptureDefault : 2 ;
393404
394405 // / The number of captures in this lambda is limited 2^NumCaptures.
@@ -398,6 +409,7 @@ class CXXRecordDecl : public RecordDecl {
398409 unsigned NumExplicitCaptures : 12 ;
399410
400411 // / Has known `internal` linkage.
412+ LLVM_PREFERRED_TYPE (bool )
401413 unsigned HasKnownInternalLinkage : 1 ;
402414
403415 // / The number used to indicate this lambda expression for name
@@ -2305,14 +2317,17 @@ class CXXCtorInitializer final {
23052317
23062318 // / If the initializee is a type, whether that type makes this
23072319 // / a delegating initialization.
2320+ LLVM_PREFERRED_TYPE (bool )
23082321 unsigned IsDelegating : 1 ;
23092322
23102323 // / If the initializer is a base initializer, this keeps track
23112324 // / of whether the base is virtual or not.
2325+ LLVM_PREFERRED_TYPE (bool )
23122326 unsigned IsVirtual : 1 ;
23132327
23142328 // / Whether or not the initializer is explicitly written
23152329 // / in the sources.
2330+ LLVM_PREFERRED_TYPE (bool )
23162331 unsigned IsWritten : 1 ;
23172332
23182333 // / If IsWritten is true, then this number keeps track of the textual order
@@ -3588,6 +3603,7 @@ class ConstructorUsingShadowDecl final : public UsingShadowDecl {
35883603 // / \c true if the constructor ultimately named by this using shadow
35893604 // / declaration is within a virtual base class subobject of the class that
35903605 // / contains this declaration.
3606+ LLVM_PREFERRED_TYPE (bool )
35913607 unsigned IsVirtual : 1 ;
35923608
35933609 ConstructorUsingShadowDecl (ASTContext &C, DeclContext *DC, SourceLocation Loc,
0 commit comments