ClangDiagnostic.h revision 314564
1356843Sdim//===-- ClangDiagnostic.h ---------------------------------------*- C++ -*-===// 2356843Sdim// 3356843Sdim// The LLVM Compiler Infrastructure 4356843Sdim// 5356843Sdim// This file is distributed under the University of Illinois Open Source 6356843Sdim// License. See LICENSE.TXT for details. 7356843Sdim// 8356843Sdim//===----------------------------------------------------------------------===// 9356843Sdim 10356843Sdim#ifndef lldb_ClangDiagnostic_h 11356843Sdim#define lldb_ClangDiagnostic_h 12356843Sdim 13356843Sdim#include <vector> 14356843Sdim 15356843Sdim#include "clang/Basic/Diagnostic.h" 16356843Sdim 17356843Sdim#include "lldb/lldb-defines.h" 18356843Sdim#include "lldb/lldb-types.h" 19356843Sdim 20356843Sdim#include "lldb/Expression/DiagnosticManager.h" 21356843Sdim 22356843Sdimnamespace lldb_private { 23356843Sdim 24356843Sdimclass ClangDiagnostic : public Diagnostic { 25356843Sdimpublic: 26356843Sdim typedef std::vector<clang::FixItHint> FixItList; 27356843Sdim 28356843Sdim static inline bool classof(const ClangDiagnostic *) { return true; } 29356843Sdim static inline bool classof(const Diagnostic *diag) { 30356843Sdim return diag->getKind() == eDiagnosticOriginClang; 31356843Sdim } 32356843Sdim 33356843Sdim ClangDiagnostic(const char *message, DiagnosticSeverity severity, 34356843Sdim uint32_t compiler_id) 35356843Sdim : Diagnostic(message, severity, eDiagnosticOriginClang, compiler_id) {} 36356843Sdim 37356843Sdim virtual ~ClangDiagnostic() = default; 38356843Sdim 39356843Sdim bool HasFixIts() const override { return !m_fixit_vec.empty(); } 40356843Sdim 41356843Sdim void AddFixitHint(const clang::FixItHint &fixit) { 42356843Sdim m_fixit_vec.push_back(fixit); 43356843Sdim } 44356843Sdim 45356843Sdim const FixItList &FixIts() const { return m_fixit_vec; } 46356843Sdim FixItList m_fixit_vec; 47356843Sdim}; 48356843Sdim 49356843Sdim} // namespace lldb_private 50356843Sdim#endif /* lldb_ClangDiagnostic_h */ 51356843Sdim