summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/StmtDumper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/AST/StmtDumper.cpp')
-rw-r--r--clang/lib/AST/StmtDumper.cpp57
1 files changed, 46 insertions, 11 deletions
diff --git a/clang/lib/AST/StmtDumper.cpp b/clang/lib/AST/StmtDumper.cpp
index ff6d225cdb9..18c278118f6 100644
--- a/clang/lib/AST/StmtDumper.cpp
+++ b/clang/lib/AST/StmtDumper.cpp
@@ -117,6 +117,7 @@ namespace {
// Exprs
void VisitExpr(Expr *Node);
+ void VisitCastExpr(CastExpr *Node);
void VisitDeclRefExpr(DeclRefExpr *Node);
void VisitPredefinedExpr(PredefinedExpr *Node);
void VisitCharacterLiteral(CharacterLiteral *Node);
@@ -298,22 +299,56 @@ void StmtDumper::VisitExpr(Expr *Node) {
DumpExpr(Node);
}
+void StmtDumper::VisitCastExpr(CastExpr *Node) {
+ DumpExpr(Node);
+ fprintf(F, " ");
+ switch (Node->getCastKind()) {
+ case CastExpr::CK_Unknown:
+ fprintf(F, "<Unknown>");
+ break;
+ case CastExpr::CK_BitCast:
+ fprintf(F, "<BitCast>");
+ break;
+ case CastExpr::CK_NoOp:
+ fprintf(F, "<NoOp>");
+ break;
+ case CastExpr::CK_DerivedToBase:
+ fprintf(F, "<DerivedToBase>");
+ break;
+ case CastExpr::CK_Dynamic:
+ fprintf(F, "<Dynamic>");
+ break;
+ case CastExpr::CK_ToUnion:
+ fprintf(F, "<ToUnion>");
+ break;
+ case CastExpr::CK_ArrayToPointerDecay:
+ fprintf(F, "<ArrayToPointerDecay>");
+ break;
+ case CastExpr::CK_NullToMemberPointer:
+ fprintf(F, "<NullToMemberPointer>");
+ break;
+ case CastExpr::CK_BaseToDerivedMemberPointer:
+ fprintf(F, "<BaseToDerivedMemberPointer>");
+ break;
+ }
+}
+
void StmtDumper::VisitDeclRefExpr(DeclRefExpr *Node) {
DumpExpr(Node);
fprintf(F, " ");
switch (Node->getDecl()->getKind()) {
- case Decl::Function: fprintf(F,"FunctionDecl"); break;
- case Decl::Var: fprintf(F,"Var"); break;
- case Decl::ParmVar: fprintf(F,"ParmVar"); break;
- case Decl::EnumConstant: fprintf(F,"EnumConstant"); break;
- case Decl::Typedef: fprintf(F,"Typedef"); break;
- case Decl::Record: fprintf(F,"Record"); break;
- case Decl::Enum: fprintf(F,"Enum"); break;
- case Decl::CXXRecord: fprintf(F,"CXXRecord"); break;
- case Decl::ObjCInterface: fprintf(F,"ObjCInterface"); break;
- case Decl::ObjCClass: fprintf(F,"ObjCClass"); break;
- default: fprintf(F,"Decl"); break;
+ default: fprintf(F,"Decl"); break;
+ case Decl::Function: fprintf(F,"FunctionDecl"); break;
+ case Decl::Var: fprintf(F,"Var"); break;
+ case Decl::ParmVar: fprintf(F,"ParmVar"); break;
+ case Decl::EnumConstant: fprintf(F,"EnumConstant"); break;
+ case Decl::Typedef: fprintf(F,"Typedef"); break;
+ case Decl::Record: fprintf(F,"Record"); break;
+ case Decl::Enum: fprintf(F,"Enum"); break;
+ case Decl::CXXRecord: fprintf(F,"CXXRecord"); break;
+ case Decl::ObjCInterface: fprintf(F,"ObjCInterface"); break;
+ case Decl::ObjCClass: fprintf(F,"ObjCClass"); break;
}
fprintf(F, "='%s' %p", Node->getDecl()->getNameAsString().c_str(),
OpenPOWER on IntegriCloud