diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-09-09 23:47:53 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-09-09 23:47:53 +0000 |
commit | aa479138ea236f7f1165c8e81e217e7df72d61d2 (patch) | |
tree | 5495236f923371fd6792b29101d8912e60230415 /clang/lib/AST/ExprCXX.cpp | |
parent | 0fff397a134b156cb4b9d60472b2d1ebd19cd3cd (diff) | |
download | bcm5719-llvm-aa479138ea236f7f1165c8e81e217e7df72d61d2.tar.gz bcm5719-llvm-aa479138ea236f7f1165c8e81e217e7df72d61d2.zip |
Add new 'CXXConditionDeclExpr' expression node used for a 'condition' declaration, e.g: "if (int x=0) {...}".
It is a subclass of DeclRefExpr and the main difference is that CXXConditionDeclExpr owns the declaration that it references.
llvm-svn: 56033
Diffstat (limited to 'clang/lib/AST/ExprCXX.cpp')
-rw-r--r-- | clang/lib/AST/ExprCXX.cpp | 14 |
1 files changed, 14 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(); +} |