clang: clang::FunctionEffect Class Reference (original) (raw)

Represents an abstract function effect, using just an enumeration describing its kind. More...

#include "[clang/AST/TypeBase.h](TypeBase%5F8h%5Fsource.html)"

Public Types
enum class Kind : uint8_t { NonBlocking, NonAllocating, Blocking, Allocating, Last = Allocating }
Identifies the particular effect. More...
enum FlagBit : Flags { FE_InferrableOnCallees = 0x1 , FE_ExcludeThrow = 0x2 , FE_ExcludeCatch = 0x4 , FE_ExcludeObjCMessageSend = 0x8 , FE_ExcludeStaticLocalVars = 0x10 , FE_ExcludeThreadLocalVars = 0x20 }
using Flags = unsigned
Flags describing some behaviors of the effect.
Public Member Functions
FunctionEffect (Kind K)
Kind kind () const
The kind of the effect.
Kind oppositeKind () const
Return the opposite kind, for effects which have opposites.
uint32_t toOpaqueInt32 () const
For serialization.
Flags flags () const
Flags describing some behaviors of the effect.
StringRef name () const
The description printed in diagnostics, e.g. 'nonblocking'.
std::optional< FunctionEffect > effectProhibitingInference (const Decl &Callee, FunctionEffectKindSet CalleeFX) const
Determine whether the effect is allowed to be inferred on the callee, which is either a FunctionDecl or BlockDecl.
bool shouldDiagnoseFunctionCall (bool Direct, FunctionEffectKindSet CalleeFX) const
Static Public Attributes
static constexpr size_t KindCount = static_cast<size_t>(Kind::Last) + 1

Represents an abstract function effect, using just an enumeration describing its kind.

Definition at line 4867 of file TypeBase.h.

Flags

Flags describing some behaviors of the effect.

Definition at line 4880 of file TypeBase.h.

FlagBit

Enumerator
FE_InferrableOnCallees
FE_ExcludeThrow
FE_ExcludeCatch
FE_ExcludeObjCMessageSend
FE_ExcludeStaticLocalVars
FE_ExcludeThreadLocalVars

Definition at line 4881 of file TypeBase.h.

Kind

enum class clang::FunctionEffect::Kind : uint8_t strong

Identifies the particular effect.

Enumerator
NonBlocking
NonAllocating
Blocking
Allocating
Last

Definition at line 4870 of file TypeBase.h.

clang::FunctionEffect::FunctionEffect ( Kind K) inlineexplicit

effectProhibitingInference()

flags()

Flags clang::FunctionEffect::flags ( ) const inline

Flags describing some behaviors of the effect.

Definition at line 4918 of file TypeBase.h.

References Allocating, Blocking, FE_ExcludeCatch, FE_ExcludeObjCMessageSend, FE_ExcludeStaticLocalVars, FE_ExcludeThreadLocalVars, FE_ExcludeThrow, FE_InferrableOnCallees, kind(), NonAllocating, and NonBlocking.

fromOpaqueInt32()

FunctionEffect clang::FunctionEffect::fromOpaqueInt32 ( uint32_t Value) inlinestatic

kind()

Kind clang::FunctionEffect::kind ( ) const inline

name()

StringRef FunctionEffect::name ( ) const

oppositeKind()

FunctionEffect::Kind FunctionEffect::oppositeKind ( ) const

shouldDiagnoseFunctionCall()

toOpaqueInt32()

uint32_t clang::FunctionEffect::toOpaqueInt32 ( ) const inline

operator!=

operator<

operator<<

raw_ostream & operator<< ( raw_ostream & OS, const FunctionEffect & Effect ) friend

operator==

KindCount

size_t clang::FunctionEffect::KindCount = static_cast<size_t>(Kind::Last) + 1 staticconstexpr

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