aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/clang/AST/Expr.h30
-rw-r--r--include/clang/Frontend/PCHBitCodes.h10
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
};
/// @}
}