clang 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::ObjCEncodeExpr Class Reference

ObjCEncodeExpr, used for @encode in Objective-C. More...

#include "clang/AST/ExprObjC.h"

Inheritance diagram for clang::ObjCEncodeExpr:
Inheritance graph
[legend]

Public Member Functions

 ObjCEncodeExpr (QualType T, TypeSourceInfo *EncodedType, SourceLocation at, SourceLocation rp)
 
 ObjCEncodeExpr (EmptyShell Empty)
 
SourceLocation getAtLoc () const
 
void setAtLoc (SourceLocation L)
 
SourceLocation getRParenLoc () const
 
void setRParenLoc (SourceLocation L)
 
QualType getEncodedType () const
 
TypeSourceInfogetEncodedTypeSourceInfo () const
 
void setEncodedTypeSourceInfo (TypeSourceInfo *EncType)
 
SourceLocation getBeginLoc () const LLVM_READONLY
 
SourceLocation getEndLoc () const LLVM_READONLY
 
child_range children ()
 
const_child_range children () const
 
- Public Member Functions inherited from clang::Expr
 Expr ()=delete
 
 Expr (const Expr &)=delete
 
 Expr (Expr &&)=delete
 
Exproperator= (const Expr &)=delete
 
Exproperator= (Expr &&)=delete
 
QualType getType () const
 
void setType (QualType t)
 
QualType getEnumCoercedType (const ASTContext &Ctx) const
 If this expression is an enumeration constant, return the enumeration type under which said constant was declared.
 
ExprDependence getDependence () const
 
bool isValueDependent () const
 Determines whether the value of this expression depends on.
 
bool isTypeDependent () const
 Determines whether the type of this expression depends on.
 
bool isInstantiationDependent () const
 Whether this expression is instantiation-dependent, meaning that it depends in some way on.
 
bool containsUnexpandedParameterPack () const
 Whether this expression contains an unexpanded parameter pack (for C++11 variadic templates).
 
bool containsErrors () const
 Whether this expression contains subexpressions which had errors, e.g.
 
SourceLocation getExprLoc () const LLVM_READONLY
 getExprLoc - Return the preferred location for the arrow when diagnosing a problem with a generic expression.
 
bool isReadIfDiscardedInCPlusPlus11 () const
 Determine whether an lvalue-to-rvalue conversion should implicitly be applied to this expression if it appears as a discarded-value expression in C++11 onwards.
 
bool isUnusedResultAWarning (const Expr *&WarnExpr, SourceLocation &Loc, SourceRange &R1, SourceRange &R2, ASTContext &Ctx) const
 isUnusedResultAWarning - Return true if this immediate expression should be warned about if the result is unused.
 
bool isLValue () const
 isLValue - True if this expression is an "l-value" according to the rules of the current language.
 
bool isPRValue () const
 
bool isXValue () const
 
bool isGLValue () const
 
LValueClassification ClassifyLValue (ASTContext &Ctx) const
 Reasons why an expression might not be an l-value.
 
isModifiableLvalueResult isModifiableLvalue (ASTContext &Ctx, SourceLocation *Loc=nullptr) const
 isModifiableLvalue - C99 6.3.2.1: an lvalue that does not have array type, does not have an incomplete type, does not have a const-qualified type, and if it is a structure or union, does not have any member (including, recursively, any member or element of all contained aggregates or unions) with a const-qualified type.
 
Classification Classify (ASTContext &Ctx) const
 Classify - Classify this expression according to the C++11 expression taxonomy.
 
Classification ClassifyModifiable (ASTContext &Ctx, SourceLocation &Loc) const
 ClassifyModifiable - Classify this expression according to the C++11 expression taxonomy, and see if it is valid on the left side of an assignment.
 
FPOptions getFPFeaturesInEffect (const LangOptions &LO) const
 Returns the set of floating point options that apply to this expression.
 
ExprValueKind getValueKind () const
 getValueKind - The value kind that this expression produces.
 
ExprObjectKind getObjectKind () const
 getObjectKind - The object kind that this expression produces.
 
bool isOrdinaryOrBitFieldObject () const
 
void setValueKind (ExprValueKind Cat)
 setValueKind - Set the value kind produced by this expression.
 
