Add a Stmt::printPretty overload which takes an ASTContext; start 
transitioning callers over to pass one in.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72609 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclPrinter.cpp b/lib/AST/DeclPrinter.cpp
index 950dd9e..72f9703 100644
--- a/lib/AST/DeclPrinter.cpp
+++ b/lib/AST/DeclPrinter.cpp
@@ -172,6 +172,11 @@
   for (DeclContext::decl_iterator D = DC->decls_begin(Context),
          DEnd = DC->decls_end(Context);
        D != DEnd; ++D) {
+    if (!Policy.Dump) {
+      // Skip over implicit declarations in pretty-printing mode.
+      if (D->isImplicit()) continue;
+    }
+
     // The next bits of code handles stuff like "struct {int x;} a,b"; we're
     // forced to merge the declarations because there's no other way to
     // refer to the struct in question.  This limited merging is safe without
@@ -274,7 +279,7 @@
   Out << D->getNameAsString();
   if (Expr *Init = D->getInitExpr()) {
     Out << " = ";
-    Init->printPretty(Out, 0, Policy, Indentation);
+    Init->printPretty(Out, Context, 0, Policy, Indentation);
   }
 }
 
@@ -347,7 +352,7 @@
     } else
       Out << ' ';
 
-    D->getBody(Context)->printPretty(Out, 0, Policy, Indentation);
+    D->getBody(Context)->printPretty(Out, Context, 0, Policy, Indentation);
     Out << '\n';
   }
 }
@@ -362,7 +367,7 @@
 
   if (D->isBitField()) {
     Out << " : ";
-    D->getBitWidth()->printPretty(Out, 0, Policy, Indentation);
+    D->getBitWidth()->printPretty(Out, Context, 0, Policy, Indentation);
   }
 }
 
@@ -384,7 +389,7 @@
       Out << "(";
     else
       Out << " = ";
-    D->getInit()->printPretty(Out, 0, Policy, Indentation);
+    D->getInit()->printPretty(Out, Context, 0, Policy, Indentation);
     if (D->hasCXXDirectInitializer())
       Out << ")";
   }
@@ -396,7 +401,7 @@
 
 void DeclPrinter::VisitFileScopeAsmDecl(FileScopeAsmDecl *D) {
   Out << "__asm (";
-  D->getAsmString()->printPretty(Out, 0, Policy, Indentation);
+  D->getAsmString()->printPretty(Out, Context, 0, Policy, Indentation);
   Out << ")";
 }
 
@@ -475,7 +480,7 @@
   
   if (OMD->getBody()) {
     Out << ' ';
-    OMD->getBody()->printPretty(Out, 0, Policy);
+    OMD->getBody()->printPretty(Out, Context, 0, Policy);
     Out << '\n';
   }
 }