clang 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::PointerAuthQualifier Class Reference

Pointer-authentication qualifiers. More...

#include "clang/AST/Type.h"

Public Types

enum  { KeyNoneInternal = (1u << KeyBits) - 1 , MaxKey = KeyNoneInternal - 1 , MaxDiscriminator = (1u << DiscriminatorBits) - 1 }
 

Public Member Functions

 PointerAuthQualifier ()=default
 
bool isPresent () const
 
 operator bool () const
 
unsigned getKey () const
 
bool hasKeyNone () const
 
bool isAddressDiscriminated () const
 
unsigned getExtraDiscriminator () const
 
PointerAuthenticationMode getAuthenticationMode () const
 
bool isIsaPointer () const
 
bool authenticatesNullValues () const
 
PointerAuthQualifier withoutKeyNone () const
 
bool isEquivalent (PointerAuthQualifier Other) const
 
uint32_t getAsOpaqueValue () const
 
void Profile (llvm::FoldingSetNodeID &ID) const
 

Static Public Member Functions

static PointerAuthQualifier Create (unsigned Key, bool IsAddressDiscriminated, unsigned ExtraDiscriminator, PointerAuthenticationMode AuthenticationMode, bool IsIsaPointer, bool AuthenticatesNullValues)
 
static PointerAuthQualifier fromOpaqueValue (uint32_t Opaque)
 

Friends

bool operator== (PointerAuthQualifier Lhs, PointerAuthQualifier Rhs)
 
bool operator!= (PointerAuthQualifier Lhs, PointerAuthQualifier Rhs)
 

Detailed Description

Pointer-authentication qualifiers.

Definition at line 146 of file Type.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
KeyNoneInternal 
MaxKey 

The maximum supported pointer-authentication key.

MaxDiscriminator 

The maximum supported pointer-authentication discriminator.

Definition at line 219 of file Type.h.

Constructor & Destructor Documentation

◆ PointerAuthQualifier()

clang::PointerAuthQualifier::PointerAuthQualifier ( )
default

Referenced by Create(), and withoutKeyNone().

Member Function Documentation

◆ authenticatesNullValues()

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

Definition at line 279 of file Type.h.

References Data, and isPresent().

◆ Create()

static PointerAuthQualifier clang::PointerAuthQualifier::Create ( unsigned  Key,
bool  IsAddressDiscriminated,
unsigned  ExtraDiscriminator,
PointerAuthenticationMode  AuthenticationMode,
bool  IsIsaPointer,
bool  AuthenticatesNullValues 
)
inlinestatic

Definition at line 233 of file Type.h.

References KeyNoneInternal, clang::PointerAuthKeyNone, and PointerAuthQualifier().

◆ fromOpaqueValue()

static PointerAuthQualifier clang::PointerAuthQualifier::fromOpaqueValue ( uint32_t  Opaque)
inlinestatic

Definition at line 302 of file Type.h.

References clang::None, and clang::Result.

Referenced by clang::Qualifiers::getPointerAuth().

◆ getAsOpaqueValue()

uint32_t clang::PointerAuthQualifier::getAsOpaqueValue ( ) const
inline

Definition at line 299 of file Type.h.

References Data.

Referenced by clang::Qualifiers::setPointerAuth().

◆ getAuthenticationMode()

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

Definition at line 269 of file Type.h.

References Data.

Referenced by isPresent().

◆ getExtraDiscriminator()

unsigned clang::PointerAuthQualifier::getExtraDiscriminator ( ) const
inline

Definition at line 264 of file Type.h.

References Data, and isPresent().

Referenced by clang::CodeGen::ConstantEmitter::tryEmitConstantSignedPointer().

◆ getKey()

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

◆ hasKeyNone()

bool clang::PointerAuthQualifier::hasKeyNone ( ) const
inline

◆ isAddressDiscriminated()

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

Definition at line 259 of file Type.h.

References Data, and isPresent().

Referenced by clang::CodeGen::ConstantEmitter::tryEmitConstantSignedPointer().

◆ isEquivalent()

bool clang::PointerAuthQualifier::isEquivalent ( PointerAuthQualifier  Other) const
inline

Definition at line 295 of file Type.h.

References clang::Other, and withoutKeyNone().

◆ isIsaPointer()

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

Definition at line 274 of file Type.h.

References Data, and isPresent().

◆ isPresent()

bool clang::PointerAuthQualifier::isPresent ( ) const
inline

◆ operator bool()

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

Definition at line 250 of file Type.h.

References isPresent().

◆ Profile()

void clang::PointerAuthQualifier::Profile ( llvm::FoldingSetNodeID &  ID) const
inline

Definition at line 310 of file Type.h.

References Data, and ID.

◆ withoutKeyNone()

PointerAuthQualifier clang::PointerAuthQualifier::withoutKeyNone ( ) const
inline

Definition at line 284 of file Type.h.

References hasKeyNone(), and PointerAuthQualifier().

Referenced by isEquivalent().

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( PointerAuthQualifier  Lhs,
PointerAuthQualifier  Rhs 
)
friend

Definition at line 291 of file Type.h.

◆ operator==

bool operator== ( PointerAuthQualifier  Lhs,
PointerAuthQualifier  Rhs 
)
friend

Definition at line 288 of file Type.h.


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