Index: llvm/trunk/lib/Object/ArchiveWriter.cpp =================================================================== --- llvm/trunk/lib/Object/ArchiveWriter.cpp +++ llvm/trunk/lib/Object/ArchiveWriter.cpp @@ -205,6 +205,12 @@ for (auto ToE = sys::path::end(To); ToI != ToE; ++ToI) sys::path::append(Relative, *ToI); +#ifdef LLVM_ON_WIN32 + // Replace backslashes with slashes so that the path is portable between *nix + // and Windows. + std::replace(Relative.begin(), Relative.end(), '\\', '/'); +#endif + return Relative.str(); } Index: llvm/trunk/test/Object/archive-thin-paths.test =================================================================== --- llvm/trunk/test/Object/archive-thin-paths.test +++ llvm/trunk/test/Object/archive-thin-paths.test @@ -0,0 +1,9 @@ +REQUIRES: system-windows + +RUN: cd %T +RUN: mkdir -p archive-thin-paths.dir +RUN: echo foo > archive-thin-paths.dir/foo.o + +RUN: rm -f archive-thin-paths.a +RUN: llvm-ar rcsT archive-thin-paths.a archive-thin-paths.dir\foo.o +RUN: grep archive-thin-paths.dir/foo.o archive-thin-paths.a