@@ -176,6 +176,8 @@ class PointerAuthQualifier {
176
176
// |AuthenticatesNull|Key |Discriminator|
177
177
uint32_t Data;
178
178
179
+ // The following static assertions check that each of the 32 bits is present
180
+ // exactly in one of the constants.
179
181
static_assert ((EnabledBits + AddressDiscriminatedBits +
180
182
AuthenticationModeBits + IsaPointerBits +
181
183
AuthenticatesNullValuesBits + KeyBits + DiscriminatorBits) ==
@@ -192,21 +194,22 @@ class PointerAuthQualifier {
192
194
0xFFFFFFFF ,
193
195
" All masks should cover the entire bits" );
194
196
195
- PointerAuthQualifier (unsigned key , bool isAddressDiscriminated ,
196
- unsigned extraDiscriminator ,
197
- PointerAuthenticationMode authenticationMode ,
198
- bool isIsaPointer , bool authenticatesNullValues )
197
+ PointerAuthQualifier (unsigned Key , bool IsAddressDiscriminated ,
198
+ unsigned ExtraDiscriminator ,
199
+ PointerAuthenticationMode AuthenticationMode ,
200
+ bool IsIsaPointer , bool AuthenticatesNullValues )
199
201
: Data(EnabledMask |
200
- (isAddressDiscriminated
201
- ? static_cast < uint32_t > (AddressDiscriminatedMask)
202
+ (IsAddressDiscriminated
203
+ ? llvm::to_underlying (AddressDiscriminatedMask)
202
204
: 0 ) |
203
- (key << KeyShift) |
204
- (unsigned (authenticationMode) << AuthenticationModeShift) |
205
- (extraDiscriminator << DiscriminatorShift) |
206
- (isIsaPointer << IsaPointerShift) |
207
- (authenticatesNullValues << AuthenticatesNullValuesShift)) {
208
- assert (key <= KeyNoneInternal);
209
- assert (extraDiscriminator <= MaxDiscriminator);
205
+ (Key << KeyShift) |
206
+ (llvm::to_underlying(AuthenticationMode)
207
+ << AuthenticationModeShift) |
208
+ (ExtraDiscriminator << DiscriminatorShift) |
209
+ (IsIsaPointer << IsaPointerShift) |
210
+ (AuthenticatesNullValues << AuthenticatesNullValuesShift)) {
211
+ assert (Key <= KeyNoneInternal);
212
+ assert (ExtraDiscriminator <= MaxDiscriminator);
210
213
}
211
214
212
215
public:
@@ -224,15 +227,15 @@ class PointerAuthQualifier {
224
227
PointerAuthQualifier () : Data(0 ) {}
225
228
226
229
static PointerAuthQualifier
227
- Create (int key , bool isAddressDiscriminated , unsigned extraDiscriminator ,
228
- PointerAuthenticationMode authenticationMode , bool isIsaPointer ,
229
- bool authenticatesNullValues ) {
230
- if (key == PointerAuthKeyNone)
231
- key = KeyNoneInternal;
232
- assert ((key >= 0 && key <= KeyNoneInternal) && " out-of-range key value" );
233
- return PointerAuthQualifier (key, isAddressDiscriminated, extraDiscriminator ,
234
- authenticationMode, isIsaPointer ,
235
- authenticatesNullValues );
230
+ Create (unsigned Key , bool IsAddressDiscriminated , unsigned ExtraDiscriminator ,
231
+ PointerAuthenticationMode AuthenticationMode , bool IsIsaPointer ,
232
+ bool AuthenticatesNullValues ) {
233
+ if (Key == PointerAuthKeyNone)
234
+ Key = KeyNoneInternal;
235
+ assert (Key <= KeyNoneInternal && " out-of-range key value" );
236
+ return PointerAuthQualifier (Key, IsAddressDiscriminated, ExtraDiscriminator ,
237
+ AuthenticationMode, IsIsaPointer ,
238
+ AuthenticatesNullValues );
236
239
}
237
240
238
241
bool isPresent () const {
@@ -291,9 +294,9 @@ class PointerAuthQualifier {
291
294
uint32_t getAsOpaqueValue () const { return Data; }
292
295
293
296
// Deserialize pointer-auth qualifiers from an opaque representation.
294
- static PointerAuthQualifier fromOpaqueValue (uint32_t opaque ) {
297
+ static PointerAuthQualifier fromOpaqueValue (uint32_t Opaque ) {
295
298
PointerAuthQualifier result;
296
- result.Data = opaque ;
299
+ result.Data = Opaque ;
297
300
return result;
298
301
}
299
302
@@ -420,10 +423,10 @@ class Qualifiers {
420
423
}
421
424
422
425
// Deserialize qualifiers from an opaque representation.
423
- static Qualifiers fromOpaqueValue (uint64_t opaque ) {
426
+ static Qualifiers fromOpaqueValue (uint64_t Opaque ) {
424
427
Qualifiers Qs;
425
- Qs.Mask = uint32_t (opaque );
426
- Qs.PtrAuth = PointerAuthQualifier::fromOpaqueValue (uint32_t (opaque >> 32 ));
428
+ Qs.Mask = uint32_t (Opaque );
429
+ Qs.PtrAuth = PointerAuthQualifier::fromOpaqueValue (uint32_t (Opaque >> 32 ));
427
430
return Qs;
428
431
}
429
432
0 commit comments