26 while (!Opts.
empty()) {
30 Result += join(ThisGroup, Sep);
42 std::string Result =
"[";
43 for (
const auto &S : Strings) {
67 "merged assembly input");
82 "DEBUG_S_CROSSSCOPEIMPORTS");
84 "DEBUG_S_CROSSSCOPEEXPORTS");
87 "DEBUG_S_FUNC_MDTOKEN_MAP");
89 "DEBUG_S_TYPE_MDTOKEN_MAP");
91 "DEBUG_S_MERGED_ASSEMBLYINPUT");
93 "DEBUG_S_COFF_SYMBOL_RVA");
95 "DEBUG_S_XFGHASH_TYPE");
97 "DEBUG_S_XFGHASH_VIRTUAL");
106#define SYMBOL_RECORD(EnumName, value, name) \
109#define CV_SYMBOL(EnumName, value) SYMBOL_RECORD(EnumName, value, EnumName)
110#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
117#define TYPE_RECORD(EnumName, value, name) \
120#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
130#define PUSH_CHARACTERISTIC_FLAG(Enum, TheOpt, Value, Style, Descriptive) \
131 PUSH_FLAG(Enum, TheOpt, Value, \
132 ((Style == CharacteristicStyle::HeaderDefinition) ? #TheOpt \
135#define PUSH_MASKED_CHARACTERISTIC_FLAG(Enum, Mask, TheOpt, Value, Style, \
137 PUSH_MASKED_FLAG(Enum, Mask, TheOpt, Value, \
138 ((Style == CharacteristicStyle::HeaderDefinition) \
148 std::vector<std::string> Opts;
159 "uninitialized data");
170 Style,
"1 byte align");
172 Style,
"2 byte align");
174 Style,
"4 byte align");
176 Style,
"8 byte align");
178 Style,
"16 byte align");
180 Style,
"32 byte align");
182 Style,
"64 byte align");
184 Style,
"128 byte align");
186 Style,
"256 byte align");
188 Style,
"512 byte align");
190 Style,
"1024 byte align");
192 Style,
"2048 byte align");
194 Style,
"4096 byte align");
196 Style,
"8192 byte align");
206 "execute permissions");
210 "write permissions");
This file contains library features backported from future STL versions.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
ArrayRef< T > take_front(size_t N=1) const
Return a copy of *this with only the first N elements.
ArrayRef< T > drop_front(size_t N=1) const
Drop the first N elements of the array.
size_t size() const
size - Get the array size.
bool empty() const
empty - Check if the array is empty.
StringRef - Represent a constant reference to a string, i.e.
A table of densely packed, null-terminated strings indexed by offset.
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
SymbolKind
Duplicate copy of the above enum, but using the official CV names.
std::string formatSegmentOffset(uint16_t Segment, uint32_t Offset)
std::string formatUnknownEnum(T Value)
std::string typesetStringList(uint32_t IndentLevel, ArrayRef< StringRef > Strings)
std::string formatSymbolKind(codeview::SymbolKind K)
std::string formatTypeLeafKind(codeview::TypeLeafKind K)
std::string formatChunkKind(codeview::DebugSubsectionKind Kind, bool Friendly=true)
std::string formatSectionCharacteristics(uint32_t IndentLevel, uint32_t C, uint32_t FlagsPerLine, StringRef Separator, CharacteristicStyle Style=CharacteristicStyle::HeaderDefinition)
std::string typesetItemList(ArrayRef< std::string > Opts, uint32_t IndentLevel, uint32_t GroupSize, StringRef Sep)
This is an optimization pass for GlobalISel generic memory operations.
auto formatv(bool Validate, const char *Fmt, Ts &&...Vals)
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
support::detail::RepeatAdapter< T > fmt_repeat(T &&Item, size_t Count)
Data in the SUBSEC_FRAMEDATA subection.