27 while (!Opts.
empty()) {
31 Result += join(ThisGroup, Sep);
43 std::string Result =
"[";
44 for (
const auto &S : Strings) {
68 "merged assembly input");
83 "DEBUG_S_CROSSSCOPEIMPORTS");
85 "DEBUG_S_CROSSSCOPEEXPORTS");
88 "DEBUG_S_FUNC_MDTOKEN_MAP");
90 "DEBUG_S_TYPE_MDTOKEN_MAP");
92 "DEBUG_S_MERGED_ASSEMBLYINPUT");
94 "DEBUG_S_COFF_SYMBOL_RVA");
96 "DEBUG_S_XFGHASH_TYPE");
98 "DEBUG_S_XFGHASH_VIRTUAL");
107#define SYMBOL_RECORD(EnumName, value, name) \
110#define CV_SYMBOL(EnumName, value) SYMBOL_RECORD(EnumName, value, EnumName)
111#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
118#define TYPE_RECORD(EnumName, value, name) \
121#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
131#define PUSH_CHARACTERISTIC_FLAG(Enum, TheOpt, Value, Style, Descriptive) \
132 PUSH_FLAG(Enum, TheOpt, Value, \
133 ((Style == CharacteristicStyle::HeaderDefinition) ? #TheOpt \
136#define PUSH_MASKED_CHARACTERISTIC_FLAG(Enum, Mask, TheOpt, Value, Style, \
138 PUSH_MASKED_FLAG(Enum, Mask, TheOpt, Value, \
139 ((Style == CharacteristicStyle::HeaderDefinition) \
149 std::vector<std::string> Opts;
160 "uninitialized data");
171 Style,
"1 byte align");
173 Style,
"2 byte align");
175 Style,
"4 byte align");
177 Style,
"8 byte align");
179 Style,
"16 byte align");
181 Style,
"32 byte align");
183 Style,
"64 byte align");
185 Style,
"128 byte align");
187 Style,
"256 byte align");
189 Style,
"512 byte align");
191 Style,
"1024 byte align");
193 Style,
"2048 byte align");
195 Style,
"4096 byte align");
197 Style,
"8192 byte align");
207 "execute permissions");
211 "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.
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(const char *Fmt, Ts &&...Vals) -> formatv_object< decltype(std::make_tuple(support::detail::build_format_adapter(std::forward< 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.