summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-08-12 00:21:52 +0000
committerAnders Carlsson <andersca@mac.com>2009-08-12 00:21:52 +0000
commit0738468322f26b547ed43dae429e427201c5f85f (patch)
treed2bef7a384c49c337a2b53553034ee2b0b667af6
parente93b54be8d4f1c1b3183f8465b185f5b442b0a25 (diff)
downloadbcm5719-llvm-0738468322f26b547ed43dae429e427201c5f85f.tar.gz
bcm5719-llvm-0738468322f26b547ed43dae429e427201c5f85f.zip
Add some information about temporaries to the statement dumper.
llvm-svn: 78754
-rw-r--r--clang/lib/AST/StmtDumper.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/lib/AST/StmtDumper.cpp b/clang/lib/AST/StmtDumper.cpp
index bc096bf0d9f..1087b0d6f27 100644
--- a/clang/lib/AST/StmtDumper.cpp
+++ b/clang/lib/AST/StmtDumper.cpp
@@ -137,6 +137,10 @@ namespace {
void VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *Node);
void VisitCXXThisExpr(CXXThisExpr *Node);
void VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node);
+ void VisitCXXConstructExpr(CXXConstructExpr *Node);
+ void VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node);
+ void VisitCXXExprWithTemporaries(CXXExprWithTemporaries *Node);
+ void DumpCXXTemporary(CXXTemporary *Temporary);
// ObjC
void VisitObjCEncodeExpr(ObjCEncodeExpr *Node);
@@ -451,6 +455,33 @@ void StmtDumper::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) {
Node->getTypeAsWritten().getAsString().c_str());
}
+void StmtDumper::VisitCXXConstructExpr(CXXConstructExpr *Node) {
+ DumpExpr(Node);
+ if (Node->isElidable())
+ fprintf(F, "elidable");
+}
+
+void StmtDumper::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) {
+ DumpExpr(Node);
+ fprintf(F, " ");
+ DumpCXXTemporary(Node->getTemporary());
+}
+
+void StmtDumper::VisitCXXExprWithTemporaries(CXXExprWithTemporaries *Node) {
+ DumpExpr(Node);
+ ++IndentLevel;
+ for (unsigned i = 0, e = Node->getNumTemporaries(); i != e; ++i) {
+ fprintf(F, "\n");
+ Indent();
+ DumpCXXTemporary(Node->getTemporary(i));
+ }
+ --IndentLevel;
+}
+
+void StmtDumper::DumpCXXTemporary(CXXTemporary *Temporary) {
+ fprintf(F, "(CXXTemporary %p)", (void *)Temporary);
+}
+
//===----------------------------------------------------------------------===//
// Obj-C Expressions
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud