Files
archived-llvm/include/llvm/DebugInfo/PDB/Raw/RawError.h
Zachary Turner 6406b60a78 [pdb] Round-trip module & file info to/from YAML.
This implements support for writing compiland and compiland source
file info to a binary PDB.  This is tested by adding support for
dumping these fields from an existing PDB to yaml, reading them
back in, and dumping them again and verifying the values are as
expected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@276426 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-22 15:46:37 +00:00

53 lines
1.2 KiB
C++

//===- RawError.h - Error extensions for raw PDB implementation -*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_DEBUGINFO_PDB_RAW_RAWERROR_H
#define LLVM_DEBUGINFO_PDB_RAW_RAWERROR_H
#include "llvm/Support/Error.h"
#include <string>
namespace llvm {
namespace pdb {
enum class raw_error_code {
unspecified = 1,
feature_unsupported,
invalid_format,
corrupt_file,
insufficient_buffer,
no_stream,
index_out_of_bounds,
invalid_block_address,
duplicate_entry,
no_entry,
not_writable,
invalid_tpi_hash,
};
/// Base class for errors originating when parsing raw PDB files
class RawError : public ErrorInfo<RawError> {
public:
static char ID;
RawError(raw_error_code C);
RawError(const std::string &Context);
RawError(raw_error_code C, const std::string &Context);
void log(raw_ostream &OS) const override;
const std::string &getErrorMessage() const;
std::error_code convertToErrorCode() const override;
private:
std::string ErrMsg;
raw_error_code Code;
};
}
}
#endif