1//===- CodeViewError.h - Error extensions for CodeView ----------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_DEBUGINFO_PDB_CODEVIEW_CODEVIEWERROR_H 11#define LLVM_DEBUGINFO_PDB_CODEVIEW_CODEVIEWERROR_H 12 13#include "llvm/Support/Error.h" 14 15#include <string> 16 17namespace llvm { 18namespace codeview { 19enum class cv_error_code { 20 unspecified = 1, 21 insufficient_buffer, 22 operation_unsupported, 23 corrupt_record, 24}; 25 26/// Base class for errors originating when parsing raw PDB files 27class CodeViewError : public ErrorInfo<CodeViewError> { 28public: 29 static char ID; 30 CodeViewError(cv_error_code C); 31 CodeViewError(const std::string &Context); 32 CodeViewError(cv_error_code C, const std::string &Context); 33 34 void log(raw_ostream &OS) const override; 35 const std::string &getErrorMessage() const; 36 std::error_code convertToErrorCode() const override; 37 38private: 39 std::string ErrMsg; 40 cv_error_code Code; 41}; 42} 43} 44#endif 45