Hi, I think this change breaks cmake build. Please consider the attached fix (I can't push atm).
thank you, Jan On Wed, Sep 30, 2015 at 8:59 AM, Daniel Jasper via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: djasper > Date: Wed Sep 30 08:59:29 2015 > New Revision: 248904 > > URL: http://llvm.org/viewvc/llvm-project?rev=248904&view=rev > Log: > clang-format: Use Rewriter again to write the output files. > > This has two advantages: > 1. Atomic writes. > 2. Proper handling of line endings (hopefully solving llvm.org/PR24999 > > Modified: > cfe/trunk/tools/clang-format/ClangFormat.cpp > > Modified: cfe/trunk/tools/clang-format/ClangFormat.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/ClangFormat.cpp?rev=248904&r1=248903&r2=248904&view=diff > > ============================================================================== > --- cfe/trunk/tools/clang-format/ClangFormat.cpp (original) > +++ cfe/trunk/tools/clang-format/ClangFormat.cpp Wed Sep 30 08:59:29 2015 > @@ -19,6 +19,7 @@ > #include "clang/Basic/SourceManager.h" > #include "clang/Basic/Version.h" > #include "clang/Format/Format.h" > +#include "clang/Rewrite/Core/Rewriter.h" > #include "llvm/ADT/StringMap.h" > #include "llvm/Support/CommandLine.h" > #include "llvm/Support/Debug.h" > @@ -77,7 +78,7 @@ AssumeFileName("assume-filename", > cl::desc("When reading from stdin, clang-format assumes > this\n" > "filename to look for a style config file (with\n" > "-style=file) and to determine the language."), > - cl::cat(ClangFormatCategory)); > + cl::init("<stdin>"), cl::cat(ClangFormatCategory)); > > static cl::opt<bool> Inplace("i", > cl::desc("Inplace edit <file>s, if > specified."), > @@ -109,8 +110,7 @@ namespace format { > > static FileID createInMemoryFile(StringRef FileName, MemoryBuffer *Source, > SourceManager &Sources, FileManager > &Files) { > - const FileEntry *Entry = Files.getVirtualFile(FileName == "-" ? > "<stdin>" : > - FileName, > + const FileEntry *Entry = Files.getVirtualFile(FileName, > Source->getBufferSize(), > 0); > Sources.overrideFileContents(Entry, Source, true); > return Sources.createFileID(Entry, SourceLocation(), SrcMgr::C_User); > @@ -132,7 +132,7 @@ static bool fillRanges(MemoryBuffer *Cod > IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), > new DiagnosticOptions); > SourceManager Sources(Diagnostics, Files); > - FileID ID = createInMemoryFile("-", Code, Sources, Files); > + FileID ID = createInMemoryFile("<irrelevant>", Code, Sources, Files); > if (!LineRanges.empty()) { > if (!Offsets.empty() || !Lengths.empty()) { > llvm::errs() << "error: cannot use -lines with -offset/-length\n"; > @@ -255,8 +255,8 @@ static bool format(StringRef FileName) { > > bool IncompleteFormat = false; > Replaces = tooling::mergeReplacements( > - Replaces, > - reformat(FormatStyle, ChangedCode, Ranges, FileName, > &IncompleteFormat)); > + Replaces, reformat(FormatStyle, ChangedCode, Ranges, > AssumedFileName, > + &IncompleteFormat)); > if (OutputXML) { > llvm::outs() << "<?xml version='1.0'?>\n<replacements " > "xml:space='preserve' incomplete_format='" > @@ -269,27 +269,26 @@ static bool format(StringRef FileName) { > outputReplacementsXML(Replaces); > llvm::outs() << "</replacements>\n"; > } else { > - std::string FormattedCode = > - applyAllReplacements(Code->getBuffer(), Replaces); > + FileManager Files((FileSystemOptions())); > + DiagnosticsEngine Diagnostics( > + IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), > + new DiagnosticOptions); > + SourceManager Sources(Diagnostics, Files); > + FileID ID = createInMemoryFile(AssumedFileName, Code.get(), Sources, > Files); > + Rewriter Rewrite(Sources, LangOptions()); > + tooling::applyAllReplacements(Replaces, Rewrite); > if (Inplace) { > if (FileName == "-") > llvm::errs() << "error: cannot use -i when reading from stdin.\n"; > - else { > - std::error_code EC; > - raw_fd_ostream FileOut(FileName, EC, llvm::sys::fs::F_Text); > - if (EC) { > - llvm::errs() << EC.message() << "\n"; > - return true; > - } > - FileOut << FormattedCode; > - } > + else if (Rewrite.overwriteChangedFiles()) > + return true; > } else { > if (Cursor.getNumOccurrences() != 0) > outs() << "{ \"Cursor\": " > << tooling::shiftedCodePosition(Replaces, Cursor) > << ", \"IncompleteFormat\": " > << (IncompleteFormat ? "true" : "false") << " }\n"; > - outs() << FormattedCode; > + Rewrite.getEditBuffer(ID).write(outs()); > } > } > return false; > @@ -350,3 +349,4 @@ int main(int argc, const char **argv) { > } > return Error ? 1 : 0; > } > + > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
From 3e9e703beddc8f72f335ef1fc4c91ceb4352b8db Mon Sep 17 00:00:00 2001 From: Jan Vesely <jan.ves...@amd.com> Date: Wed, 30 Sep 2015 13:26:56 -0500 Subject: [PATCH] clang-format: Link with rewriter. Fixes cmake build. --- tools/clang-format/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt index bad9fff..6ef0c22 100644 --- a/tools/clang-format/CMakeLists.txt +++ b/tools/clang-format/CMakeLists.txt @@ -7,6 +7,7 @@ add_clang_executable(clang-format set(CLANG_FORMAT_LIB_DEPS clangBasic clangFormat + clangRewrite clangToolingCore ) -- 2.4.3
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits