[clang-tools-extra] r198832 - Reverted r198807, r198808, as they cause link errors in configure builds. Will look at this later.
Alexander Kornienko
alexfh at google.com
Wed Jan 8 18:21:53 PST 2014
Author: alexfh
Date: Wed Jan 8 20:21:52 2014
New Revision: 198832
URL: http://llvm.org/viewvc/llvm-project?rev=198832&view=rev
Log:
Reverted r198807, r198808, as they cause link errors in configure builds. Will look at this later.
Removed:
clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp
Modified:
clang-tools-extra/trunk/clang-tidy/CMakeLists.txt
clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h
Modified: clang-tools-extra/trunk/clang-tidy/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/CMakeLists.txt?rev=198832&r1=198831&r2=198832&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/clang-tidy/CMakeLists.txt Wed Jan 8 20:21:52 2014
@@ -5,7 +5,6 @@ set(LLVM_LINK_COMPONENTS
add_clang_library(clangTidy
ClangTidy.cpp
ClangTidyModule.cpp
- ClangTidyDiagnosticConsumer.cpp
)
target_link_libraries(clangTidy
clangAST
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp?rev=198832&r1=198831&r2=198832&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp Wed Jan 8 20:21:52 2014
@@ -174,6 +174,38 @@ bool ChecksFilter::IsCheckEnabled(String
return EnableChecks.match(Name) && !DisableChecks.match(Name);
}
+ClangTidyMessage::ClangTidyMessage(StringRef Message) : Message(Message) {}
+
+ClangTidyMessage::ClangTidyMessage(StringRef Message,
+ const SourceManager &Sources,
+ SourceLocation Loc)
+ : Message(Message) {
+ FilePath = Sources.getFilename(Loc);
+ FileOffset = Sources.getFileOffset(Loc);
+}
+
+ClangTidyError::ClangTidyError(const ClangTidyMessage &Message)
+ : Message(Message) {}
+
+DiagnosticBuilder ClangTidyContext::Diag(SourceLocation Loc,
+ StringRef Message) {
+ return DiagEngine->Report(
+ Loc, DiagEngine->getCustomDiagID(DiagnosticsEngine::Warning, Message));
+}
+
+void ClangTidyContext::setDiagnosticsEngine(DiagnosticsEngine *Engine) {
+ DiagEngine = Engine;
+}
+
+void ClangTidyContext::setSourceManager(SourceManager *SourceMgr) {
+ DiagEngine->setSourceManager(SourceMgr);
+}
+
+/// \brief Store a \c ClangTidyError.
+void ClangTidyContext::storeError(const ClangTidyError &Error) {
+ Errors->push_back(Error);
+}
+
void ClangTidyCheck::run(const ast_matchers::MatchFinder::MatchResult &Result) {
Context->setSourceManager(Result.SourceManager);
check(Result);
Removed: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp?rev=198831&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (removed)
@@ -1,117 +0,0 @@
-//===--- tools/extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp ----------=== //
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file This file implements ClangTidyDiagnosticConsumer, ClangTidyMessage,
-/// ClangTidyContext and ClangTidyError classes.
-///
-/// This tool uses the Clang Tooling infrastructure, see
-/// http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html
-/// for details on setting it up with LLVM source tree.
-///
-//===----------------------------------------------------------------------===//
-
-#include "ClangTidyDiagnosticConsumer.h"
-
-#include "llvm/ADT/SmallString.h"
-
-namespace clang {
-namespace tidy {
-
-ClangTidyMessage::ClangTidyMessage(StringRef Message) : Message(Message) {}
-
-ClangTidyMessage::ClangTidyMessage(StringRef Message,
- const SourceManager &Sources,
- SourceLocation Loc)
- : Message(Message) {
- FilePath = Sources.getFilename(Loc);
- FileOffset = Sources.getFileOffset(Loc);
-}
-
-ClangTidyError::ClangTidyError(const ClangTidyMessage &Message)
- : Message(Message) {}
-
-DiagnosticBuilder ClangTidyContext::Diag(SourceLocation Loc,
- StringRef Message) {
- return DiagEngine->Report(
- Loc, DiagEngine->getCustomDiagID(DiagnosticsEngine::Warning, Message));
-}
-
-void ClangTidyContext::setDiagnosticsEngine(DiagnosticsEngine *Engine) {
- DiagEngine = Engine;
-}
-
-void ClangTidyContext::setSourceManager(SourceManager *SourceMgr) {
- DiagEngine->setSourceManager(SourceMgr);
-}
-
-/// \brief Store a \c ClangTidyError.
-void ClangTidyContext::storeError(const ClangTidyError &Error) {
- Errors->push_back(Error);
-}
-
-ClangTidyDiagnosticConsumer::ClangTidyDiagnosticConsumer(ClangTidyContext &Ctx)
- : Context(Ctx) {
- IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
- Diags.reset(new DiagnosticsEngine(
- IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), &*DiagOpts, this,
- /*ShouldOwnClient=*/false));
- Context.setDiagnosticsEngine(Diags.get());
-}
-
-void ClangTidyDiagnosticConsumer::HandleDiagnostic(
- DiagnosticsEngine::Level DiagLevel, const Diagnostic &Info) {
- // FIXME: Demultiplex diagnostics.
- // FIXME: Ensure that we don't get notes from user code related to errors
- // from non-user code.
- if (Diags->getSourceManager().isInSystemHeader(Info.getLocation()))
- return;
- if (DiagLevel != DiagnosticsEngine::Note) {
- Errors.push_back(ClangTidyError(getMessage(Info)));
- } else {
- assert(!Errors.empty() &&
- "A diagnostic note can only be appended to a message.");
- Errors.back().Notes.push_back(getMessage(Info));
- }
- addFixes(Info, Errors.back());
-}
-
-// Flushes the internal diagnostics buffer to the ClangTidyContext.
-void ClangTidyDiagnosticConsumer::finish() {
- for (unsigned i = 0, e = Errors.size(); i != e; ++i) {
- Context.storeError(Errors[i]);
- }
- Errors.clear();
-}
-
-void ClangTidyDiagnosticConsumer::addFixes(const Diagnostic &Info,
- ClangTidyError &Error) {
- if (!Info.hasSourceManager())
- return;
- SourceManager &SourceMgr = Info.getSourceManager();
- tooling::Replacements Replacements;
- for (unsigned i = 0, e = Info.getNumFixItHints(); i != e; ++i) {
- Error.Fix.insert(tooling::Replacement(
- SourceMgr, Info.getFixItHint(i).RemoveRange.getBegin(), 0,
- Info.getFixItHint(i).CodeToInsert));
- }
-}
-
-ClangTidyMessage
-ClangTidyDiagnosticConsumer::getMessage(const Diagnostic &Info) const {
- SmallString<100> Buf;
- Info.FormatDiagnostic(Buf);
- if (!Info.hasSourceManager()) {
- return ClangTidyMessage(Buf.str());
- }
- return ClangTidyMessage(Buf.str(), Info.getSourceManager(),
- Info.getLocation());
-}
-
-} // namespace tidy
-} // namespace clang
Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h?rev=198832&r1=198831&r2=198832&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h (original)
+++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h Wed Jan 8 20:21:52 2014
@@ -13,6 +13,7 @@
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Tooling/Refactoring.h"
+#include "llvm/ADT/SmallString.h"
namespace clang {
@@ -102,20 +103,63 @@ private:
// implementation file.
class ClangTidyDiagnosticConsumer : public DiagnosticConsumer {
public:
- ClangTidyDiagnosticConsumer(ClangTidyContext &Ctx);
+ ClangTidyDiagnosticConsumer(ClangTidyContext &Ctx) : Context(Ctx) {
+ IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
+ Diags.reset(new DiagnosticsEngine(
+ IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), &*DiagOpts, this,
+ /*ShouldOwnClient=*/false));
+ Context.setDiagnosticsEngine(Diags.get());
+ }
// FIXME: The concept of converting between FixItHints and Replacements is
// more generic and should be pulled out into a more useful Diagnostics
// library.
virtual void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel,
- const Diagnostic &Info) LLVM_OVERRIDE;
+ const Diagnostic &Info) LLVM_OVERRIDE {
+ // FIXME: Ensure that we don't get notes from user code related to errors
+ // from non-user code.
+ if (Diags->getSourceManager().isInSystemHeader(Info.getLocation()))
+ return;
+ if (DiagLevel != DiagnosticsEngine::Note) {
+ Errors.push_back(ClangTidyError(getMessage(Info)));
+ } else {
+ assert(!Errors.empty() &&
+ "A diagnostic note can only be appended to a message.");
+ Errors.back().Notes.push_back(getMessage(Info));
+ }
+ addFixes(Info, Errors.back());
+ }
// Flushes the internal diagnostics buffer to the ClangTidyContext.
- virtual void finish() LLVM_OVERRIDE;
+ virtual void finish() LLVM_OVERRIDE {
+ for (unsigned i = 0, e = Errors.size(); i != e; ++i) {
+ Context.storeError(Errors[i]);
+ }
+ Errors.clear();
+ }
private:
- void addFixes(const Diagnostic &Info, ClangTidyError &Error);
- ClangTidyMessage getMessage(const Diagnostic &Info) const;
+ void addFixes(const Diagnostic &Info, ClangTidyError &Error) {
+ if (!Info.hasSourceManager())
+ return;
+ SourceManager &SourceMgr = Info.getSourceManager();
+ tooling::Replacements Replacements;
+ for (unsigned i = 0, e = Info.getNumFixItHints(); i != e; ++i) {
+ Error.Fix.insert(tooling::Replacement(
+ SourceMgr, Info.getFixItHint(i).RemoveRange.getBegin(), 0,
+ Info.getFixItHint(i).CodeToInsert));
+ }
+ }
+
+ ClangTidyMessage getMessage(const Diagnostic &Info) const {
+ SmallString<100> Buf;
+ Info.FormatDiagnostic(Buf);
+ if (!Info.hasSourceManager()) {
+ return ClangTidyMessage(Buf.str());
+ }
+ return ClangTidyMessage(Buf.str(), Info.getSourceManager(),
+ Info.getLocation());
+ }
ClangTidyContext &Context;
OwningPtr<DiagnosticsEngine> Diags;
More information about the cfe-commits
mailing list