summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2019-01-27 16:42:12 +0000
committerpatrick <patrick@openbsd.org>2019-01-27 16:42:12 +0000
commitb773203fb58f3ef282fb69c832d8710cab5bc82d (patch)
treee75913f147570fbd75169647b144df85b88a038c /gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
parenttweak errno in previous (diff)
downloadwireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.tar.xz
wireguard-openbsd-b773203fb58f3ef282fb69c832d8710cab5bc82d.zip
Import LLVM 7.0.1 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp')
-rw-r--r--gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp55
1 files changed, 48 insertions, 7 deletions
diff --git a/gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp b/gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
index 199a65a2870..745f79cd77f 100644
--- a/gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
+++ b/gnu/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
@@ -40,6 +40,7 @@ using namespace llvm::CodeViewYAML::detail;
using namespace llvm::yaml;
LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(TypeIndex)
+LLVM_YAML_IS_SEQUENCE_VECTOR(LocalVariableAddrGap)
// We only need to declare these, the definitions are in CodeViewYAMLTypes.cpp
LLVM_YAML_DECLARE_SCALAR_TRAITS(APSInt, QuotingType::None)
@@ -181,6 +182,24 @@ void ScalarEnumerationTraits<FrameCookieKind>::enumeration(
}
namespace llvm {
+namespace yaml {
+template <> struct MappingTraits<LocalVariableAddrRange> {
+ static void mapping(IO &io, LocalVariableAddrRange &Range) {
+ io.mapRequired("OffsetStart", Range.OffsetStart);
+ io.mapRequired("ISectStart", Range.ISectStart);
+ io.mapRequired("Range", Range.Range);
+ }
+};
+template <> struct MappingTraits<LocalVariableAddrGap> {
+ static void mapping(IO &io, LocalVariableAddrGap &Gap) {
+ io.mapRequired("GapStartOffset", Gap.GapStartOffset);
+ io.mapRequired("Range", Gap.Range);
+ }
+};
+} // namespace yaml
+} // namespace llvm
+
+namespace llvm {
namespace CodeViewYAML {
namespace detail {
@@ -353,32 +372,50 @@ template <> void SymbolRecordImpl<LocalSym>::map(IO &IO) {
}
template <> void SymbolRecordImpl<DefRangeSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Program", Symbol.Program);
+ IO.mapRequired("Range", Symbol.Range);
+ IO.mapRequired("Gaps", Symbol.Gaps);
}
template <> void SymbolRecordImpl<DefRangeSubfieldSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Program", Symbol.Program);
+ IO.mapRequired("OffsetInParent", Symbol.OffsetInParent);
+ IO.mapRequired("Range", Symbol.Range);
+ IO.mapRequired("Gaps", Symbol.Gaps);
}
template <> void SymbolRecordImpl<DefRangeRegisterSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Register", Symbol.Hdr.Register);
+ IO.mapRequired("MayHaveNoName", Symbol.Hdr.MayHaveNoName);
+ IO.mapRequired("Range", Symbol.Range);
+ IO.mapRequired("Gaps", Symbol.Gaps);
}
template <> void SymbolRecordImpl<DefRangeFramePointerRelSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Offset", Symbol.Offset);
+ IO.mapRequired("Range", Symbol.Range);
+ IO.mapRequired("Gaps", Symbol.Gaps);
}
template <> void SymbolRecordImpl<DefRangeSubfieldRegisterSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Register", Symbol.Hdr.Register);
+ IO.mapRequired("MayHaveNoName", Symbol.Hdr.MayHaveNoName);
+ IO.mapRequired("OffsetInParent", Symbol.Hdr.OffsetInParent);
+ IO.mapRequired("Range", Symbol.Range);
+ IO.mapRequired("Gaps", Symbol.Gaps);
}
template <>
void SymbolRecordImpl<DefRangeFramePointerRelFullScopeSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Register", Symbol.Offset);
}
template <> void SymbolRecordImpl<DefRangeRegisterRelSym>::map(IO &IO) {
- // TODO: Print the subfields
+ IO.mapRequired("Register", Symbol.Hdr.Register);
+ IO.mapRequired("Flags", Symbol.Hdr.Flags);
+ IO.mapRequired("BasePointerOffset", Symbol.Hdr.BasePointerOffset);
+ IO.mapRequired("Range", Symbol.Range);
+ IO.mapRequired("Gaps", Symbol.Gaps);
}
template <> void SymbolRecordImpl<BlockSym>::map(IO &IO) {
@@ -513,6 +550,10 @@ template <> void SymbolRecordImpl<ThreadLocalDataSym>::map(IO &IO) {
IO.mapRequired("DisplayName", Symbol.Name);
}
+template <> void SymbolRecordImpl<UsingNamespaceSym>::map(IO &IO) {
+ IO.mapRequired("Namespace", Symbol.Name);
+}
+
} // end namespace detail
} // end namespace CodeViewYAML
} // end namespace llvm