clang API Documentation
The return type of classify(). Represents the C++11 expression taxonomy. More...
#include <Expr.h>
Public Types | |
enum | Kinds { CL_LValue, CL_XValue, CL_Function, CL_Void, CL_AddressableVoid, CL_DuplicateVectorComponents, CL_MemberFunction, CL_SubObjCPropertySetting, CL_ClassTemporary, CL_ArrayTemporary, CL_ObjCMessageRValue, CL_PRValue } |
The various classification results. Most of these mean prvalue. More... | |
enum | ModifiableType { CM_Untested, CM_Modifiable, CM_RValue, CM_Function, CM_LValueCast, CM_NoSetterProperty, CM_ConstQualified, CM_ArrayType, CM_IncompleteType } |
The results of modification testing. More... | |
Public Member Functions | |
Classification () | |
Kinds | getKind () const |
ModifiableType | getModifiable () const |
bool | isLValue () const |
bool | isXValue () const |
bool | isGLValue () const |
bool | isPRValue () const |
bool | isRValue () const |
bool | isModifiable () const |
Static Public Member Functions | |
static Classification | makeSimpleLValue () |
Create a simple, modifiably lvalue. | |
Friends | |
class | Expr |
The return type of classify(). Represents the C++11 expression taxonomy.
clang::Expr::Classification::Classification | ( | ) | [inline] |
Definition at line 342 of file Expr.h.
Referenced by makeSimpleLValue().
Kinds clang::Expr::Classification::getKind | ( | ) | const [inline] |
Definition at line 344 of file Expr.h.
Referenced by clang::Expr::ClassifyLValue(), and clang::Expr::isModifiableLvalue().
ModifiableType clang::Expr::Classification::getModifiable | ( | ) | const [inline] |
Definition at line 345 of file Expr.h.
References CM_Untested.
Referenced by isModifiable(), and clang::Expr::isModifiableLvalue().
bool clang::Expr::Classification::isGLValue | ( | ) | const [inline] |
bool clang::Expr::Classification::isLValue | ( | ) | const [inline] |
Definition at line 349 of file Expr.h.
References CL_LValue.
Referenced by AdjustFunctionParmAndArgTypesForDeduction(), clang::Sema::CheckPointerToMemberOperands(), TryObjectArgumentInitialization(), TryReferenceInit(), and TryReferenceInitializationCore().
bool clang::Expr::Classification::isModifiable | ( | ) | const [inline] |
Definition at line 354 of file Expr.h.
References CM_Modifiable, and getModifiable().
bool clang::Expr::Classification::isPRValue | ( | ) | const [inline] |
Definition at line 352 of file Expr.h.
References CL_Function.
Referenced by clang::canTypeidThrow(), clang::Expr::isTemporaryObject(), TryReferenceInit(), and TryReferenceInitializationCore().
bool clang::Expr::Classification::isRValue | ( | ) | const [inline] |
Definition at line 353 of file Expr.h.
References CL_XValue.
Referenced by clang::Sema::CheckPointerToMemberOperands(), TryObjectArgumentInitialization(), TryReferenceInit(), and TryReferenceInitializationCore().
bool clang::Expr::Classification::isXValue | ( | ) | const [inline] |
Definition at line 350 of file Expr.h.
References CL_XValue.
Referenced by TryReferenceInit(), and TryReferenceInitializationCore().
static Classification clang::Expr::Classification::makeSimpleLValue | ( | ) | [inline, static] |
Create a simple, modifiably lvalue.
Definition at line 357 of file Expr.h.
References CL_LValue, Classification(), and CM_Modifiable.
Referenced by clang::Sema::AddOverloadCandidate(), clang::Sema::BuildCallToMemberFunction(), and clang::Sema::PerformObjectArgumentInitialization().