void setObjectKind (ExprObjectKind Cat)
 setObjectKind - Set the object kind produced by this expression.
 
bool refersToBitField () const
 Returns true if this expression is a gl-value that potentially refers to a bit-field.
 
FieldDeclgetSourceBitField ()
 If this expression refers to a bit-field, retrieve the declaration of that bit-field.
 
EnumConstantDeclgetEnumConstantDecl ()
 If this expression refers to an enum constant, retrieve its declaration.
 
const EnumConstantDeclgetEnumConstantDecl () const
 
const FieldDeclgetSourceBitField () const
 
DeclgetReferencedDeclOfCallee ()
 
const DeclgetReferencedDeclOfCallee () const
 
const ObjCPropertyRefExprgetObjCProperty () const
 If this expression is an l-value for an Objective C property, find the underlying property reference expression.
 
bool isObjCSelfExpr () const
 Check if this expression is the ObjC 'self' implicit parameter.
 
bool refersToVectorElement () const
 Returns whether this expression refers to a vector element.
 
bool refersToMatrixElement () const
 Returns whether this expression refers to a matrix element.
 
bool refersToGlobalRegisterVar () const
 Returns whether this expression refers to a global register variable.
 
bool hasPlaceholderType () const
 Returns whether this expression has a placeholder type.
 
bool hasPlaceholderType (BuiltinType::Kind K) const
 Returns whether this expression has a specific placeholder type.
 
bool isKnownToHaveBooleanValue (bool Semantic=true) const
 isKnownToHaveBooleanValue - Return true if this is an integer expression that is known to return 0 or 1.
 
bool isFlexibleArrayMemberLike (ASTContext &Context, LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel, bool IgnoreTemplateOrMacroSubstitution=false) const
 Check whether this array fits the idiom of a flexible array member, depending on the value of -fstrict-flex-array.
 
std::optional< llvm::APSInt > getIntegerConstantExpr (const ASTContext &Ctx, SourceLocation *Loc=nullptr) const
 isIntegerConstantExpr - Return the value if this expression is a valid integer constant expression.
 
bool isIntegerConstantExpr (const ASTContext &Ctx, SourceLocation *Loc=nullptr) const
 
bool isCXX98IntegralConstantExpr (const ASTContext &Ctx) const
 isCXX98IntegralConstantExpr - Return true if this expression is an integral constant expression in C++98.
 
bool isCXX11ConstantExpr (const ASTContext &Ctx, APValue *Result=nullptr, SourceLocation *Loc=nullptr) const
 isCXX11ConstantExpr - Return true if this expression is a constant expression in C++11.
 
bool isConstantInitializer (ASTContext &Ctx, bool ForRef, const Expr **Culprit=nullptr) const
 isConstantInitializer - Returns true if this expression can be emitted to IR as a constant, and thus can be used as a constant initializer in C.
 
const ValueDeclgetAsBuiltinConstantDeclRef (const ASTContext &Context) const
 If this expression is an unambiguous reference to a single declaration, in the style of __builtin_function_start, return that declaration.
 
bool EvaluateAsRValue (EvalResult &Result, const ASTContext &Ctx, bool InConstantContext=false) const
 EvaluateAsRValue - Return true if this is a constant which we can fold to an rvalue using any crazy technique (that has nothing to do with language standards) that we want to, even if the expression has side-effects.
 
bool EvaluateAsBooleanCondition (bool &Result, const ASTContext &Ctx, bool InConstantContext=false) const
 EvaluateAsBooleanCondition - Return true if this is a constant which we can fold and convert to a boolean condition using any crazy technique that we want to, even if the expression has side-effects.
 
bool EvaluateAsInt (EvalResult &Result, const ASTContext &Ctx, SideEffectsKind AllowSideEffects=SE_NoSideEffects, bool InConstantContext=false) const
 EvaluateAsInt - Return true if this is a constant which we can fold and convert to an integer, using any crazy technique that we want to.
 
bool EvaluateAsFloat (llvm::APFloat &Result, const ASTContext &Ctx, SideEffectsKind AllowSideEffects=SE_NoSideEffects, bool InConstantContext=false) const
 EvaluateAsFloat - Return true if this is a constant which we can fold and convert to a floating point value, using any crazy technique that we want to.