clang  14.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::Expr::Classification Class Reference

The return type of classify(). More...

#include "clang/AST/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_ConstQualifiedField,
  CM_ConstAddrSpace, 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. More...
 

Friends

class Expr
 

Detailed Description

The return type of classify().

Represents the C++11 expression taxonomy.

Definition at line 323 of file Expr.h.

Member Enumeration Documentation

◆ Kinds

The various classification results. Most of these mean prvalue.

Enumerator
CL_LValue 
CL_XValue 
CL_Function 
CL_Void 
CL_AddressableVoid 
CL_DuplicateVectorComponents 
CL_MemberFunction 
CL_SubObjCPropertySetting 
CL_ClassTemporary 
CL_ArrayTemporary 
CL_ObjCMessageRValue 
CL_PRValue 

Definition at line 326 of file Expr.h.

◆ ModifiableType

The results of modification testing.

Enumerator
CM_Untested 
CM_Modifiable 
CM_RValue 
CM_Function 
CM_LValueCast 
CM_NoSetterProperty 
CM_ConstQualified 
CM_ConstQualifiedField 
CM_ConstAddrSpace 
CM_ArrayType 
CM_IncompleteType 

Definition at line 341 of file Expr.h.

Constructor & Destructor Documentation

◆ Classification()

clang::Expr::Classification::Classification ( )
inline

Definition at line 366 of file Expr.h.

Referenced by makeSimpleLValue().

Member Function Documentation

◆ getKind()

Kinds clang::Expr::Classification::getKind ( ) const
inline

Definition at line 368 of file Expr.h.

Referenced by clang::Expr::ClassifyLValue(), and clang::Expr::isModifiableLvalue().

◆ getModifiable()

ModifiableType clang::Expr::Classification::getModifiable ( ) const
inline

Definition at line 369 of file Expr.h.

References CM_Untested.

Referenced by isModifiable(), and clang::Expr::isModifiableLvalue().

◆ isGLValue()

bool clang::Expr::Classification::isGLValue ( ) const
inline

Definition at line 375 of file Expr.h.

References CL_XValue.

◆ isLValue()

bool clang::Expr::Classification::isLValue ( ) const
inline

Definition at line 373 of file Expr.h.

References CL_LValue.

Referenced by clang::Sema::CheckPointerToMemberOperands().

◆ isModifiable()

bool clang::Expr::Classification::isModifiable ( ) const
inline

Definition at line 378 of file Expr.h.

References CM_Modifiable, and getModifiable().

◆ isPRValue()

bool clang::Expr::Classification::isPRValue ( ) const
inline

Definition at line 376 of file Expr.h.

References CL_Function.

Referenced by clang::Expr::isTemporaryObject().

◆ isRValue()

bool clang::Expr::Classification::isRValue ( ) const
inline

Definition at line 377 of file Expr.h.

References CL_XValue.

Referenced by clang::Sema::CheckPointerToMemberOperands().

◆ isXValue()

bool clang::Expr::Classification::isXValue ( ) const
inline

Definition at line 374 of file Expr.h.

References CL_XValue.

◆ makeSimpleLValue()

static Classification clang::Expr::Classification::makeSimpleLValue ( )
inlinestatic

Create a simple, modifiably lvalue.

Definition at line 381 of file Expr.h.

References CL_LValue, Classification(), and CM_Modifiable.

Referenced by clang::Sema::AddFunctionCandidates().

Friends And Related Function Documentation

◆ Expr

friend class Expr
friend

Definition at line 356 of file Expr.h.


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