003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/include/lldb/Expression
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
include
/
lldb
/
Expression
/
📁
..
📄
DWARFExpression.h
(9.9 KB)
📄
DiagnosticManager.h
(4.16 KB)
📄
DynamicCheckerFunctions.h
(2.07 KB)
📄
Expression.h
(3.76 KB)
📄
ExpressionParser.h
(5.08 KB)
📄
ExpressionSourceCode.h
(1.18 KB)
📄
ExpressionTypeSystemHelper.h
(1.35 KB)
📄
ExpressionVariable.h
(8.38 KB)
📄
FunctionCaller.h
(12.98 KB)
📄
IRExecutionUnit.h
(15.17 KB)
📄
IRInterpreter.h
(1.84 KB)
📄
IRMemoryMap.h
(5.6 KB)
📄
LLVMUserExpression.h
(5.03 KB)
📄
Materializer.h
(4.21 KB)
📄
REPL.h
(5.03 KB)
📄
UserExpression.h
(12.4 KB)
📄
UtilityFunction.h
(4.61 KB)
Editing: DiagnosticManager.h
//===-- DiagnosticManager.h -------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_EXPRESSION_DIAGNOSTICMANAGER_H #define LLDB_EXPRESSION_DIAGNOSTICMANAGER_H #include "lldb/lldb-defines.h" #include "lldb/lldb-types.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringRef.h" #include <string> #include <vector> namespace lldb_private { enum DiagnosticOrigin { eDiagnosticOriginUnknown = 0, eDiagnosticOriginLLDB, eDiagnosticOriginClang, eDiagnosticOriginSwift, eDiagnosticOriginLLVM }; enum DiagnosticSeverity { eDiagnosticSeverityError, eDiagnosticSeverityWarning, eDiagnosticSeverityRemark }; const uint32_t LLDB_INVALID_COMPILER_ID = UINT32_MAX; class Diagnostic { friend class DiagnosticManager; public: DiagnosticOrigin getKind() const { return m_origin; } static bool classof(const Diagnostic *diag) { DiagnosticOrigin kind = diag->getKind(); switch (kind) { case eDiagnosticOriginUnknown: case eDiagnosticOriginLLDB: case eDiagnosticOriginLLVM: return true; case eDiagnosticOriginClang: case eDiagnosticOriginSwift: return false; } } Diagnostic(llvm::StringRef message, DiagnosticSeverity severity, DiagnosticOrigin origin, uint32_t compiler_id) : m_message(message), m_severity(severity), m_origin(origin), m_compiler_id(compiler_id) {} Diagnostic(const Diagnostic &rhs) : m_message(rhs.m_message), m_severity(rhs.m_severity), m_origin(rhs.m_origin), m_compiler_id(rhs.m_compiler_id) {} virtual ~Diagnostic() = default; virtual bool HasFixIts() const { return false; } DiagnosticSeverity GetSeverity() const { return m_severity; } uint32_t GetCompilerID() const { return m_compiler_id; } llvm::StringRef GetMessage() const { return m_message; } void AppendMessage(llvm::StringRef message, bool precede_with_newline = true) { if (precede_with_newline) m_message.push_back('\n'); m_message += message; } protected: std::string m_message; DiagnosticSeverity m_severity; DiagnosticOrigin m_origin; uint32_t m_compiler_id; // Compiler-specific diagnostic ID }; typedef std::vector<std::unique_ptr<Diagnostic>> DiagnosticList; class DiagnosticManager { public: void Clear() { m_diagnostics.clear(); m_fixed_expression.clear(); } const DiagnosticList &Diagnostics() { return m_diagnostics; } bool HasFixIts() const { return llvm::any_of(m_diagnostics, [](const std::unique_ptr<Diagnostic> &diag) { return diag->HasFixIts(); }); } void AddDiagnostic(llvm::StringRef message, DiagnosticSeverity severity, DiagnosticOrigin origin, uint32_t compiler_id = LLDB_INVALID_COMPILER_ID) { m_diagnostics.emplace_back( std::make_unique<Diagnostic>(message, severity, origin, compiler_id)); } void AddDiagnostic(std::unique_ptr<Diagnostic> diagnostic) { m_diagnostics.push_back(std::move(diagnostic)); } size_t Printf(DiagnosticSeverity severity, const char *format, ...) __attribute__((format(printf, 3, 4))); void PutString(DiagnosticSeverity severity, llvm::StringRef str); void AppendMessageToDiagnostic(llvm::StringRef str) { if (!m_diagnostics.empty()) m_diagnostics.back()->AppendMessage(str); } // Returns a string containing errors in this format: // // "error: error text\n // warning: warning text\n // remark text\n" std::string GetString(char separator = '\n'); void Dump(Log *log); const std::string &GetFixedExpression() { return m_fixed_expression; } // Moves fixed_expression to the internal storage. void SetFixedExpression(std::string fixed_expression) { m_fixed_expression = std::move(fixed_expression); } protected: DiagnosticList m_diagnostics; std::string m_fixed_expression; }; } #endif // LLDB_EXPRESSION_DIAGNOSTICMANAGER_H
Upload File
Create Folder