[llvm] r289161 - [ObjectYAML] Support for DWARF debug_aranges

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 12 13:52:05 PST 2016


On Thu, Dec 8, 2016 at 4:36 PM Chris Bieneman via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: cbieneman
> Date: Thu Dec  8 18:26:44 2016
> New Revision: 289161
>
> URL: http://llvm.org/viewvc/llvm-project?rev=289161&view=rev
> Log:
> [ObjectYAML] Support for DWARF debug_aranges
>
> This patch adds support for round tripping DWARF debug_aranges in and out
> of YAML.
>
> Added:
>     llvm/trunk/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml
> Modified:
>     llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
>     llvm/trunk/include/llvm/ObjectYAML/DWARFYAML.h
>     llvm/trunk/lib/ObjectYAML/DWARFYAML.cpp
>     llvm/trunk/tools/obj2yaml/dwarf2yaml.cpp
>     llvm/trunk/tools/yaml2obj/yaml2dwarf.cpp
>     llvm/trunk/tools/yaml2obj/yaml2macho.cpp
>     llvm/trunk/tools/yaml2obj/yaml2obj.h
>
> Modified: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
> (original)
> +++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h Thu Dec
> 8 18:26:44 2016
> @@ -59,6 +59,8 @@ public:
>
>    uint32_t getCompileUnitDIEOffset() const { return HeaderData.CuOffset; }
>
> +  const Header &getHeader() const { return HeaderData; }
> +
>    desc_iterator_range descriptors() const {
>      return desc_iterator_range(ArangeDescriptors.begin(),
>                                 ArangeDescriptors.end());
>
> Modified: llvm/trunk/include/llvm/ObjectYAML/DWARFYAML.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ObjectYAML/DWARFYAML.h?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ObjectYAML/DWARFYAML.h (original)
> +++ llvm/trunk/include/llvm/ObjectYAML/DWARFYAML.h Thu Dec  8 18:26:44 2016
> @@ -35,9 +35,24 @@ struct Abbrev {
>    std::vector<AttributeAbbrev> Attributes;
>  };
>
> +struct ARangeDescriptor {
> +  llvm::yaml::Hex64 Address;
> +  uint64_t Length;
> +};
> +
> +struct ARange {
> +  uint32_t Length;
> +  uint16_t Version;
> +  uint32_t CuOffset;
> +  uint8_t AddrSize;
> +  uint8_t SegSize;
> +  std::vector<ARangeDescriptor> Descriptors;
> +};
> +
>  struct Data {
>    std::vector<Abbrev> AbbrevDecls;
>    std::vector<StringRef> DebugStrings;
> +  std::vector<ARange> ARanges;
>
>    bool isEmpty() const;
>  };
> @@ -48,6 +63,8 @@ struct Data {
>  LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::StringRef)
>  LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::AttributeAbbrev)
>  LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::Abbrev)
> +LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::ARangeDescriptor)
> +LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::DWARFYAML::ARange)
>
>  namespace llvm {
>  namespace yaml {
> @@ -64,6 +81,14 @@ template <> struct MappingTraits<DWARFYA
>    static void mapping(IO &IO, DWARFYAML::AttributeAbbrev &AttAbbrev);
>  };
>
> +template <> struct MappingTraits<DWARFYAML::ARangeDescriptor> {
> +  static void mapping(IO &IO, DWARFYAML::ARangeDescriptor &Descriptor);
> +};
> +
> +template <> struct MappingTraits<DWARFYAML::ARange> {
> +  static void mapping(IO &IO, DWARFYAML::ARange &Range);
> +};
> +
>  #define HANDLE_DW_TAG(unused, name)
>       \
>    io.enumCase(value, "DW_TAG_" #name, dwarf::DW_TAG_##name);
>
>
> Modified: llvm/trunk/lib/ObjectYAML/DWARFYAML.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ObjectYAML/DWARFYAML.cpp?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/ObjectYAML/DWARFYAML.cpp (original)
> +++ llvm/trunk/lib/ObjectYAML/DWARFYAML.cpp Thu Dec  8 18:26:44 2016
> @@ -26,6 +26,8 @@ void MappingTraits<DWARFYAML::Data>::map
>      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::AttributeA
>    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
>
> Added: llvm/trunk/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml?rev=289161&view=auto
>
> ==============================================================================
> --- llvm/trunk/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml (added)
> +++ llvm/trunk/test/ObjectYAML/MachO/DWARF-debug_aranges.yaml Thu Dec  8
> 18:26:44 2016
> @@ -0,0 +1,335 @@
> +# RUN: yaml2obj %s | obj2yaml | FileCheck %s
> +
> +--- !mach-o
> +FileHeader:
> +  magic:           0xFEEDFACF
> +  cputype:         0x01000007
> +  cpusubtype:      0x00000003
> +  filetype:        0x0000000A
> +  ncmds:           7
> +  sizeofcmds:      1848
> +  flags:           0x00000000
> +  reserved:        0x00000000
> +LoadCommands:
> +  - cmd:             LC_UUID
> +    cmdsize:         24
> +    uuid:            B4D48511-37F4-3ED4-AFA7-1683DCE69AC4
> +  - cmd:             LC_SYMTAB
> +    cmdsize:         24
> +    symoff:          4096
> +    nsyms:           2
> +    stroff:          4128
> +    strsize:         28
> +  - cmd:             LC_SEGMENT_64
> +    cmdsize:         72
> +    segname:         __PAGEZERO
> +    vmaddr:          0
> +    vmsize:          4294967296
> +    fileoff:         0
> +    filesize:        0
> +    maxprot:         0
> +    initprot:        0
> +    nsects:          0
> +    flags:           0
> +  - cmd:             LC_SEGMENT_64
> +    cmdsize:         472
> +    segname:         __TEXT
> +    vmaddr:          4294967296
> +    vmsize:          4096
> +    fileoff:         0
> +    filesize:        0
> +    maxprot:         7
> +    initprot:        5
> +    nsects:          5
> +    flags:           0
> +    Sections:
> +      - sectname:        __text
> +        segname:         __TEXT
> +        addr:            0x0000000100000F50
> +        size:            52
> +        offset:          0x00000000
> +        align:           4
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x80000400
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __stubs
> +        segname:         __TEXT
> +        addr:            0x0000000100000F84
> +        size:            6
> +        offset:          0x00000000
> +        align:           1
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x80000408
> +        reserved1:       0x00000000
> +        reserved2:       0x00000006
> +        reserved3:       0x00000000
> +      - sectname:        __stub_helper
> +        segname:         __TEXT
> +        addr:            0x0000000100000F8C
> +        size:            26
> +        offset:          0x00000000
> +        align:           2
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x80000400
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __cstring
> +        segname:         __TEXT
> +        addr:            0x0000000100000FA6
> +        size:            14
> +        offset:          0x00000000
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000002
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __unwind_info
> +        segname:         __TEXT
> +        addr:            0x0000000100000FB4
> +        size:            72
> +        offset:          0x00000000
> +        align:           2
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +  - cmd:             LC_SEGMENT_64
> +    cmdsize:         232
> +    segname:         __DATA
> +    vmaddr:          4294971392
> +    vmsize:          4096
> +    fileoff:         0
> +    filesize:        0
> +    maxprot:         7
> +    initprot:        3
> +    nsects:          2
> +    flags:           0
> +    Sections:
> +      - sectname:        __nl_symbol_ptr
> +        segname:         __DATA
> +        addr:            0x0000000100001000
> +        size:            16
> +        offset:          0x00000000
> +        align:           3
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000006
> +        reserved1:       0x00000001
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __la_symbol_ptr
> +        segname:         __DATA
> +        addr:            0x0000000100001010
> +        size:            8
> +        offset:          0x00000000
> +        align:           3
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000007
> +        reserved1:       0x00000003
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +  - cmd:             LC_SEGMENT_64
> +    cmdsize:         72
> +    segname:         __LINKEDIT
> +    vmaddr:          4294975488
> +    vmsize:          4096
> +    fileoff:         4096
> +    filesize:        60
> +    maxprot:         7
> +    initprot:        1
> +    nsects:          0
> +    flags:           0
> +  - cmd:             LC_SEGMENT_64
> +    cmdsize:         952
> +    segname:         __DWARF
> +    vmaddr:          4294979584
> +    vmsize:          4096
> +    fileoff:         8192
> +    filesize:        764
> +    maxprot:         7
> +    initprot:        3
> +    nsects:          11
> +    flags:           0
> +    Sections:
> +      - sectname:        __debug_line
> +        segname:         __DWARF
> +        addr:            0x0000000100003000
> +        size:            69
> +        offset:          0x00002000
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __debug_pubnames
> +        segname:         __DWARF
> +        addr:            0x0000000100003045
> +        size:            27
> +        offset:          0x00002045
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __debug_pubtypes
> +        segname:         __DWARF
> +        addr:            0x0000000100003060
> +        size:            35
> +        offset:          0x00002060
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __debug_aranges
> +        segname:         __DWARF
> +        addr:            0x0000000100003083
> +        size:            48
> +        offset:          0x00002083
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __debug_info
> +        segname:         __DWARF
> +        addr:            0x00000001000030B3
> +        size:            121
> +        offset:          0x000020B3
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __debug_abbrev
> +        segname:         __DWARF
> +        addr:            0x000000010000312C
> +        size:            76
> +        offset:          0x0000212C
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __debug_str
> +        segname:         __DWARF
> +        addr:            0x0000000100003178
> +        size:            142
> +        offset:          0x00002178
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __apple_names
> +        segname:         __DWARF
> +        addr:            0x0000000100003206
> +        size:            60
> +        offset:          0x00002206
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __apple_namespac
> +        segname:         __DWARF
> +        addr:            0x0000000100003242
> +        size:            36
> +        offset:          0x00002242
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __apple_types
> +        segname:         __DWARF
> +        addr:            0x0000000100003266
> +        size:            114
> +        offset:          0x00002266
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +      - sectname:        __apple_objc
> +        segname:         __DWARF
> +        addr:            0x00000001000032D8
> +        size:            36
> +        offset:          0x000022D8
> +        align:           0
> +        reloff:          0x00000000
> +        nreloc:          0
> +        flags:           0x00000000
> +        reserved1:       0x00000000
> +        reserved2:       0x00000000
> +        reserved3:       0x00000000
> +LinkEditData:
> +  NameList:
> +    - n_strx:          2
> +      n_type:          0x0F
> +      n_sect:          1
> +      n_desc:          16
> +      n_value:         4294967296
> +    - n_strx:          22
> +      n_type:          0x0F
> +      n_sect:          1
> +      n_desc:          0
> +      n_value:         4294971216
> +  StringTable:
> +    - ''
> +    - ''
> +    - __mh_execute_header
> +    - _main
> +DWARF:
> +  debug_aranges:
> +    - Length:          44
> +      Version:         2
> +      CuOffset:        0
> +      AddrSize:        8
> +      SegSize:         0
> +      Descriptors:
> +        - Address:         0x0000000100000F50
> +          Length:          52
> +...
> +
> +#CHECK: DWARF:
> +#CHECK:   debug_aranges:
> +#CHECK:     - Length:          44
> +#CHECK:       Version:         2
> +#CHECK:       CuOffset:        0
> +#CHECK:       AddrSize:        8
> +#CHECK:       SegSize:         0
> +#CHECK:       Descriptors:
> +#CHECK:         - Address:         0x0000000100000F50
> +#CHECK:           Length:          52
>
> Modified: llvm/trunk/tools/obj2yaml/dwarf2yaml.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/obj2yaml/dwarf2yaml.cpp?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/obj2yaml/dwarf2yaml.cpp (original)
> +++ llvm/trunk/tools/obj2yaml/dwarf2yaml.cpp Thu Dec  8 18:26:44 2016
> @@ -9,6 +9,7 @@
>
>  #include "Error.h"
>  #include "llvm/DebugInfo/DWARF/DWARFContext.h"
> +#include "llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h"
>  #include "llvm/ObjectYAML/DWARFYAML.h"
>
>  using namespace llvm;
> @@ -44,10 +45,33 @@ void dumpDebugStrings(DWARFContextInMemo
>    }
>  }
>
> +void dumpDebugARanges(DWARFContextInMemory &DCtx, DWARFYAML::Data &Y) {
> +  DataExtractor ArangesData(DCtx.getARangeSection(),
> DCtx.isLittleEndian(), 0);
> +  uint32_t Offset = 0;
> +  DWARFDebugArangeSet Set;
> +
> +  while (Set.extract(ArangesData, &Offset)) {
> +    DWARFYAML::ARange Range;
> +    Range.Length = Set.getHeader().Length;
> +    Range.Version = Set.getHeader().Version;
> +    Range.CuOffset = Set.getHeader().CuOffset;
> +    Range.AddrSize = Set.getHeader().AddrSize;
> +    Range.SegSize = Set.getHeader().SegSize;
> +    for (auto Descriptor : Set.descriptors()) {
> +      DWARFYAML::ARangeDescriptor Desc;
> +      Desc.Address = Descriptor.Address;
> +      Desc.Length = Descriptor.Length;
> +      Range.Descriptors.push_back(Desc);
> +    }
> +    Y.ARanges.push_back(Range);
> +  }
> +}
> +
>  std::error_code dwarf2yaml(DWARFContextInMemory &DCtx,
>                             DWARFYAML::Data &Y) {
>    dumpDebugAbbrev(DCtx, Y);
>    dumpDebugStrings(DCtx, Y);
> +  dumpDebugARanges(DCtx, Y);
>
>    return obj2yaml_error::success;
>  }
>
> Modified: llvm/trunk/tools/yaml2obj/yaml2dwarf.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2dwarf.cpp?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/yaml2obj/yaml2dwarf.cpp (original)
> +++ llvm/trunk/tools/yaml2obj/yaml2dwarf.cpp Thu Dec  8 18:26:44 2016
> @@ -19,6 +19,12 @@
>
>  using namespace llvm;
>
> +void ZeroFillBytes(raw_ostream &OS, size_t Size) {
> +  std::vector<uint8_t> FillData;
> +  FillData.insert(FillData.begin(), Size, 0);
> +  OS.write(reinterpret_cast<char *>(FillData.data()), Size);
> +}
> +
>  void yaml2debug_str(raw_ostream &OS, const DWARFYAML::Data &DI) {
>    for (auto Str : DI.DebugStrings) {
>      OS.write(Str.data(), Str.size());
> @@ -39,3 +45,24 @@ void yaml2debug_abbrev(raw_ostream &OS,
>      encodeULEB128(0, OS);
>    }
>  }
> +
> +void yaml2debug_aranges(raw_ostream &OS, const DWARFYAML::Data &DI) {
> +  for (auto Range : DI.ARanges) {
> +    auto HeaderStart = OS.tell();
> +    OS.write(reinterpret_cast<char *>(&Range.Length), 4);
> +    OS.write(reinterpret_cast<char *>(&Range.Version), 2);
> +    OS.write(reinterpret_cast<char *>(&Range.CuOffset), 4);
> +    OS.write(reinterpret_cast<char *>(&Range.AddrSize), 1);
> +    OS.write(reinterpret_cast<char *>(&Range.SegSize), 1);
> +
> +    auto HeaderSize = OS.tell() - HeaderStart;
> +    auto FirstDescriptor = alignTo(HeaderSize, Range.AddrSize * 2);
> +    ZeroFillBytes(OS, FirstDescriptor - HeaderSize);
> +
> +    for (auto Descriptor : Range.Descriptors) {
> +      OS.write(reinterpret_cast<char *>(&Descriptor.Address),
> Range.AddrSize);
> +      OS.write(reinterpret_cast<char *>(&Descriptor.Length),
> Range.AddrSize);
> +    }
> +    ZeroFillBytes(OS, Range.AddrSize * 2);
> +  }
> +}
>
> Modified: llvm/trunk/tools/yaml2obj/yaml2macho.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2macho.cpp?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/yaml2obj/yaml2macho.cpp (original)
> +++ llvm/trunk/tools/yaml2obj/yaml2macho.cpp Thu Dec  8 18:26:44 2016
> @@ -393,6 +393,9 @@ Error MachOWriter::writeDWARFData(raw_os
>      } else if (0 == strncmp(&Section.sectname[0], "__debug_abbrev", 16)) {
>        yaml2debug_abbrev(OS, Obj.DWARF);
>      }
> +    else if (0 == strncmp(&Section.sectname[0], "__debug_aranges", 16)) {
>

Weird bracing ^ ? (else should be on the same line as the preceeding } I
assume?)


> +      yaml2debug_aranges(OS, Obj.DWARF);
> +    }
>    }
>    return Error::success();
>  }
>
> Modified: llvm/trunk/tools/yaml2obj/yaml2obj.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/yaml2obj/yaml2obj.h?rev=289161&r1=289160&r2=289161&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/yaml2obj/yaml2obj.h (original)
> +++ llvm/trunk/tools/yaml2obj/yaml2obj.h Thu Dec  8 18:26:44 2016
> @@ -42,4 +42,6 @@ void yaml2debug_abbrev(llvm::raw_ostream
>  void yaml2debug_str(llvm::raw_ostream &OS,
>                      const llvm::DWARFYAML::Data &DI);
>
> +void yaml2debug_aranges(llvm::raw_ostream &OS, const
> llvm::DWARFYAML::Data &DI);
> +
>  #endif
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161212/2023848e/attachment.html>


More information about the llvm-commits mailing list