From 85e6da1f19e4bad3b39f30bd90ec112a8beb72c9 Mon Sep 17 00:00:00 2001 From: Francois Pichet Date: Tue, 12 Oct 2010 01:01:43 +0000 Subject: [PATCH] This patch remove the Win32 XFAIL from remap-complete.c The problem was that text files were open in text mode and Microsoft implementation of fread and write will try to do nasty line-feed conversion which make the line position no longer valid. The fix is to read and write files in binary mode. llvm-svn: 116286 --- clang/tools/c-index-test/c-index-test.c | 2 +- clang/tools/libclang/CIndexer.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c index 773c00932110..84ceab2e661e 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -109,7 +109,7 @@ int parse_remapped_files(int argc, const char **argv, int start_arg, } /* Open the file that we're remapping to. */ - to_file = fopen(semi + 1, "r"); + to_file = fopen(semi + 1, "rb"); if (!to_file) { fprintf(stderr, "error: cannot open file %s that we are remapping to\n", semi + 1); diff --git a/clang/tools/libclang/CIndexer.cpp b/clang/tools/libclang/CIndexer.cpp index b328d5cd22b9..baaeab3d0d26 100644 --- a/clang/tools/libclang/CIndexer.cpp +++ b/clang/tools/libclang/CIndexer.cpp @@ -107,7 +107,8 @@ bool clang::RemapFiles(unsigned num_unsaved_files, return true; std::string ErrorInfo; - llvm::raw_fd_ostream OS(SavedFile.c_str(), ErrorInfo); + llvm::raw_fd_ostream OS(SavedFile.c_str(), ErrorInfo, + llvm::raw_fd_ostream::F_Binary); if (!ErrorInfo.empty()) return true;