This works on Windows with VS2010 now.<div><br></div><div>Thoughts?<br><div><br></div><div><div>Index: unittests/Tooling/RewriterTestContext.h</div><div>===================================================================</div>
<div>--- unittests/Tooling/RewriterTestContext.h<span class="Apple-tab-span" style="white-space:pre">   </span>(revision 158019)</div><div>+++ unittests/Tooling/RewriterTestContext.h<span class="Apple-tab-span" style="white-space:pre"> </span>(working copy)</div>
<div>@@ -21,6 +21,7 @@</div><div> #include "clang/Frontend/DiagnosticOptions.h"</div><div> #include "clang/Frontend/TextDiagnosticPrinter.h"</div><div> #include "clang/Rewrite/Rewriter.h"</div>
<div>+#include "llvm/Support/FileSystem.h"</div><div> #include "llvm/Support/Path.h"</div><div> #include "llvm/Support/raw_ostream.h"</div><div> </div><div>@@ -43,6 +44,10 @@</div><div>   }</div>
<div> </div><div>   ~RewriterTestContext() {</div><div>+    if (!TemporaryDirectory.empty()) {</div><div>+      uint32_t RemovedCount = 0;</div><div>+      llvm::sys::fs::remove_all(TemporaryDirectory.str(), RemovedCount);</div>
<div>+    }</div><div>   }</div><div> </div><div>   FileID createInMemoryFile(StringRef Name, StringRef Content) {</div><div>@@ -56,12 +61,14 @@</div><div>   }</div><div> </div><div>   FileID createOnDiskFile(StringRef Name, StringRef Content) {</div>
<div>-    if (!TemporaryDirectory.isValid()) {</div><div>-      std::string ErrorInfo;</div><div>-      TemporaryDirectory = llvm::sys::Path::GetTemporaryDirectory(&ErrorInfo);</div><div>-      assert(ErrorInfo.empty());</div>
<div>+    if (TemporaryDirectory.empty()) {</div><div>+      int FD;</div><div>+      assert(!llvm::sys::fs::unique_file("rewriter-test-%%-%%-%%-%%/anchor",</div><div>+                                         FD, TemporaryDirectory));</div>
<div>+      llvm::raw_fd_ostream Closer(FD, /*shouldClose=*/true);</div><div>+      TemporaryDirectory = llvm::sys::path::parent_path(TemporaryDirectory);</div><div>     }</div><div>-    llvm::SmallString<1024> Path(TemporaryDirectory.str());</div>
<div>+    llvm::SmallString<1024> Path(TemporaryDirectory);</div><div>     llvm::sys::path::append(Path, Name);</div><div>     std::string ErrorInfo;</div><div>     llvm::raw_fd_ostream OutStream(Path.c_str(),</div>
<div>@@ -107,8 +114,8 @@</div><div>   LangOptions Options;</div><div>   Rewriter Rewrite;</div><div> </div><div>-  // Will be set once on disk files are generated. </div><div>-  llvm::sys::Path TemporaryDirectory;</div><div>
+  // Will be set once on disk files are generated.</div><div>+  SmallString<128> TemporaryDirectory;</div><div> };</div><div> </div><div> } // end namespace clang</div></div><div><br></div></div>