//===--- Diagnostic.cpp - Framework for clang diagnostics tools ----------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // Implements classes to support/store diagnostics refactoring. // //===----------------------------------------------------------------------===// #include "clang/Tooling/Core/Diagnostic.h" #include "clang/Basic/SourceManager.h" namespace clang { namespace tooling { DiagnosticMessage::DiagnosticMessage(llvm::StringRef Message) : Message(Message), FileOffset(0) {} DiagnosticMessage::DiagnosticMessage(llvm::StringRef Message, const SourceManager &Sources, SourceLocation Loc) : Message(Message) { assert(Loc.isValid() && Loc.isFileID()); FilePath = Sources.getFilename(Loc); FileOffset = Sources.getFileOffset(Loc); } Diagnostic::Diagnostic(llvm::StringRef DiagnosticName, Diagnostic::Level DiagLevel, StringRef BuildDirectory) : DiagnosticName(DiagnosticName), DiagLevel(DiagLevel), BuildDirectory(BuildDirectory) {} Diagnostic::Diagnostic(llvm::StringRef DiagnosticName, const DiagnosticMessage &Message, const llvm::StringMap &Fix, const SmallVector &Notes, Level DiagLevel, llvm::StringRef BuildDirectory) : DiagnosticName(DiagnosticName), Message(Message), Fix(Fix), Notes(Notes), DiagLevel(DiagLevel), BuildDirectory(BuildDirectory) {} } // end namespace tooling } // end namespace clang