mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
Previously we did not have support for writing detailed module information for each module, as well as the symbol records. This patch adds support for this, and in doing so enables the ability to construct minimal PDBs from just a few lines of YAML. A test is added to illustrate this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297900 91177308-0d34-0410-b5e6-96231b3b80d8
54 lines
1.2 KiB
C++
54 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,
|
|
stream_too_long,
|
|
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
|