brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 3132028 Raw
55 lines · cpp
1#include "llvm/DebugInfo/PDB/Native/RawError.h"2#include "llvm/Support/ErrorHandling.h"3 4using namespace llvm;5using namespace llvm::pdb;6 7namespace {8// FIXME: This class is only here to support the transition to llvm::Error. It9// will be removed once this transition is complete. Clients should prefer to10// deal with the Error value directly, rather than converting to error_code.11class RawErrorCategory : public std::error_category {12public:13  const char *name() const noexcept override { return "llvm.pdb.raw"; }14  std::string message(int Condition) const override {15    switch (static_cast<raw_error_code>(Condition)) {16    case raw_error_code::unspecified:17      return "An unknown error has occurred.";18    case raw_error_code::feature_unsupported:19      return "The feature is unsupported by the implementation.";20    case raw_error_code::invalid_format:21      return "The record is in an unexpected format.";22    case raw_error_code::corrupt_file:23      return "The PDB file is corrupt.";24    case raw_error_code::insufficient_buffer:25      return "The buffer is not large enough to read the requested number of "26             "bytes.";27    case raw_error_code::no_stream:28      return "The specified stream could not be loaded.";29    case raw_error_code::index_out_of_bounds:30      return "The specified item does not exist in the array.";31    case raw_error_code::invalid_block_address:32      return "The specified block address is not valid.";33    case raw_error_code::duplicate_entry:34      return "The entry already exists.";35    case raw_error_code::no_entry:36      return "The entry does not exist.";37    case raw_error_code::not_writable:38      return "The PDB does not support writing.";39    case raw_error_code::stream_too_long:40      return "The stream was longer than expected.";41    case raw_error_code::invalid_tpi_hash:42      return "The Type record has an invalid hash value.";43    }44    llvm_unreachable("Unrecognized raw_error_code");45  }46};47} // namespace48 49const std::error_category &llvm::pdb::RawErrCategory() {50  static RawErrorCategory RawCategory;51  return RawCategory;52}53 54char RawError::ID;55