From: Ted Kremenek Date: Fri, 24 Aug 2007 20:21:10 +0000 (+0000) Subject: Implementation of child_begin/child_end for C++ expressions. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a758d09482a1ba2eccc327365e51036e2c105820;p=clang Implementation of child_begin/child_end for C++ expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41369 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/ExprCXX.cpp b/AST/ExprCXX.cpp new file mode 100644 index 0000000000..093c37e357 --- /dev/null +++ b/AST/ExprCXX.cpp @@ -0,0 +1,33 @@ +//===--- ExprCXX.cpp - (C++) Expression AST Node Implementation -----------===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Ted Kremenek and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file implements the subclesses of Expr class declared in ExprCXX.h +// +//===----------------------------------------------------------------------===// + +#include "clang/AST/ExprCXX.h" +using namespace clang; + +//===----------------------------------------------------------------------===// +// Child Iterators for iterating over subexpressions/substatements +//===----------------------------------------------------------------------===// + + +// CXXCastExpr +Stmt::child_iterator CXXCastExpr::child_begin() { + return reinterpret_cast(&Op); +} + +Stmt::child_iterator CXXCastExpr::child_end() { + return child_begin()+1; +} + +// CXXBoolLiteralExpr +Stmt::child_iterator CXXBoolLiteralExpr::child_begin() { return NULL; } +Stmt::child_iterator CXXBoolLiteralExpr::child_end() { return NULL; }