|
clang 24.0.0git
|
An immutable set of FunctionEffects and possibly conditions attached to them. More...
#include "clang/AST/TypeBase.h"
Public Types | |
| using | iterator = FunctionEffectIterator<FunctionEffectsRef> |
Public Member Functions | |
| FunctionEffectsRef ()=default | |
| bool | empty () const |
| size_t | size () const |
| ArrayRef< FunctionEffect > | effects () const |
| ArrayRef< EffectConditionExpr > | conditions () const |
| iterator | begin () const |
| iterator | end () const |
| void | dump (llvm::raw_ostream &OS) const |
Static Public Member Functions | |
| static FunctionEffectsRef | get (QualType QT) |
| Extract the effects from a Type if it is a function, block, or member function pointer, or a reference or pointer to one. | |
| static FunctionEffectsRef | create (ArrayRef< FunctionEffect > FX, ArrayRef< EffectConditionExpr > Conds) |
| Asserts invariants. | |
Public Attributes | |
| friend | iterator |
Friends | |
| bool | operator== (const FunctionEffectsRef &LHS, const FunctionEffectsRef &RHS) |
| bool | operator!= (const FunctionEffectsRef &LHS, const FunctionEffectsRef &RHS) |
An immutable set of FunctionEffects and possibly conditions attached to them.
The effects and conditions reside in memory not managed by this object (typically, trailing objects in FunctionProtoType, or borrowed references from a FunctionEffectSet).
Invariants:
Also, if there are any conditions, at least one of those expressions will be dependent, but this is only asserted in the constructor of FunctionProtoType.
See also FunctionEffectSet, in Sema, which provides a mutable set.
Definition at line 5198 of file TypeBase.h.
Definition at line 5234 of file TypeBase.h.
|
default |
Referenced by create().
|
inline |
Definition at line 5236 of file TypeBase.h.
Referenced by clang::Sema::FunctionEffectDiffVector::FunctionEffectDiffVector(), and clang::FunctionEffectSet::getIntersection().
|
inline |
Definition at line 5232 of file TypeBase.h.
Referenced by clang::TreeTransform< Derived >::TransformFunctionProtoType().
|
static |
| LLVM_DUMP_METHOD void FunctionEffectsRef::dump | ( | llvm::raw_ostream & | OS | ) | const |
Definition at line 6102 of file Type.cpp.
Referenced by clang::FunctionEffectSet::dump().
|
inline |
Definition at line 5231 of file TypeBase.h.
Referenced by clang::FunctionEffectKindSet::insert().
|
inline |
Definition at line 5228 of file TypeBase.h.
Referenced by clang::FunctionEffectSet::getUnion(), and clang::Sema::maybeAddDeclWithEffects().
|
inline |
Definition at line 5237 of file TypeBase.h.
References size().
Referenced by clang::Sema::FunctionEffectDiffVector::FunctionEffectDiffVector(), and clang::FunctionEffectSet::getIntersection().
|
inlinestatic |
Extract the effects from a Type if it is a function, block, or member function pointer, or a reference or pointer to one.
Definition at line 9369 of file TypeBase.h.
References clang::Type::getAs(), clang::Type::getBaseElementTypeUnsafe(), clang::Type::getPointeeType(), clang::QualType::getTypePtr(), clang::Type::isArrayType(), and clang::QualType::isNull().
Referenced by clang::Sema::diagnoseFunctionEffectConversion().
|
inline |
Definition at line 5229 of file TypeBase.h.
Referenced by end().
|
friend |
Definition at line 5243 of file TypeBase.h.
|
friend |
Definition at line 5239 of file TypeBase.h.
Definition at line 5235 of file TypeBase.h.