LLVM: include/llvm/DebugInfo/CodeView/RecordSerialization.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_DEBUGINFO_CODEVIEW_RECORDSERIALIZATION_H
10#define LLVM_DEBUGINFO_CODEVIEW_RECORDSERIALIZATION_H
11
20#include
21
22namespace llvm {
28
29
30
32
40
41
42
45
47
48
49
50
51
53
54
56
57
60
61
63
66
67
68
72
85
86template <typename T, typename U>
90
101
104
107
108 while (!Reader.empty() && Reader.peek() < LF_PAD0) {
110 return EC;
112 }
114 }
115
117};
118
122
124 if (Reader.empty())
126 "Null terminated string is empty!");
127
128 while (Reader.peek() != 0) {
131 return EC;
133 }
134 return Reader.skip(1);
135 }
136
138};
139
150
160
161template <typename T, typename U>
165
166inline serialize_null_term_string_array_impl
170
171template
175
176template
180
184
185template <typename T, typename U>
190
191template <typename T, typename U>
196
201
202template
207
208template
213
214template
219
220template <typename T, typename U, typename... Args>
223 return EC;
224 return consume(Reader, Y, std::forward(Rest)...);
225}
226
227}
228}
229
230#endif
OptimizedStructLayoutField Field
static TableGen::Emitter::Opt Y("gen-skeleton-entry", EmitSkeleton, "Generate example skeleton entry")
static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")
An arbitrary precision integer that knows its signedness.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Provides read only access to a subclass of BinaryStream.
Error readObject(const T *&Dest)
Get a pointer to an object of type T from the underlying stream, as if by memcpy, and store the resul...
LLVM_ABI Error readCString(StringRef &Dest)
Read a null terminated string from Dest.
LLVM_ABI uint8_t peek() const
Examine the next byte of the underlying stream without advancing the stream's offset.
uint64_t bytesRemaining() const
Error readArray(ArrayRef< T > &Array, uint32_t NumElements)
Get a reference to a NumElements element array of objects of type T from the underlying stream as if ...
LLVM_ABI Error skip(uint64_t Amount)
Advance the stream's offset by Amount bytes.
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
serialize_vector_tail_impl< T > serialize_array_tail(std::vector< T > &Item)
Definition RecordSerialization.h:172
LLVM_ABI Error consume_numeric(BinaryStreamReader &Reader, uint64_t &Value)
Decodes a numeric leaf value that is known to be a particular type.
serialize_null_term_string_array_impl serialize_null_term_string_array(std::vector< StringRef > &Item)
Definition RecordSerialization.h:167
LLVM_ABI StringRef getBytesAsCString(ArrayRef< uint8_t > LeafData)
serialize_array_impl< T, U > serialize_array(ArrayRef< T > &Item, U Func)
Definition RecordSerialization.h:162
serialize_numeric_impl< T > serialize_numeric(T &Item)
Definition RecordSerialization.h:181
LLVM_ABI StringRef getBytesAsCharacters(ArrayRef< uint8_t > LeafData)
Reinterpret a byte array as an array of characters.
@ MaxRecordLength
Definition RecordSerialization.h:31
serialize_conditional_impl< T, U > serialize_conditional(T &Item, U Func)
Definition RecordSerialization.h:87
detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t
detail::packed_endian_specific_integral< uint16_t, llvm::endianness::little, unaligned > ulittle16_t
detail::packed_endian_specific_integral< int32_t, llvm::endianness::little, unaligned > little32_t
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr Count
Error make_error(ArgTs &&... Args)
Make a Error instance representing failure using the given error info type.
FunctionAddr VTableAddr uintptr_t uintptr_t Data
ulittle16_t RecordKind
Definition RecordSerialization.h:38
RecordPrefix(uint16_t Kind)
Definition RecordSerialization.h:35
ulittle16_t RecordLen
Definition RecordSerialization.h:37
ArrayRef< T > & Item
Definition RecordSerialization.h:98
U Func
Definition RecordSerialization.h:99
Error deserialize(BinaryStreamReader &Reader) const
Definition RecordSerialization.h:94
serialize_array_impl(ArrayRef< T > &Item, U Func)
Definition RecordSerialization.h:92
ArrayRef< T > & Item
Definition RecordSerialization.h:148
serialize_arrayref_tail_impl(ArrayRef< T > &Item)
Definition RecordSerialization.h:141
Error deserialize(BinaryStreamReader &Reader) const
Definition RecordSerialization.h:143
U Func
Definition RecordSerialization.h:83
T & Item
Definition RecordSerialization.h:82
Error deserialize(BinaryStreamReader &Reader) const
Definition RecordSerialization.h:76
serialize_conditional_impl(T &Item, U Func)
Definition RecordSerialization.h:74
serialize_null_term_string_array_impl(std::vector< StringRef > &Item)
Definition RecordSerialization.h:120
std::vector< StringRef > & Item
Definition RecordSerialization.h:137
Error deserialize(BinaryStreamReader &Reader) const
Definition RecordSerialization.h:123
serialize_numeric_impl(T &Item)
Definition RecordSerialization.h:152
T & Item
Definition RecordSerialization.h:158
Error deserialize(BinaryStreamReader &Reader) const
Definition RecordSerialization.h:154
serialize_vector_tail_impl(std::vector< T > &Item)
Definition RecordSerialization.h:103
std::vector< T > & Item
Definition RecordSerialization.h:116
Error deserialize(BinaryStreamReader &Reader) const
Definition RecordSerialization.h:105