Switch 'super' from being a weird cast thing to being a predefined expr node.
Patch by David Chisnall with objc rewriter and stmtdumper updates from me.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52580 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/StmtDumper.cpp b/lib/AST/StmtDumper.cpp
index 6a65fbb..c8f7260 100644
--- a/lib/AST/StmtDumper.cpp
+++ b/lib/AST/StmtDumper.cpp
@@ -311,17 +311,13 @@
 void StmtDumper::VisitPreDefinedExpr(PreDefinedExpr *Node) {
   DumpExpr(Node);
   switch (Node->getIdentType()) {
-  default:
-    assert(0 && "unknown case");
-  case PreDefinedExpr::Func:
-    fprintf(F, " __func__");
-    break;
-  case PreDefinedExpr::Function:
-    fprintf(F, " __FUNCTION__");
-    break;
-  case PreDefinedExpr::PrettyFunction:
-    fprintf(F, " __PRETTY_FUNCTION__");
-    break;
+  default: assert(0 && "unknown case");
+  case PreDefinedExpr::Func:           fprintf(F, " __func__"); break;
+  case PreDefinedExpr::Function:       fprintf(F, " __FUNCTION__"); break;
+  case PreDefinedExpr::PrettyFunction: fprintf(F, " __PRETTY_FUNCTION__");break;
+  case PreDefinedExpr::ObjCSelf:       fprintf(F, "self"); break;
+  case PreDefinedExpr::ObjCCmd:        fprintf(F, "_cmd"); break;
+  case PreDefinedExpr::ObjCSuper:      fprintf(F, "super"); break;
   }
 }