diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/AST/Expr.h | 30 | ||||
-rw-r--r-- | include/clang/Frontend/PCHBitCodes.h | 10 |
2 files changed, 34 insertions, 6 deletions
diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h index 5634bf4d62..921aff1001 100644 --- a/include/clang/AST/Expr.h +++ b/include/clang/AST/Expr.h @@ -1844,8 +1844,19 @@ public: BuiltinLoc(BLoc), RParenLoc(RPLoc) { } + /// \brief Create an empty __builtin_va_start expression. + explicit VAArgExpr(EmptyShell Empty) : Expr(VAArgExprClass, Empty) { } + const Expr *getSubExpr() const { return cast<Expr>(Val); } Expr *getSubExpr() { return cast<Expr>(Val); } + void setSubExpr(Expr *E) { Val = E; } + + SourceLocation getBuiltinLoc() const { return BuiltinLoc; } + void setBuiltinLoc(SourceLocation L) { BuiltinLoc = L; } + + SourceLocation getRParenLoc() const { return RParenLoc; } + void setRParenLoc(SourceLocation L) { RParenLoc = L; } + virtual SourceRange getSourceRange() const { return SourceRange(BuiltinLoc, RParenLoc); } @@ -2306,19 +2317,28 @@ public: /// class ExtVectorElementExpr : public Expr { Stmt *Base; - IdentifierInfo &Accessor; + IdentifierInfo *Accessor; SourceLocation AccessorLoc; public: ExtVectorElementExpr(QualType ty, Expr *base, IdentifierInfo &accessor, SourceLocation loc) : Expr(ExtVectorElementExprClass, ty), - Base(base), Accessor(accessor), AccessorLoc(loc) {} + Base(base), Accessor(&accessor), AccessorLoc(loc) {} + /// \brief Build an empty vector element expression. + explicit ExtVectorElementExpr(EmptyShell Empty) + : Expr(ExtVectorElementExprClass, Empty) { } + const Expr *getBase() const { return cast<Expr>(Base); } Expr *getBase() { return cast<Expr>(Base); } - - IdentifierInfo &getAccessor() const { return Accessor; } - + void setBase(Expr *E) { Base = E; } + + IdentifierInfo &getAccessor() const { return *Accessor; } + void setAccessor(IdentifierInfo *II) { Accessor = II; } + + SourceLocation getAccessorLoc() const { return AccessorLoc; } + void setAccessorLoc(SourceLocation L) { AccessorLoc = L; } + /// getNumElements - Get the number of components being selected. unsigned getNumElements() const; diff --git a/include/clang/Frontend/PCHBitCodes.h b/include/clang/Frontend/PCHBitCodes.h index a944f09bcb..10169b3051 100644 --- a/include/clang/Frontend/PCHBitCodes.h +++ b/include/clang/Frontend/PCHBitCodes.h @@ -418,7 +418,15 @@ namespace clang { /// \brief An ImplicitCastExpr record. EXPR_IMPLICIT_CAST, /// \brief A CStyleCastExpr record. - EXPR_CSTYLE_CAST + EXPR_CSTYLE_CAST, + /// FIXME: CompoundLiteralExpr + /// \brief An ExtVectorElementExpr record. + EXPR_EXT_VECTOR_ELEMENT, + /// FIXME: InitListExpr + /// FIXME: DesignatedInitExpr + /// FIXME: ImplicitValueInitExpr + /// \brief A VAArgExpr record. + EXPR_VA_ARG }; /// @} } |