summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp
diff options
context:
space:
mode:
authorAlexander Shaposhnikov <shal1t712@gmail.com>2016-09-02 00:24:06 +0000
committerAlexander Shaposhnikov <shal1t712@gmail.com>2016-09-02 00:24:06 +0000
commit3efddd22b911f5b572d5d6a8a4d13e7caa7e9fb2 (patch)
treeb78b7898d37d56e5f93742db65853bcddc023d60 /clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp
parentdc2dff6c685de87abbca035370d691e0bc0da15d (diff)
downloadbcm5719-llvm-3efddd22b911f5b572d5d6a8a4d13e7caa7e9fb2.tar.gz
bcm5719-llvm-3efddd22b911f5b572d5d6a8a4d13e7caa7e9fb2.zip
Revert https://reviews.llvm.org/D23279 because the tests have failed on several platforms
llvm-svn: 280438
Diffstat (limited to 'clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp')
-rw-r--r--clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp93
1 files changed, 0 insertions, 93 deletions
diff --git a/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp b/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp
deleted file mode 100644
index 3061876c330..00000000000
--- a/clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//===-- tools/extra/clang-reorder-fields/tool/ClangReorderFields.cpp -*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// This file contains the implementation of clang-reorder-fields tool
-///
-//===----------------------------------------------------------------------===//
-
-#include "../ReorderFieldsAction.h"
-#include "clang/Basic/Diagnostic.h"
-#include "clang/Basic/DiagnosticOptions.h"
-#include "clang/Basic/FileManager.h"
-#include "clang/Basic/LangOptions.h"
-#include "clang/Basic/SourceManager.h"
-#include "clang/Frontend/TextDiagnosticPrinter.h"
-#include "clang/Rewrite/Core/Rewriter.h"
-#include "clang/Tooling/CommonOptionsParser.h"
-#include "clang/Tooling/Refactoring.h"
-#include "clang/Tooling/Tooling.h"
-#include "llvm/ADT/IntrusiveRefCntPtr.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/FileSystem.h"
-#include <cstdlib>
-#include <string>
-#include <system_error>
-
-using namespace llvm;
-using namespace clang;
-
-cl::OptionCategory ClangReorderFieldsCategory("clang-reorder-fields options");
-
-static cl::opt<std::string>
- RecordName("record-name", cl::Required,
- cl::desc("The name of the struct/class."),
- cl::cat(ClangReorderFieldsCategory));
-
-static cl::list<std::string> FieldsOrder("fields-order", cl::CommaSeparated,
- cl::OneOrMore,
- cl::desc("The desired fields order."),
- cl::cat(ClangReorderFieldsCategory));
-
-static cl::opt<bool> Inplace("i", cl::desc("Overwrite edited files."),
- cl::cat(ClangReorderFieldsCategory));
-
-const char Usage[] = "A tool to reorder fields in C/C++ structs/classes.\n";
-
-int main(int argc, const char **argv) {
- tooling::CommonOptionsParser OP(argc, argv, ClangReorderFieldsCategory,
- Usage);
-
- auto Files = OP.getSourcePathList();
- tooling::RefactoringTool Tool(OP.getCompilations(), Files);
-
- reorder_fields::ReorderFieldsAction Action(RecordName, FieldsOrder,
- Tool.getReplacements());
-
- auto Factory = tooling::newFrontendActionFactory(&Action);
-
- if (Inplace)
- return Tool.runAndSave(Factory.get());
-
- int ExitCode = Tool.run(Factory.get());
- LangOptions DefaultLangOptions;
- IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts(new DiagnosticOptions());
- TextDiagnosticPrinter DiagnosticPrinter(errs(), &*DiagOpts);
- DiagnosticsEngine Diagnostics(
- IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs()), &*DiagOpts,
- &DiagnosticPrinter, false);
-
- auto &FileMgr = Tool.getFiles();
- SourceManager Sources(Diagnostics, FileMgr);
- Rewriter Rewrite(Sources, DefaultLangOptions);
- Tool.applyAllReplacements(Rewrite);
-
- for (const auto &File : Files) {
- const auto *Entry = FileMgr.getFile(File);
- const auto ID = Sources.translateFile(Entry);
- // The method Rewriter::getRewriteBufferFor returns nullptr if
- // the file has not been changed.
- if (const auto *RB = Rewrite.getRewriteBufferFor(ID))
- RB->write(outs());
- else
- outs() << Sources.getMemoryBufferForFile(Entry)->getBuffer();
- }
-
- return ExitCode;
-}
OpenPOWER on IntegriCloud