#include "llvm/ObjectYAML/MinidumpYAML.h"
#include "llvm/ObjectYAML/yaml2obj.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
usingnamespacellvm;
usingnamespacellvm::minidump;
usingnamespacellvm::MinidumpYAML;
namespace {
class BlobAllocator { … };
}
template <typename T, typename RangeType>
std::pair<size_t, MutableArrayRef<T>>
BlobAllocator::allocateNewArray(const iterator_range<RangeType> &Range) { … }
size_t BlobAllocator::allocateString(StringRef Str) { … }
void BlobAllocator::writeTo(raw_ostream &OS) const { … }
static LocationDescriptor layout(BlobAllocator &File, yaml::BinaryRef Data) { … }
static size_t layout(BlobAllocator &File, MinidumpYAML::ExceptionStream &S) { … }
static size_t layout(BlobAllocator &File, MinidumpYAML::Memory64ListStream &S) { … }
static void layout(BlobAllocator &File, MemoryListStream::entry_type &Range) { … }
static void layout(BlobAllocator &File, ModuleListStream::entry_type &M) { … }
static void layout(BlobAllocator &File, ThreadListStream::entry_type &T) { … }
template <typename EntryT>
static size_t layout(BlobAllocator &File,
MinidumpYAML::detail::ListStream<EntryT> &S) { … }
static Directory layout(BlobAllocator &File, Stream &S) { … }
namespace llvm {
namespace yaml {
bool yaml2minidump(MinidumpYAML::Object &Obj, raw_ostream &Out,
ErrorHandler ) { … }
}
}