@@ -154,22 +154,26 @@ class CXXBaseSpecifier {
154
154
SourceLocation EllipsisLoc;
155
155
156
156
// / Whether this is a virtual base class or not.
157
+ LLVM_PREFERRED_TYPE (bool )
157
158
unsigned Virtual : 1 ;
158
159
159
160
// / Whether this is the base of a class (true) or of a struct (false).
160
161
// /
161
162
// / This determines the mapping from the access specifier as written in the
162
163
// / source code to the access specifier used for semantic analysis.
164
+ LLVM_PREFERRED_TYPE (bool )
163
165
unsigned BaseOfClass : 1 ;
164
166
165
167
// / Access specifier as written in the source code (may be AS_none).
166
168
// /
167
169
// / 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)
169
172
unsigned Access : 2 ;
170
173
171
174
// / Whether the class contains a using declaration
172
175
// / to inherit the named class's constructors.
176
+ LLVM_PREFERRED_TYPE (bool )
173
177
unsigned InheritConstructors : 1 ;
174
178
175
179
// / The type of the base class.
@@ -290,15 +294,19 @@ class CXXRecordDecl : public RecordDecl {
290
294
#include " CXXRecordDeclDefinitionBits.def"
291
295
292
296
// / Whether this class describes a C++ lambda.
297
+ LLVM_PREFERRED_TYPE (bool )
293
298
unsigned IsLambda : 1 ;
294
299
295
300
// / Whether we are currently parsing base specifiers.
301
+ LLVM_PREFERRED_TYPE (bool )
296
302
unsigned IsParsingBaseSpecifiers : 1 ;
297
303
298
304
// / True when visible conversion functions are already computed
299
305
// / and are available.
306
+ LLVM_PREFERRED_TYPE (bool )
300
307
unsigned ComputedVisibleConversions : 1 ;
301
308
309
+ LLVM_PREFERRED_TYPE (bool )
302
310
unsigned HasODRHash : 1 ;
303
311
304
312
// / A hash of parts of the class to help in ODR checking.
@@ -383,12 +391,15 @@ class CXXRecordDecl : public RecordDecl {
383
391
// / lambda will have been created with the enclosing context as its
384
392
// / declaration context, rather than function. This is an unfortunate
385
393
// / artifact of having to parse the default arguments before.
394
+ LLVM_PREFERRED_TYPE (LambdaDependencyKind)
386
395
unsigned DependencyKind : 2 ;
387
396
388
397
// / Whether this lambda is a generic lambda.
398
+ LLVM_PREFERRED_TYPE (bool )
389
399
unsigned IsGenericLambda : 1 ;
390
400
391
401
// / The Default Capture.
402
+ LLVM_PREFERRED_TYPE (LambdaCaptureDefault)
392
403
unsigned CaptureDefault : 2 ;
393
404
394
405
// / The number of captures in this lambda is limited 2^NumCaptures.
@@ -398,6 +409,7 @@ class CXXRecordDecl : public RecordDecl {
398
409
unsigned NumExplicitCaptures : 12 ;
399
410
400
411
// / Has known `internal` linkage.
412
+ LLVM_PREFERRED_TYPE (bool )
401
413
unsigned HasKnownInternalLinkage : 1 ;
402
414
403
415
// / The number used to indicate this lambda expression for name
@@ -2305,14 +2317,17 @@ class CXXCtorInitializer final {
2305
2317
2306
2318
// / If the initializee is a type, whether that type makes this
2307
2319
// / a delegating initialization.
2320
+ LLVM_PREFERRED_TYPE (bool )
2308
2321
unsigned IsDelegating : 1 ;
2309
2322
2310
2323
// / If the initializer is a base initializer, this keeps track
2311
2324
// / of whether the base is virtual or not.
2325
+ LLVM_PREFERRED_TYPE (bool )
2312
2326
unsigned IsVirtual : 1 ;
2313
2327
2314
2328
// / Whether or not the initializer is explicitly written
2315
2329
// / in the sources.
2330
+ LLVM_PREFERRED_TYPE (bool )
2316
2331
unsigned IsWritten : 1 ;
2317
2332
2318
2333
// / If IsWritten is true, then this number keeps track of the textual order
@@ -3588,6 +3603,7 @@ class ConstructorUsingShadowDecl final : public UsingShadowDecl {
3588
3603
// / \c true if the constructor ultimately named by this using shadow
3589
3604
// / declaration is within a virtual base class subobject of the class that
3590
3605
// / contains this declaration.
3606
+ LLVM_PREFERRED_TYPE (bool )
3591
3607
unsigned IsVirtual : 1 ;
3592
3608
3593
3609
ConstructorUsingShadowDecl (ASTContext &C, DeclContext *DC, SourceLocation Loc,
0 commit comments