Add driver support for invoking block rewriter.
Also tweaked the create function to take an explicit output file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56305 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/RewriteBlocks.cpp b/Driver/RewriteBlocks.cpp
index 753f4ff..4f91606 100644
--- a/Driver/RewriteBlocks.cpp
+++ b/Driver/RewriteBlocks.cpp
@@ -55,17 +55,11 @@
   ObjCMethodDecl *CurMethodDef;
   
   bool IsHeader;
+  std::string InFileName;
+  std::string OutFileName;
 public:
-  RewriteBlocks(bool isHeader, Diagnostic &D, const LangOptions &LOpts) : 
-    Diags(D), LangOpts(LOpts) {
-    IsHeader = isHeader;
-    CurFunctionDef = 0;
-    CurMethodDef = 0;
-    RewriteFailedDiag = Diags.getCustomDiagID(Diagnostic::Warning, 
-                                              "rewriting failed");
-    NoNestedBlockCalls = Diags.getCustomDiagID(Diagnostic::Warning, 
-      "Rewrite support for closure calls nested within closure blocks is incomplete");
-  }
+  RewriteBlocks(std::string inFile, std::string outFile, Diagnostic &D, 
+                const LangOptions &LOpts);
   ~RewriteBlocks() {
     // Get the buffer corresponding to MainFileID.  
     // If we haven't changed it, then we are done.
@@ -155,10 +149,25 @@
   return Ext == "h" || Ext == "hh" || Ext == "H";
 }    
 
+RewriteBlocks::RewriteBlocks(std::string inFile, std::string outFile, 
+                             Diagnostic &D, const LangOptions &LOpts) : 
+  Diags(D), LangOpts(LOpts) {
+  IsHeader = IsHeaderFile(inFile);
+  InFileName = inFile;
+  OutFileName = outFile;
+  CurFunctionDef = 0;
+  CurMethodDef = 0;
+  RewriteFailedDiag = Diags.getCustomDiagID(Diagnostic::Warning, 
+                                            "rewriting failed");
+  NoNestedBlockCalls = Diags.getCustomDiagID(Diagnostic::Warning, 
+    "Rewrite support for closure calls nested within closure blocks is incomplete");
+}
+
 ASTConsumer *clang::CreateBlockRewriter(const std::string& InFile,
+                                        const std::string& OutFile,
                                         Diagnostic &Diags,
                                         const LangOptions &LangOpts) {
-  return new RewriteBlocks(IsHeaderFile(InFile), Diags, LangOpts);
+  return new RewriteBlocks(InFile, OutFile, Diags, LangOpts);
 }
 
 void RewriteBlocks::Initialize(ASTContext &context) {