LLVM
8.0.1
include
llvm
DebugInfo
CodeView
SimpleTypeSerializer.h
Go to the documentation of this file.
1
//===- SimpleTypeSerializer.h -----------------------------------*- 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_CODEVIEW_SIMPLETYPESERIALIZER_H
11
#define LLVM_DEBUGINFO_CODEVIEW_SIMPLETYPESERIALIZER_H
12
13
#include "
llvm/ADT/ArrayRef.h
"
14
#include "
llvm/ADT/Optional.h
"
15
#include "
llvm/ADT/SmallVector.h
"
16
#include "
llvm/DebugInfo/CodeView/CodeView.h
"
17
#include "
llvm/DebugInfo/CodeView/RecordSerialization.h
"
18
#include "
llvm/DebugInfo/CodeView/TypeIndex.h
"
19
#include "
llvm/DebugInfo/CodeView/TypeRecord.h
"
20
#include "
llvm/DebugInfo/CodeView/TypeRecordMapping.h
"
21
#include "
llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
"
22
#include "
llvm/Support/Allocator.h
"
23
#include "
llvm/Support/BinaryByteStream.h
"
24
#include "
llvm/Support/BinaryStreamWriter.h
"
25
#include "
llvm/Support/Error.h
"
26
#include <cassert>
27
#include <cstdint>
28
#include <memory>
29
#include <vector>
30
31
namespace
llvm
{
32
namespace
codeview {
33
34
class
SimpleTypeSerializer
{
35
std::vector<uint8_t> ScratchBuffer;
36
37
public
:
38
SimpleTypeSerializer
();
39
~SimpleTypeSerializer
();
40
41
// This template is explicitly instantiated in the implementation file for all
42
// supported types. The method itself is ugly, so inlining it into the header
43
// file clutters an otherwise straightforward interface.
44
template
<
typename
T>
ArrayRef<uint8_t>
serialize
(
T
&
Record
);
45
46
// Don't allow serialization of field list records using this interface.
47
ArrayRef<uint8_t>
serialize
(
const
FieldListRecord
&Record) =
delete
;
48
};
49
50
}
// end namespace codeview
51
}
// end namespace llvm
52
53
#endif // LLVM_DEBUGINFO_CODEVIEW_SIMPLETYPESERIALIZER_H
RecordSerialization.h
TypeVisitorCallbacks.h
llvm
This class represents lattice values for constants.
Definition:
AllocatorList.h:24
llvm::codeview::SimpleTypeSerializer
Definition:
SimpleTypeSerializer.h:34
CodeView.h
llvm::Record
Definition:
Record.h:1337
Allocator.h
This file defines the MallocAllocator and BumpPtrAllocator interfaces.
llvm::codeview::FieldListRecord
Definition:
TypeRecord.h:391
llvm::ArrayRef< uint8_t >
TypeRecordMapping.h
llvm::codeview::SimpleTypeSerializer::SimpleTypeSerializer
SimpleTypeSerializer()
Definition:
SimpleTypeSerializer.cpp:26
Error.h
BinaryStreamWriter.h
llvm::codeview::SimpleTypeSerializer::serialize
ArrayRef< uint8_t > serialize(T &Record)
Definition:
SimpleTypeSerializer.cpp:31
BinaryByteStream.h
ArrayRef.h
T
llvm::codeview::SimpleTypeSerializer::~SimpleTypeSerializer
~SimpleTypeSerializer()
Definition:
SimpleTypeSerializer.cpp:28
TypeRecord.h
SmallVector.h
TypeIndex.h
Optional.h
Generated on Sun Dec 20 2020 13:53:17 for LLVM by
1.8.13