diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/AST/ExprCXX.cpp | 14 | ||||
-rw-r--r-- | clang/lib/AST/StmtPrinter.cpp | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index cf85ae2d75b..2ad65451dee 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -14,6 +14,12 @@ #include "clang/AST/ExprCXX.h" using namespace clang; +void CXXConditionDeclExpr::Destroy(ASTContext& C) {
+ getVarDecl()->Destroy(C);
+ delete this;
+}
+ + //===----------------------------------------------------------------------===// // Child Iterators for iterating over subexpressions/substatements //===----------------------------------------------------------------------===// @@ -53,3 +59,11 @@ Stmt::child_iterator CXXZeroInitValueExpr::child_begin() { Stmt::child_iterator CXXZeroInitValueExpr::child_end() { return child_iterator(); } + +// CXXConditionDeclExpr +Stmt::child_iterator CXXConditionDeclExpr::child_begin() { + return getVarDecl(); +} +Stmt::child_iterator CXXConditionDeclExpr::child_end() { + return child_iterator(); +} diff --git a/clang/lib/AST/StmtPrinter.cpp b/clang/lib/AST/StmtPrinter.cpp index f5806ea5dda..3c3e207a02d 100644 --- a/clang/lib/AST/StmtPrinter.cpp +++ b/clang/lib/AST/StmtPrinter.cpp @@ -829,6 +829,11 @@ void StmtPrinter::VisitCXXZeroInitValueExpr(CXXZeroInitValueExpr *Node) { OS << Node->getType().getAsString() << "()"; } +void +StmtPrinter::VisitCXXConditionDeclExpr(CXXConditionDeclExpr *E) { + PrintRawDecl(E->getVarDecl()); +} + // Obj-C void StmtPrinter::VisitObjCStringLiteral(ObjCStringLiteral *Node) { |