clang 22.0.0git
clang::PointerAuthSchema Class Reference

#include "clang/Basic/PointerAuthOptions.h"

Public Types

enum class  Kind : unsigned { None , ARM8_3 }
enum class  ARM8_3Key : unsigned { ASIA = 0 , ASIB = 1 , ASDA = 2 , ASDB = 3 }
 Hardware pointer-signing keys in ARM8.3. More...
enum class  Discrimination : unsigned { None , Type , Decl , Constant }
 Forms of extra discrimination. More...

Public Member Functions

 PointerAuthSchema ()
 PointerAuthSchema (ARM8_3Key Key, bool IsAddressDiscriminated, PointerAuthenticationMode AuthenticationMode, Discrimination OtherDiscrimination, std::optional< uint16_t > ConstantDiscriminatorOrNone=std::nullopt, bool IsIsaPointer=false, bool AuthenticatesNullValues=false)
 PointerAuthSchema (ARM8_3Key Key, bool IsAddressDiscriminated, Discrimination OtherDiscrimination, std::optional< uint16_t > ConstantDiscriminatorOrNone=std::nullopt, bool IsIsaPointer=false, bool AuthenticatesNullValues=false)
Kind getKind () const
 operator bool () const
bool isEnabled () const
bool isAddressDiscriminated () const
bool isIsaPointer () const
bool authenticatesNullValues () const
bool hasOtherDiscrimination () const
Discrimination getOtherDiscrimination () const
uint16_t getConstantDiscrimination () const
unsigned getKey () const
PointerAuthenticationMode getAuthenticationMode () const
ARM8_3Key getARM8_3Key () const

Detailed Description

Definition at line 61 of file PointerAuthOptions.h.

Member Enumeration Documentation

◆ ARM8_3Key

Hardware pointer-signing keys in ARM8.3.

These values are the same used in ptrauth.h.

Enumerator
ASIA 
ASIB 
ASDA 
ASDB 

Definition at line 71 of file PointerAuthOptions.h.

◆ Discrimination

Forms of extra discrimination.

Enumerator
None 

No additional discrimination.

Type 

Include a hash of the entity's type.

Decl 

Include a hash of the entity's identity.

Constant 

Discriminate using a constant value.

Definition at line 79 of file PointerAuthOptions.h.

◆ Kind

Enumerator
None 
ARM8_3 

Definition at line 63 of file PointerAuthOptions.h.

Constructor & Destructor Documentation

◆ PointerAuthSchema() [1/3]

clang::PointerAuthSchema::PointerAuthSchema ( )
inline

Definition at line 104 of file PointerAuthOptions.h.

References None.

Referenced by PointerAuthSchema().

◆ PointerAuthSchema() [2/3]

clang::PointerAuthSchema::PointerAuthSchema ( ARM8_3Key Key,
bool IsAddressDiscriminated,
PointerAuthenticationMode AuthenticationMode,
Discrimination OtherDiscrimination,
std::optional< uint16_t > ConstantDiscriminatorOrNone = std::nullopt,
bool IsIsaPointer = false,
bool AuthenticatesNullValues = false )
inline

Definition at line 106 of file PointerAuthOptions.h.

References ARM8_3, Constant, and getOtherDiscrimination().

◆ PointerAuthSchema() [3/3]

clang::PointerAuthSchema::PointerAuthSchema ( ARM8_3Key Key,
bool IsAddressDiscriminated,
Discrimination OtherDiscrimination,
std::optional< uint16_t > ConstantDiscriminatorOrNone = std::nullopt,
bool IsIsaPointer = false,
bool AuthenticatesNullValues = false )
inline

Definition at line 124 of file PointerAuthOptions.h.

References PointerAuthSchema(), and clang::SignAndAuth.

Member Function Documentation

◆ authenticatesNullValues()

bool clang::PointerAuthSchema::authenticatesNullValues ( ) const
inline

Definition at line 150 of file PointerAuthOptions.h.

References getKind(), and None.

Referenced by clang::CodeGen::CodeGenFunction::EmitPointerAuthInfo().

◆ getARM8_3Key()

ARM8_3Key clang::PointerAuthSchema::getARM8_3Key ( ) const
inline

Definition at line 183 of file PointerAuthOptions.h.

References ARM8_3, and getKind().

Referenced by getKey().

◆ getAuthenticationMode()

PointerAuthenticationMode clang::PointerAuthSchema::getAuthenticationMode ( ) const
inline

◆ getConstantDiscrimination()

uint16_t clang::PointerAuthSchema::getConstantDiscrimination ( ) const
inline

◆ getKey()

unsigned clang::PointerAuthSchema::getKey ( ) const
inline

◆ getKind()

Kind clang::PointerAuthSchema::getKind ( ) const
inline

◆ getOtherDiscrimination()

Discrimination clang::PointerAuthSchema::getOtherDiscrimination ( ) const
inline

◆ hasOtherDiscrimination()

bool clang::PointerAuthSchema::hasOtherDiscrimination ( ) const
inline

Definition at line 155 of file PointerAuthOptions.h.

References getOtherDiscrimination(), and None.

◆ isAddressDiscriminated()

bool clang::PointerAuthSchema::isAddressDiscriminated ( ) const
inline

◆ isEnabled()

bool clang::PointerAuthSchema::isEnabled ( ) const
inline

Definition at line 138 of file PointerAuthOptions.h.

References getKind(), and None.

Referenced by operator bool().

◆ isIsaPointer()

bool clang::PointerAuthSchema::isIsaPointer ( ) const
inline

Definition at line 145 of file PointerAuthOptions.h.

References getKind(), and None.

Referenced by clang::CodeGen::CodeGenFunction::EmitPointerAuthInfo().

◆ operator bool()

clang::PointerAuthSchema::operator bool ( ) const
inlineexplicit

Definition at line 136 of file PointerAuthOptions.h.

References isEnabled().


The documentation for this class was generated from the following file: