summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ObjectYAML
diff options
context:
space:
mode:
authorChris Bieneman <beanz@apple.com>2016-12-09 00:26:44 +0000
committerChris Bieneman <beanz@apple.com>2016-12-09 00:26:44 +0000
commit313b326bb6a5bc240f2cfeb9f403fe9f5d18bc4e (patch)
tree0091e71d7df0d62b0e5e6e6869c8592d26277a9b /llvm/lib/ObjectYAML
parenta0da28fef06c7a9020711857e7c00119b1e9f9fe (diff)
downloadbcm5719-llvm-313b326bb6a5bc240f2cfeb9f403fe9f5d18bc4e.tar.gz
bcm5719-llvm-313b326bb6a5bc240f2cfeb9f403fe9f5d18bc4e.zip
[ObjectYAML] Support for DWARF debug_aranges
This patch adds support for round tripping DWARF debug_aranges in and out of YAML. llvm-svn: 289161
Diffstat (limited to 'llvm/lib/ObjectYAML')
-rw-r--r--llvm/lib/ObjectYAML/DWARFYAML.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/ObjectYAML/DWARFYAML.cpp b/llvm/lib/ObjectYAML/DWARFYAML.cpp
index ca04e2e2687..0a463bd402e 100644
--- a/llvm/lib/ObjectYAML/DWARFYAML.cpp
+++ b/llvm/lib/ObjectYAML/DWARFYAML.cpp
@@ -26,6 +26,8 @@ void MappingTraits<DWARFYAML::Data>::mapping(
IO &IO, DWARFYAML::Data &DWARF) {
IO.mapOptional("debug_str", DWARF.DebugStrings);
IO.mapOptional("debug_abbrev", DWARF.AbbrevDecls);
+ if(!DWARF.ARanges.empty() || !IO.outputting())
+ IO.mapOptional("debug_aranges", DWARF.ARanges);
}
void MappingTraits<DWARFYAML::Abbrev>::mapping(
@@ -42,6 +44,22 @@ void MappingTraits<DWARFYAML::AttributeAbbrev>::mapping(
IO.mapRequired("Form", AttAbbrev.Form);
}
+void MappingTraits<DWARFYAML::ARangeDescriptor>::mapping(
+ IO &IO, DWARFYAML::ARangeDescriptor &Descriptor) {
+ IO.mapRequired("Address", Descriptor.Address);
+ IO.mapRequired("Length", Descriptor.Length);
+}
+
+void MappingTraits<DWARFYAML::ARange>::mapping(IO &IO,
+ DWARFYAML::ARange &Range) {
+ IO.mapRequired("Length", Range.Length);
+ IO.mapRequired("Version", Range.Version);
+ IO.mapRequired("CuOffset", Range.CuOffset);
+ IO.mapRequired("AddrSize", Range.AddrSize);
+ IO.mapRequired("SegSize", Range.SegSize);
+ IO.mapRequired("Descriptors", Range.Descriptors);
+}
+
} // namespace llvm::yaml
} // namespace llvm
OpenPOWER on IntegriCloud