@@ -270,11 +270,13 @@ class AggValueSlot {
270270 // / This is set to true if some external code is responsible for setting up a
271271 // / destructor for the slot. Otherwise the code which constructs it should
272272 // / push the appropriate cleanup.
273- [[maybe_unused]] bool destructedFlag : 1 ;
273+ LLVM_PREFERRED_TYPE (bool )
274+ [[maybe_unused]] unsigned destructedFlag : 1 ;
274275
275276 // / This is set to true if the memory in the slot is known to be zero before
276277 // / the assignment into it. This means that zero fields don't need to be set.
277- bool zeroedFlag : 1 ;
278+ LLVM_PREFERRED_TYPE (bool )
279+ unsigned zeroedFlag : 1 ;
278280
279281 // / This is set to true if the slot might be aliased and it's not undefined
280282 // / behavior to access it through such an alias. Note that it's always
@@ -287,14 +289,16 @@ class AggValueSlot {
287289 // / over. Since it's invalid in general to memcpy a non-POD C++
288290 // / object, it's important that this flag never be set when
289291 // / evaluating an expression which constructs such an object.
290- [[maybe_unused]] bool aliasedFlag : 1 ;
292+ LLVM_PREFERRED_TYPE (bool )
293+ [[maybe_unused]] unsigned aliasedFlag : 1 ;
291294
292295 // / This is set to true if the tail padding of this slot might overlap
293296 // / another object that may have already been initialized (and whose
294297 // / value must be preserved by this initialization). If so, we may only
295298 // / store up to the dsize of the type. Otherwise we can widen stores to
296299 // / the size of the type.
297- [[maybe_unused]] bool overlapFlag : 1 ;
300+ LLVM_PREFERRED_TYPE (bool )
301+ [[maybe_unused]] unsigned overlapFlag : 1 ;
298302
299303public:
300304 enum IsDestructed_t { IsNotDestructed, IsDestructed };
0 commit comments