13#ifndef LLVM_CLANG_LIB_CODEGEN_CGPOINTERAUTHINFO_H
14#define LLVM_CLANG_LIB_CODEGEN_CGPOINTERAUTHINFO_H
18#include "llvm/IR/Type.h"
19#include "llvm/IR/Value.h"
27 unsigned IsIsaPointer : 1;
28 unsigned AuthenticatesNullValues : 1;
30 llvm::Value *Discriminator;
35 IsIsaPointer(
false), AuthenticatesNullValues(
false), Key(0),
36 Discriminator(nullptr) {}
38 bool IsIsaPointer,
bool AuthenticatesNullValues,
39 llvm::Value *Discriminator)
40 : AuthenticationMode(AuthenticationMode), IsIsaPointer(IsIsaPointer),
41 AuthenticatesNullValues(AuthenticatesNullValues), Key(Key),
42 Discriminator(Discriminator) {
43 assert(!Discriminator || Discriminator->getType()->isIntegerTy() ||
44 Discriminator->getType()->isPointerTy());
63 return AuthenticationMode;
86 return LHS.Key != RHS.Key || LHS.Discriminator != RHS.Discriminator ||
87 LHS.AuthenticationMode != RHS.AuthenticationMode;
Defines the clang::LangOptions interface.
C Language Family Type Representation.
bool authenticatesNullValues() const
friend bool operator==(const CGPointerAuthInfo &LHS, const CGPointerAuthInfo &RHS)
bool isIsaPointer() const
PointerAuthenticationMode getAuthenticationMode() const
friend bool operator!=(const CGPointerAuthInfo &LHS, const CGPointerAuthInfo &RHS)
llvm::Value * getDiscriminator() const
CGPointerAuthInfo(unsigned Key, PointerAuthenticationMode AuthenticationMode, bool IsIsaPointer, bool AuthenticatesNullValues, llvm::Value *Discriminator)
The JSON file list parser is used to communicate input to InstallAPI.
PointerAuthenticationMode