clang 23.0.0git
clang::Designator Class Reference

Designator - A designator in a C99 designated initializer. More...

#include "clang/Sema/Designator.h"

Public Member Functions

bool isFieldDesignator () const
bool isArrayDesignator () const
bool isArrayRangeDesignator () const
const IdentifierInfogetFieldDecl () const
SourceLocation getDotLoc () const
SourceLocation getFieldLoc () const
SourceLocation getBeginLoc () const
 Returns the start location of this designator.
SourceLocation getEndLoc () const
 Returns the end location of this designator.
ExprgetArrayIndex () const
SourceLocation getLBracketLoc () const
SourceLocation getRBracketLoc () const
ExprgetArrayRangeStart () const
ExprgetArrayRangeEnd () const
SourceLocation getEllipsisLoc () const
void setRBracketLoc (SourceLocation RBracketLoc) const

Static Public Member Functions

static Designator CreateFieldDesignator (const IdentifierInfo *FieldName, SourceLocation DotLoc, SourceLocation FieldLoc)
 Creates a field designator.
static Designator CreateArrayDesignator (Expr *Index, SourceLocation LBracketLoc)
 Creates an array designator.
static Designator CreateArrayRangeDesignator (Expr *Start, Expr *End, SourceLocation LBracketLoc, SourceLocation EllipsisLoc)
 Creates a GNU array-range designator.

Detailed Description

Designator - A designator in a C99 designated initializer.

This class is a discriminated union which holds the various different sorts of designators possible. A Designation is an array of these. An example of a designator are things like this:

 [8] .field [47]        // C99 designation: 3 designators
 [8 ... 47]  field:     // GNU extensions: 2 designators

These occur in initializers, e.g.:

 int a[10] = {2, 4, [8]=9, 10};

Definition at line 38 of file Designator.h.

Member Function Documentation

◆ CreateArrayDesignator()

Designator clang::Designator::CreateArrayDesignator ( Expr * Index,
SourceLocation LBracketLoc )
inlinestatic

Creates an array designator.

Definition at line 155 of file Designator.h.

References ArrayInfo.

◆ CreateArrayRangeDesignator()

Designator clang::Designator::CreateArrayRangeDesignator ( Expr * Start,
Expr * End,
SourceLocation LBracketLoc,
SourceLocation EllipsisLoc )
inlinestatic

Creates a GNU array-range designator.

Definition at line 185 of file Designator.h.

References ArrayRangeInfo.

◆ CreateFieldDesignator()

Designator clang::Designator::CreateFieldDesignator ( const IdentifierInfo * FieldName,
SourceLocation DotLoc,
SourceLocation FieldLoc )
inlinestatic

Creates a field designator.

Definition at line 115 of file Designator.h.

References FieldInfo.

Referenced by ExpandAnonymousFieldDesignator().

◆ getArrayIndex()

Expr * clang::Designator::getArrayIndex ( ) const
inline

◆ getArrayRangeEnd()

Expr * clang::Designator::getArrayRangeEnd ( ) const
inline

Definition at line 199 of file Designator.h.

References ArrayRangeInfo, and isArrayRangeDesignator().

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

◆ getArrayRangeStart()

Expr * clang::Designator::getArrayRangeStart ( ) const
inline

Definition at line 194 of file Designator.h.

References ArrayRangeInfo, and isArrayRangeDesignator().

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

◆ getBeginLoc()

SourceLocation clang::Designator::getBeginLoc ( ) const
inline

Returns the start location of this designator.

A leading field designator has no '.', so its location collapses to the field-name location.

Definition at line 140 of file Designator.h.

References getDotLoc(), getFieldLoc(), getLBracketLoc(), isFieldDesignator(), and clang::SourceLocation::isValid().

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

◆ getDotLoc()

SourceLocation clang::Designator::getDotLoc ( ) const
inline

Definition at line 128 of file Designator.h.

References FieldInfo, and isFieldDesignator().

Referenced by clang::Sema::ActOnDesignatedInitializer(), and getBeginLoc().

◆ getEllipsisLoc()

SourceLocation clang::Designator::getEllipsisLoc ( ) const
inline

Definition at line 204 of file Designator.h.

References ArrayRangeInfo, and isArrayRangeDesignator().

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

◆ getEndLoc()

SourceLocation clang::Designator::getEndLoc ( ) const
inline

Returns the end location of this designator.

Definition at line 147 of file Designator.h.

References getFieldLoc(), getRBracketLoc(), and isFieldDesignator().

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

◆ getFieldDecl()

const IdentifierInfo * clang::Designator::getFieldDecl ( ) const
inline

◆ getFieldLoc()

SourceLocation clang::Designator::getFieldLoc ( ) const
inline

Definition at line 133 of file Designator.h.

References FieldInfo, and isFieldDesignator().

Referenced by clang::Sema::ActOnDesignatedInitializer(), getBeginLoc(), and getEndLoc().

◆ getLBracketLoc()

SourceLocation clang::Designator::getLBracketLoc ( ) const
inline

◆ getRBracketLoc()

SourceLocation clang::Designator::getRBracketLoc ( ) const
inline

◆ isArrayDesignator()

◆ isArrayRangeDesignator()

◆ isFieldDesignator()

bool clang::Designator::isFieldDesignator ( ) const
inline

◆ setRBracketLoc()

void clang::Designator::setRBracketLoc ( SourceLocation RBracketLoc) const
inline

Definition at line 209 of file Designator.h.

References ArrayInfo, ArrayRangeInfo, isArrayDesignator(), and isArrayRangeDesignator().

Member Data Documentation

◆ ArrayInfo

ArrayDesignatorInfo clang::Designator::ArrayInfo

◆ ArrayRangeInfo

ArrayRangeDesignatorInfo clang::Designator::ArrayRangeInfo

◆ FieldInfo

FieldDesignatorInfo clang::Designator::FieldInfo

Definition at line 99 of file Designator.h.

Referenced by CreateFieldDesignator(), getDotLoc(), getFieldDecl(), and getFieldLoc().


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