class DesignatedInitExpr
Declaration
class DesignatedInitExpr : public Expr, private TrailingObjects { /* full declaration omitted */ };
Description
Represents a C99 designated initializer expression. A designated initializer expression (C99 6.7.8) contains one or more designators (which can be field designators, array designators, or GNU array-range designators) followed by an expression that initializes the field or element(s) that the designators refer to. For example, given: The InitListExpr contains three DesignatedInitExprs, the first of which covers @c [2].y=1.0. This DesignatedInitExpr will have two designators, one array designator for @c [2] followed by one field designator for @c .y. The initialization expression will be 1.0.
Declared at: clang/include/clang/AST/Expr.h:5029
Inherits from: Expr, TrailingObjects
Member Variables
- private clang::SourceLocation EqualOrColonLoc
- The location of the '=' or ':' prior to the actual initializer expression.
- private unsigned int GNUSyntax
- Whether this designated initializer used the GNU deprecated syntax rather than the C99 '=' syntax.
- private unsigned int NumDesignators
- The number of designators in this initializer expression.
- private unsigned int NumSubExprs
- The number of subexpressions of this initializer expression, which contains both the initializer and any additional expressions used by array and array-range designators.
- private clang::DesignatedInitExpr::Designator* Designators
- The designators in this designated initialization expression.
Inherited from Stmt:
Method Overview
- public static clang::DesignatedInitExpr * Create(const clang::ASTContext & C, llvm::ArrayRef<Designator> Designators, ArrayRef<clang::Expr *> IndexExprs, clang::SourceLocation EqualOrColonLoc, bool GNUSyntax, clang::Expr * Init)
- public static clang::DesignatedInitExpr * CreateEmpty(const clang::ASTContext & C, unsigned int NumIndexExprs)
- private DesignatedInitExpr(unsigned int NumSubExprs)
- private DesignatedInitExpr(const clang::ASTContext & C, clang::QualType Ty, llvm::ArrayRef<Designator> Designators, clang::SourceLocation EqualOrColonLoc, bool GNUSyntax, ArrayRef<clang::Expr *> IndexExprs, clang::Expr * Init)
- public void ExpandDesignator(const clang::ASTContext & C, unsigned int Idx, const clang::DesignatedInitExpr::Designator * First, const clang::DesignatedInitExpr::Designator * Last)
- public clang::Stmt::const_child_range children() const
- public clang::Stmt::child_range children()
- public static bool classof(const clang::Stmt * T)
- public llvm::MutableArrayRef<Designator> designators()
- public llvm::ArrayRef<Designator> designators() const
- public clang::Expr * getArrayIndex(const clang::DesignatedInitExpr::Designator & D) const
- public clang::Expr * getArrayRangeEnd(const clang::DesignatedInitExpr::Designator & D) const
- public clang::Expr * getArrayRangeStart(const clang::DesignatedInitExpr::Designator & D) const
- public clang::SourceLocation getBeginLoc() const
- public const clang::DesignatedInitExpr::Designator * getDesignator(unsigned int Idx) const
- public clang::DesignatedInitExpr::Designator * getDesignator(unsigned int Idx)
- public clang::SourceRange getDesignatorsSourceRange() const
- public clang::SourceLocation getEndLoc() const
- public clang::SourceLocation getEqualOrColonLoc() const
- public clang::Expr * getInit() const
- public unsigned int getNumSubExprs() const
- public clang::Expr * getSubExpr(unsigned int Idx) const
- public bool isDirectInit() const
- public void setDesignators(const clang::ASTContext & C, const clang::DesignatedInitExpr::Designator * Desigs, unsigned int NumDesigs)
- public void setEqualOrColonLoc(clang::SourceLocation L)
- public void setGNUSyntax(bool GNU)
- public void setInit(clang::Expr * init)
- public void setSubExpr(unsigned int Idx, clang::Expr * E)
- public unsigned int size() const
- public bool usesGNUSyntax() const
Inherited from Expr:
- public Classify
- public ClassifyLValue
- public ClassifyModifiable
- public EvaluateAsBooleanCondition
- public EvaluateAsConstantExpr
- public EvaluateAsFixedPoint
- public EvaluateAsFloat
- public EvaluateAsInitializer
- public EvaluateAsInt
- public EvaluateAsLValue
- public EvaluateAsRValue
- public EvaluateForOverflow
- public EvaluateKnownConstInt
- public EvaluateKnownConstIntCheckOverflow
- public EvaluateWithSubstitution
- public HasSideEffects
- public IgnoreCasts
- public IgnoreCasts
- public IgnoreConversionOperatorSingleStep
- public IgnoreConversionOperatorSingleStep
- public IgnoreImpCasts
- public IgnoreImpCasts
- public IgnoreImplicit
- public IgnoreImplicit
- public IgnoreImplicitAsWritten
- public IgnoreImplicitAsWritten
- public IgnoreParenBaseCasts
- public IgnoreParenBaseCasts
- public IgnoreParenCasts
- public IgnoreParenCasts
- public IgnoreParenImpCasts
- public IgnoreParenImpCasts
- public IgnoreParenLValueCasts
- public IgnoreParenLValueCasts
- public IgnoreParenNoopCasts
- public IgnoreParenNoopCasts
- public IgnoreParens
- public IgnoreParens
- public IgnoreUnlessSpelledInSource
- public IgnoreUnlessSpelledInSource
- public classof
- public containsErrors
- public containsUnexpandedParameterPack
- public findBoundMemberType
- public getAsBuiltinConstantDeclRef
- public getBestDynamicClassType
- public getBestDynamicClassTypeExpr
- public getDependence
- public getExprLoc
- public getFPFeaturesInEffect
- public getIntegerConstantExpr
- public getObjCProperty
- public getObjectKind
- public getReferencedDeclOfCallee
- public getReferencedDeclOfCallee
- public getSourceBitField
- public getSourceBitField
- public getType
- public getValueKind
- public getValueKindForType
- public hasAnyTypeDependentArguments
- public hasNonTrivialCall
- public hasPlaceholderType
- public hasPlaceholderType
- public isBoundMemberFunction
- public isCXX11ConstantExpr
- public isCXX98IntegralConstantExpr
- public isConstantInitializer
- public isDefaultArgument
- public isEvaluatable
- public isGLValue
- public isImplicitCXXThis
- public isInstantiationDependent
- public isIntegerConstantExpr
- public isKnownToHaveBooleanValue
- public isLValue
- public isModifiableLvalue
- public isNullPointerConstant
- public isOBJCGCCandidate
- public isObjCSelfExpr
- public isOrdinaryOrBitFieldObject
- public isPRValue
- public isPotentialConstantExpr
- public isPotentialConstantExprUnevaluated
- public isReadIfDiscardedInCPlusPlus11
- public isSameComparisonOperand
- public isTemporaryObject
- public isTypeDependent
- public isUnusedResultAWarning
- public isValueDependent
- public isXValue
- public refersToBitField
- public refersToGlobalRegisterVar
- public refersToMatrixElement
- public refersToVectorElement
- protected setDependence
- public setObjectKind
- public setType
- public setValueKind
- public skipRValueSubobjectAdjustments
- public skipRValueSubobjectAdjustments
- public tryEvaluateObjectSize
- public tryEvaluateStrLen
Inherited from ValueStmt:
Inherited from Stmt:
- public EnableStatistics
- public IgnoreContainers
- public IgnoreContainers
- public PrintStats
- public ProcessODRHash
- public Profile
- public addStmtClass
- public child_begin
- public child_begin
- public child_end
- public child_end
- public children
- public children
- public determineLikelihoodConflict
- public dump
- public dump
- public dumpColor
- public dumpPretty
- public getBeginLoc
- public getEndLoc
- public getID
- public getLikelihood
- public getLikelihood
- public getLikelihood
- public getLikelihoodAttr
- public getSourceRange
- public getStmtClass
- public getStmtClassName
- public printJson
- public printPretty
- public printPrettyControlled
- public stripLabelLikeStatements
- public stripLabelLikeStatements
- public viewAST
Methods
¶static clang::DesignatedInitExpr* Create(
const clang::ASTContext& C,
llvm::ArrayRef<Designator> Designators,
ArrayRef<clang::Expr*> IndexExprs,
clang::SourceLocation EqualOrColonLoc,
bool GNUSyntax,
clang::Expr* Init)
static clang::DesignatedInitExpr* Create(
const clang::ASTContext& C,
llvm::ArrayRef<Designator> Designators,
ArrayRef<clang::Expr*> IndexExprs,
clang::SourceLocation EqualOrColonLoc,
bool GNUSyntax,
clang::Expr* Init)
Declared at: clang/include/clang/AST/Expr.h:5222
Parameters
- const clang::ASTContext& C
- llvm::ArrayRef<Designator> Designators
- ArrayRef<clang::Expr*> IndexExprs
- clang::SourceLocation EqualOrColonLoc
- bool GNUSyntax
- clang::Expr* Init
¶static clang::DesignatedInitExpr* CreateEmpty(
const clang::ASTContext& C,
unsigned int NumIndexExprs)
static clang::DesignatedInitExpr* CreateEmpty(
const clang::ASTContext& C,
unsigned int NumIndexExprs)
Declared at: clang/include/clang/AST/Expr.h:5228
Parameters
- const clang::ASTContext& C
- unsigned int NumIndexExprs
¶DesignatedInitExpr(unsigned int NumSubExprs)
DesignatedInitExpr(unsigned int NumSubExprs)
Declared at: clang/include/clang/AST/Expr.h:5062
Parameters
- unsigned int NumSubExprs
¶DesignatedInitExpr(
const clang::ASTContext& C,
clang::QualType Ty,
llvm::ArrayRef<Designator> Designators,
clang::SourceLocation EqualOrColonLoc,
bool GNUSyntax,
ArrayRef<clang::Expr*> IndexExprs,
clang::Expr* Init)
DesignatedInitExpr(
const clang::ASTContext& C,
clang::QualType Ty,
llvm::ArrayRef<Designator> Designators,
clang::SourceLocation EqualOrColonLoc,
bool GNUSyntax,
ArrayRef<clang::Expr*> IndexExprs,
clang::Expr* Init)
Declared at: clang/include/clang/AST/Expr.h:5057
Parameters
- const clang::ASTContext& C
- clang::QualType Ty
- llvm::ArrayRef<Designator> Designators
- clang::SourceLocation EqualOrColonLoc
- bool GNUSyntax
- ArrayRef<clang::Expr*> IndexExprs
- clang::Expr* Init
¶void ExpandDesignator(
const clang::ASTContext& C,
unsigned int Idx,
const clang::DesignatedInitExpr::Designator*
First,
const clang::DesignatedInitExpr::Designator*
Last)
void ExpandDesignator(
const clang::ASTContext& C,
unsigned int Idx,
const clang::DesignatedInitExpr::Designator*
First,
const clang::DesignatedInitExpr::Designator*
Last)
Description
Replaces the designator at index @p Idx with the series of designators in [First, Last).
Declared at: clang/include/clang/AST/Expr.h:5296
Parameters
- const clang::ASTContext& C
- unsigned int Idx
- const clang::DesignatedInitExpr::Designator* First
- const clang::DesignatedInitExpr::Designator* Last
¶clang::Stmt::const_child_range children() const
clang::Stmt::const_child_range children() const
Declared at: clang/include/clang/AST/Expr.h:5313
¶clang::Stmt::child_range children()
clang::Stmt::child_range children()
Declared at: clang/include/clang/AST/Expr.h:5309
¶static bool classof(const clang::Stmt* T)
static bool classof(const clang::Stmt* T)
Declared at: clang/include/clang/AST/Expr.h:5304
Parameters
- const clang::Stmt* T
¶llvm::MutableArrayRef<Designator> designators()
llvm::MutableArrayRef<Designator> designators()
Declared at: clang/include/clang/AST/Expr.h:5235
¶llvm::ArrayRef<Designator> designators() const
llvm::ArrayRef<Designator> designators() const
Declared at: clang/include/clang/AST/Expr.h:5239
¶clang::Expr* getArrayIndex(
const clang::DesignatedInitExpr::Designator&
D) const
clang::Expr* getArrayIndex(
const clang::DesignatedInitExpr::Designator&
D) const
Declared at: clang/include/clang/AST/Expr.h:5251
Parameters
¶clang::Expr* getArrayRangeEnd(
const clang::DesignatedInitExpr::Designator&
D) const
clang::Expr* getArrayRangeEnd(
const clang::DesignatedInitExpr::Designator&
D) const
Declared at: clang/include/clang/AST/Expr.h:5253
Parameters
¶clang::Expr* getArrayRangeStart(
const clang::DesignatedInitExpr::Designator&
D) const
clang::Expr* getArrayRangeStart(
const clang::DesignatedInitExpr::Designator&
D) const
Declared at: clang/include/clang/AST/Expr.h:5252
Parameters
¶clang::SourceLocation getBeginLoc() const
clang::SourceLocation getBeginLoc() const
Declared at: clang/include/clang/AST/Expr.h:5301
¶const clang::DesignatedInitExpr::Designator*
getDesignator(unsigned int Idx) const
const clang::DesignatedInitExpr::Designator*
getDesignator(unsigned int Idx) const
Declared at: clang/include/clang/AST/Expr.h:5244
Parameters
- unsigned int Idx
¶clang::DesignatedInitExpr::Designator*
getDesignator(unsigned int Idx)
clang::DesignatedInitExpr::Designator*
getDesignator(unsigned int Idx)
Declared at: clang/include/clang/AST/Expr.h:5243
Parameters
- unsigned int Idx
¶clang::SourceRange getDesignatorsSourceRange()
const
clang::SourceRange getDesignatorsSourceRange()
const
Declared at: clang/include/clang/AST/Expr.h:5299
¶clang::SourceLocation getEndLoc() const
clang::SourceLocation getEndLoc() const
Declared at: clang/include/clang/AST/Expr.h:5302
¶clang::SourceLocation getEqualOrColonLoc() const
clang::SourceLocation getEqualOrColonLoc() const
Description
Retrieve the location of the '=' that precedes the initializer value itself, if present.
Declared at: clang/include/clang/AST/Expr.h:5257
¶clang::Expr* getInit() const
clang::Expr* getInit() const
Description
Retrieve the initializer value.
Declared at: clang/include/clang/AST/Expr.h:5270
¶unsigned int getNumSubExprs() const
unsigned int getNumSubExprs() const
Description
Retrieve the total number of subexpressions in this designated initializer expression, including the actual initialized value and any expressions that occur within array and array-range designators.
Declared at: clang/include/clang/AST/Expr.h:5282
¶clang::Expr* getSubExpr(unsigned int Idx) const
clang::Expr* getSubExpr(unsigned int Idx) const
Declared at: clang/include/clang/AST/Expr.h:5284
Parameters
- unsigned int Idx
¶bool isDirectInit() const
bool isDirectInit() const
Description
Whether this designated initializer should result in direct-initialization of the designated subobject (eg, '{.foo{1, 2, 3}}').
Declared at: clang/include/clang/AST/Expr.h:5262
¶void setDesignators(
const clang::ASTContext& C,
const clang::DesignatedInitExpr::Designator*
Desigs,
unsigned int NumDesigs)
void setDesignators(
const clang::ASTContext& C,
const clang::DesignatedInitExpr::Designator*
Desigs,
unsigned int NumDesigs)
Declared at: clang/include/clang/AST/Expr.h:5248
Parameters
- const clang::ASTContext& C
- const clang::DesignatedInitExpr::Designator* Desigs
- unsigned int NumDesigs
¶void setEqualOrColonLoc(clang::SourceLocation L)
void setEqualOrColonLoc(clang::SourceLocation L)
Declared at: clang/include/clang/AST/Expr.h:5258
Parameters
¶void setGNUSyntax(bool GNU)
void setGNUSyntax(bool GNU)
Declared at: clang/include/clang/AST/Expr.h:5267
Parameters
- bool GNU
¶void setInit(clang::Expr* init)
void setInit(clang::Expr* init)
Declared at: clang/include/clang/AST/Expr.h:5274
Parameters
- clang::Expr* init
¶void setSubExpr(unsigned int Idx, clang::Expr* E)
void setSubExpr(unsigned int Idx, clang::Expr* E)
Declared at: clang/include/clang/AST/Expr.h:5289
Parameters
- unsigned int Idx
- clang::Expr* E
¶unsigned int size() const
unsigned int size() const
Description
Returns the number of designators in this initializer.
Declared at: clang/include/clang/AST/Expr.h:5232
¶bool usesGNUSyntax() const
bool usesGNUSyntax() const
Description
Determines whether this designated initializer used the deprecated GNU syntax for designated initializers.
Declared at: clang/include/clang/AST/Expr.h:5266