diff options
author | Chris Bieneman <beanz@apple.com> | 2016-12-09 00:26:44 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2016-12-09 00:26:44 +0000 |
commit | 313b326bb6a5bc240f2cfeb9f403fe9f5d18bc4e (patch) | |
tree | 0091e71d7df0d62b0e5e6e6869c8592d26277a9b /llvm/lib/ObjectYAML | |
parent | a0da28fef06c7a9020711857e7c00119b1e9f9fe (diff) | |
download | bcm5719-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.cpp | 18 |
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 |