Lines Matching defs:Designator
1627 /// offsetof(record-type, member-designator). For example, given:
1661 /// \brief The source range that covers this part of the designator.
1664 /// \brief The data describing the designator, which comes in three
3680 /// designators, one array designator for @c [2] followed by one field
3681 /// designator for @c .y. The initalization expression will be 1.0.
3684 /// \brief Forward declaration of the Designator class.
3685 class Designator;
3706 Designator *Designators;
3710 const Designator *Designators,
3720 /// A field designator, e.g., ".x".
3725 /// initially constructed, a field designator will store an
3727 /// name, the field designator will instead store a FieldDecl*.
3737 /// An array or GNU array-range designator, e.g., "[9]" or "[10..15]".
3742 /// The location of the '[' starting the array range designator.
3747 /// The location of the ']' terminating the array range designator.
3751 /// @brief Represents a single C99 designator.
3753 /// @todo This class is infuriatingly similar to clang::Designator,
3757 class Designator {
3758 /// @brief The kind of designator this describes.
3766 /// A field designator, e.g., ".x".
3768 /// An array or GNU array-range designator, e.g., "[9]" or "[10..15]".
3774 Designator() {}
3776 /// @brief Initializes a field designator.
3777 Designator(const IdentifierInfo *FieldName, SourceLocation DotLoc,
3785 /// @brief Initializes an array designator.
3786 Designator(unsigned Index, SourceLocation LBracketLoc,
3795 /// @brief Initializes a GNU array-range designator.
3796 Designator(unsigned Index, SourceLocation LBracketLoc,
3812 assert(Kind == FieldDesignator && "Only valid on a field designator");
3820 assert(Kind == FieldDesignator && "Only valid on a field designator");
3825 assert(Kind == FieldDesignator && "Only valid on a field designator");
3830 assert(Kind == FieldDesignator && "Only valid on a field designator");
3836 "Only valid on an array or array-range designator");
3842 "Only valid on an array or array-range designator");
3848 designator");
3854 "Only valid on an array or array-range designator");
3872 static DesignatedInitExpr *Create(ASTContext &C, Designator *Designators,
3884 typedef Designator *designators_iterator;
3890 typedef const Designator *const_designators_iterator;
3914 Designator *getDesignator(unsigned Idx) { return &designators_begin()[Idx]; }
3916 void setDesignators(ASTContext &C, const Designator *Desigs,
3919 Expr *getArrayIndex(const Designator& D);
3920 Expr *getArrayRangeStart(const Designator& D);
3921 Expr *getArrayRangeEnd(const Designator& D);
3962 /// \brief Replaces the designator at index @p Idx with the series
3964 void ExpandDesignator(ASTContext &C, unsigned Idx, const Designator *First,
3965 const Designator *Last);