Author: emaste
Date: Mon Apr 17 23:14:26 2017
New Revision: 317073
URL: https://svnweb.freebsd.org/changeset/base/317073

Log:
  Import ELF Tool Chain snapshot at r3520
  
  From http://svn.code.sf.net/p/elftoolchain/code/

Added:
  vendor/elftoolchain/dist/ar/os.FreeBSD.mk   (contents, props changed)
  vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk   (contents, props changed)
  vendor/elftoolchain/dist/test/ar/plugin/os.FreeBSD.mk   (contents, props 
changed)
  vendor/elftoolchain/dist/test/cxxfilt/ts/regression/
  vendor/elftoolchain/dist/test/cxxfilt/ts/regression/Makefile   (contents, 
props changed)
  vendor/elftoolchain/dist/test/cxxfilt/ts/regression/tclist
Modified:
  vendor/elftoolchain/dist/addr2line/addr2line.c
  vendor/elftoolchain/dist/common/elfdefinitions.h
  vendor/elftoolchain/dist/cxxfilt/cxxfilt.c
  vendor/elftoolchain/dist/elfcopy/main.c
  vendor/elftoolchain/dist/elfcopy/pe.c
  vendor/elftoolchain/dist/elfcopy/symbols.c
  vendor/elftoolchain/dist/elfdump/elfdump.c
  vendor/elftoolchain/dist/libdwarf/dwarf.h
  vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c
  vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3
  vendor/elftoolchain/dist/libdwarf/dwarf_dump.c
  vendor/elftoolchain/dist/libelf/gelf_newehdr.3
  vendor/elftoolchain/dist/libelf/gelf_newphdr.3
  vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3
  vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c
  vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c
  vendor/elftoolchain/dist/libelftc/libelftc_dem_gnu2.c
  vendor/elftoolchain/dist/libelftc/libelftc_dem_gnu3.c
  vendor/elftoolchain/dist/nm/nm.c
  vendor/elftoolchain/dist/readelf/readelf.c
  vendor/elftoolchain/dist/strings/strings.c
  vendor/elftoolchain/dist/test/cxxfilt/tet_scen
  vendor/elftoolchain/dist/test/cxxfilt/ts/Makefile

Modified: vendor/elftoolchain/dist/addr2line/addr2line.c
==============================================================================
--- vendor/elftoolchain/dist/addr2line/addr2line.c      Mon Apr 17 22:02:09 
2017        (r317072)
+++ vendor/elftoolchain/dist/addr2line/addr2line.c      Mon Apr 17 23:14:26 
2017        (r317073)
@@ -40,7 +40,7 @@
 #include "uthash.h"
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: addr2line.c 3446 2016-05-03 01:31:17Z emaste $");
+ELFTC_VCSID("$Id: addr2line.c 3499 2016-11-25 16:06:29Z emaste $");
 
 struct Func {
        char *name;
@@ -720,11 +720,11 @@ main(int argc, char **argv)
        if (argc > 0)
                for (i = 0; i < argc; i++)
                        translate(dbg, e, argv[i]);
-       else
-               while (fgets(line, sizeof(line), stdin) != NULL) {
+       else {
+               setvbuf(stdout, NULL, _IOLBF, 0);
+               while (fgets(line, sizeof(line), stdin) != NULL)
                        translate(dbg, e, line);
-                       fflush(stdout);
-               }
+       }
 
        dwarf_finish(dbg, &de);
 

Added: vendor/elftoolchain/dist/ar/os.FreeBSD.mk
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ vendor/elftoolchain/dist/ar/os.FreeBSD.mk   Mon Apr 17 23:14:26 2017        
(r317073)
@@ -0,0 +1,2 @@
+DPADD+= ${LIBBZ2}
+LDADD+= -lbz2

Modified: vendor/elftoolchain/dist/common/elfdefinitions.h
==============================================================================
--- vendor/elftoolchain/dist/common/elfdefinitions.h    Mon Apr 17 22:02:09 
2017        (r317072)
+++ vendor/elftoolchain/dist/common/elfdefinitions.h    Mon Apr 17 23:14:26 
2017        (r317073)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: elfdefinitions.h 3485 2016-08-18 13:38:52Z emaste $
+ * $Id: elfdefinitions.h 3515 2017-01-24 22:04:22Z emaste $
  */
 
 /*
@@ -153,6 +153,8 @@ _ELF_DEFINE_DT(DT_SUNW_FILTER,      0x60
        "offset of string naming standard filtees")                     \
 _ELF_DEFINE_DT(DT_SUNW_CAP,         0x60000010UL,                      \
        "address of hardware capabilities section")                     \
+_ELF_DEFINE_DT(DT_SUNW_ASLR,        0x60000023UL,                      \
+       "Address Space Layout Randomization flag")                      \
 _ELF_DEFINE_DT(DT_HIOS,             0x6FFFF000UL,                      \
        "end of OS-specific types")                                     \
 _ELF_DEFINE_DT(DT_VALRNGLO,         0x6FFFFD00UL,                      \
@@ -919,6 +921,12 @@ _ELF_DEFINE_PT(PT_GNU_STACK,           0x6474E
        "Stack flags")                                          \
 _ELF_DEFINE_PT(PT_GNU_RELRO,       0x6474E552UL,               \
        "Segment becomes read-only after relocation")           \
+_ELF_DEFINE_PT(PT_OPENBSD_RANDOMIZE,0x65A3DBE6UL,              \
+       "Segment filled with random data")                      \
+_ELF_DEFINE_PT(PT_OPENBSD_WXNEEDED, 0x65A3DBE7UL,              \
+       "Program violates W^X")                                 \
+_ELF_DEFINE_PT(PT_OPENBSD_BOOTDATA, 0x65A41BE6UL,              \
+       "Boot data")                                            \
 _ELF_DEFINE_PT(PT_SUNWBSS,          0x6FFFFFFAUL,              \
        "A Solaris .SUNW_bss section")                          \
 _ELF_DEFINE_PT(PT_SUNWSTACK,        0x6FFFFFFBUL,              \

Modified: vendor/elftoolchain/dist/cxxfilt/cxxfilt.c
==============================================================================
--- vendor/elftoolchain/dist/cxxfilt/cxxfilt.c  Mon Apr 17 22:02:09 2017        
(r317072)
+++ vendor/elftoolchain/dist/cxxfilt/cxxfilt.c  Mon Apr 17 23:14:26 2017        
(r317073)
@@ -35,7 +35,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: cxxfilt.c 3454 2016-05-07 17:11:05Z kaiwang27 $");
+ELFTC_VCSID("$Id: cxxfilt.c 3499 2016-11-25 16:06:29Z emaste $");
 
 #define        STRBUFSZ        8192
 
@@ -175,6 +175,7 @@ main(int argc, char **argv)
        } else {
                p = 0;
                for (;;) {
+                       setvbuf(stdout, NULL, _IOLBF, 0);
                        c = fgetc(stdin);
                        if (c == EOF || !(isalnum(c) || strchr(".$_", c))) {
                                if (p > 0) {

Modified: vendor/elftoolchain/dist/elfcopy/main.c
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/main.c     Mon Apr 17 22:02:09 2017        
(r317072)
+++ vendor/elftoolchain/dist/elfcopy/main.c     Mon Apr 17 23:14:26 2017        
(r317073)
@@ -39,7 +39,7 @@
 
 #include "elfcopy.h"
 
-ELFTC_VCSID("$Id: main.c 3446 2016-05-03 01:31:17Z emaste $");
+ELFTC_VCSID("$Id: main.c 3520 2017-04-17 01:47:52Z kaiwang27 $");
 
 enum options
 {
@@ -285,6 +285,7 @@ create_elf(struct elfcopy *ecp)
        size_t           ishnum;
 
        ecp->flags |= SYMTAB_INTACT;
+       ecp->flags &= ~SYMTAB_EXIST;
 
        /* Create EHDR. */
        if (gelf_getehdr(ecp->ein, &ieh) == NULL)
@@ -499,6 +500,10 @@ free_elf(struct elfcopy *ecp)
                }
        }
 
+       ecp->symtab = NULL;
+       ecp->strtab = NULL;
+       ecp->shstrtab = NULL;
+
        if (ecp->secndx != NULL) {
                free(ecp->secndx);
                ecp->secndx = NULL;

Added: vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ vendor/elftoolchain/dist/elfcopy/os.FreeBSD.mk      Mon Apr 17 23:14:26 
2017        (r317073)
@@ -0,0 +1,4 @@
+.if !defined(LIBELF_AR)
+DPADD+= ${LIBBZ2}
+LDADD+= -lbz2
+.endif

Modified: vendor/elftoolchain/dist/elfcopy/pe.c
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/pe.c       Mon Apr 17 22:02:09 2017        
(r317072)
+++ vendor/elftoolchain/dist/elfcopy/pe.c       Mon Apr 17 23:14:26 2017        
(r317073)
@@ -34,7 +34,7 @@
 
 #include "elfcopy.h"
 
-ELFTC_VCSID("$Id: pe.c 3490 2016-08-31 00:12:22Z emaste $");
+ELFTC_VCSID("$Id: pe.c 3508 2016-12-27 06:19:39Z kaiwang27 $");
 
 /* Convert ELF object to Portable Executable (PE). */
 void
@@ -70,7 +70,7 @@ create_pe(struct elfcopy *ecp, int ifd, 
                errx(EXIT_FAILURE, "gelf_getehdr() failed: %s",
                    elf_errmsg(-1));
 
-       if (elf_getshstrndx(ecp->ein, &indx) == 0)
+       if (elf_getshstrndx(e, &indx) == 0)
                errx(EXIT_FAILURE, "elf_getshstrndx() failed: %s",
                    elf_errmsg(-1));
 
@@ -124,7 +124,7 @@ create_pe(struct elfcopy *ecp, int ifd, 
                        (void) elf_errno();
                        continue;
                }
-               if ((name = elf_strptr(ecp->ein, indx, sh.sh_name)) ==
+               if ((name = elf_strptr(e, indx, sh.sh_name)) ==
                    NULL) {
                        warnx("elf_strptr() failed: %s", elf_errmsg(-1));
                        (void) elf_errno();
@@ -210,12 +210,14 @@ create_pe(struct elfcopy *ecp, int ifd, 
                }
                pb->pb_align = 1;
                pb->pb_off = 0;
-               pb->pb_size = roundup(sh.sh_size, poh.oh_filealign);
-               if ((pb->pb_buf = calloc(1, pb->pb_size)) == NULL) {
-                       warn("calloc failed");
-                       continue;
+               if (sh.sh_type != SHT_NOBITS) {
+                       pb->pb_size = roundup(sh.sh_size, poh.oh_filealign);
+                       if ((pb->pb_buf = calloc(1, pb->pb_size)) == NULL) {
+                               warn("calloc failed");
+                               continue;
+                       }
+                       memcpy(pb->pb_buf, d->d_buf, sh.sh_size);
                }
-               memcpy(pb->pb_buf, d->d_buf, sh.sh_size);
        }
        elferr = elf_errno();
        if (elferr != 0)

Modified: vendor/elftoolchain/dist/elfcopy/symbols.c
==============================================================================
--- vendor/elftoolchain/dist/elfcopy/symbols.c  Mon Apr 17 22:02:09 2017        
(r317072)
+++ vendor/elftoolchain/dist/elfcopy/symbols.c  Mon Apr 17 23:14:26 2017        
(r317073)
@@ -34,7 +34,7 @@
 
 #include "elfcopy.h"
 
-ELFTC_VCSID("$Id: symbols.c 3446 2016-05-03 01:31:17Z emaste $");
+ELFTC_VCSID("$Id: symbols.c 3520 2017-04-17 01:47:52Z kaiwang27 $");
 
 /* Symbol table buffer structure. */
 struct symbuf {
@@ -670,6 +670,8 @@ create_symtab(struct elfcopy *ecp)
        sy = ecp->symtab;
        st = ecp->strtab;
 
+       assert(sy != NULL && st != NULL);
+
        /*
         * Set section index map for .symtab and .strtab. We need to set
         * these map because otherwise symbols which refer to .symtab and

Modified: vendor/elftoolchain/dist/elfdump/elfdump.c
==============================================================================
--- vendor/elftoolchain/dist/elfdump/elfdump.c  Mon Apr 17 22:02:09 2017        
(r317072)
+++ vendor/elftoolchain/dist/elfdump/elfdump.c  Mon Apr 17 23:14:26 2017        
(r317073)
@@ -50,7 +50,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: elfdump.c 3482 2016-08-02 18:47:00Z emaste $");
+ELFTC_VCSID("$Id: elfdump.c 3497 2016-10-17 20:57:22Z emaste $");
 
 #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION)
 #include "native-elf-format.h"
@@ -223,9 +223,9 @@ d_tags(uint64_t tag)
        case 0x6ffffff0:        return "DT_GNU_VERSYM";
        /* 0x70000000 - 0x7fffffff processor-specific semantics */
        case 0x70000000:        return "DT_IA_64_PLT_RESERVE";
-       case 0x7ffffffd:        return "DT_SUNW_AUXILIARY";
-       case 0x7ffffffe:        return "DT_SUNW_USED";
-       case 0x7fffffff:        return "DT_SUNW_FILTER";
+       case DT_AUXILIARY:      return "DT_AUXILIARY";
+       case DT_USED:           return "DT_USED";
+       case DT_FILTER:         return "DT_FILTER";
        }
 
        snprintf(unknown_buf, sizeof(unknown_buf),

Modified: vendor/elftoolchain/dist/libdwarf/dwarf.h
==============================================================================
--- vendor/elftoolchain/dist/libdwarf/dwarf.h   Mon Apr 17 22:02:09 2017        
(r317072)
+++ vendor/elftoolchain/dist/libdwarf/dwarf.h   Mon Apr 17 23:14:26 2017        
(r317073)
@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Id: dwarf.h 3052 2014-05-26 20:36:24Z kaiwang27 $
+ * $Id: dwarf.h 3494 2016-09-20 17:16:13Z emaste $
  */
 
 #ifndef        _DWARF_H_
@@ -208,6 +208,25 @@
 #define DW_AT_lo_user                  0x2000
 #define DW_AT_hi_user                  0x3fff
 
+/* SGI/MIPS extensions. */
+#define DW_AT_MIPS_fde                         0x2001
+#define DW_AT_MIPS_loop_begin                  0x2002
+#define DW_AT_MIPS_tail_loop_begin             0x2003
+#define DW_AT_MIPS_epilog_begin                        0x2004
+#define DW_AT_MIPS_loop_unroll_factor          0x2005
+#define DW_AT_MIPS_software_pipeline_depth     0x2006
+#define DW_AT_MIPS_linkage_name                        0x2007
+#define DW_AT_MIPS_stride                      0x2008
+#define DW_AT_MIPS_abstract_name               0x2009
+#define DW_AT_MIPS_clone_origin                        0x200a
+#define DW_AT_MIPS_has_inlines                 0x200b
+#define DW_AT_MIPS_stride_byte                 0x200c
+#define DW_AT_MIPS_stride_elem                 0x200d
+#define DW_AT_MIPS_ptr_dopetype                        0x200e
+#define DW_AT_MIPS_allocatable_dopetype                0x200f
+#define DW_AT_MIPS_assumed_shape_dopetype      0x2010
+#define DW_AT_MIPS_assumed_size                        0x2011
+
 /* GNU extensions. */
 #define        DW_AT_sf_names                          0x2101
 #define        DW_AT_src_info                          0x2102
@@ -234,6 +253,21 @@
 #define        DW_AT_GNU_all_call_sites                0x2117
 #define        DW_AT_GNU_all_source_call_sites         0x2118
 
+/* Apple extensions. */
+#define        DW_AT_APPLE_optimized                   0x3fe1
+#define        DW_AT_APPLE_flags                       0x3fe2
+#define        DW_AT_APPLE_isa                         0x3fe3
+#define        DW_AT_APPLE_block                       0x3fe4
+#define        DW_AT_APPLE_major_runtime_vers          0x3fe5
+#define        DW_AT_APPLE_runtime_class               0x3fe6
+#define        DW_AT_APPLE_omit_frame_ptr              0x3fe7
+#define        DW_AT_APPLE_property_name               0x3fe8
+#define        DW_AT_APPLE_property_getter             0x3fe9
+#define        DW_AT_APPLE_property_setter             0x3fea
+#define        DW_AT_APPLE_property_attribute          0x3feb
+#define        DW_AT_APPLE_objc_complete_type          0x3fec
+#define        DW_AT_APPLE_property                    0x3fed
+
 #define DW_FORM_addr                   0x01
 #define DW_FORM_block2                 0x03
 #define DW_FORM_block4                 0x04
@@ -490,6 +524,7 @@
 #define DW_LANG_UPC                    0x0012
 #define DW_LANG_D                      0x0013
 #define DW_LANG_lo_user                        0x8000
+#define DW_LANG_Mips_Assembler         0x8001
 #define DW_LANG_hi_user                        0xffff
 
 #define DW_ID_case_sensitive           0x00

Modified: vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c
==============================================================================
--- vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c   Mon Apr 17 22:02:09 
2017        (r317072)
+++ vendor/elftoolchain/dist/libdwarf/dwarf_attrval.c   Mon Apr 17 23:14:26 
2017        (r317073)
@@ -26,7 +26,7 @@
 
 #include "_libdwarf.h"
 
-ELFTC_VCSID("$Id: dwarf_attrval.c 3159 2015-02-15 21:43:27Z emaste $");
+ELFTC_VCSID("$Id: dwarf_attrval.c 3509 2016-12-29 03:58:41Z emaste $");
 
 int
 dwarf_attrval_flag(Dwarf_Die die, Dwarf_Half attr, Dwarf_Bool *valp, 
Dwarf_Error *err)
@@ -145,6 +145,7 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw
        Dwarf_Die die1;
        Dwarf_Unsigned val;
        Dwarf_Debug dbg;
+       int first;
 
        dbg = die != NULL ? die->die_dbg : NULL;
 
@@ -155,14 +156,16 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw
 
        *valp = 0;
 
-       if ((at = _dwarf_attr_find(die, attr)) == NULL && attr != DW_AT_type) {
-               DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY);
-               return (DW_DLV_NO_ENTRY);
-       }
-
        die1 = NULL;
-       if (at == NULL &&
-           (at = _dwarf_attr_find(die, DW_AT_abstract_origin)) != NULL) {
+       for (;;) {
+               if ((at = _dwarf_attr_find(die, attr)) != NULL ||
+                   attr != DW_AT_type)
+                       break;
+               if ((at = _dwarf_attr_find(die, DW_AT_abstract_origin)) ==
+                   NULL &&
+                   (at = _dwarf_attr_find(die, DW_AT_specification)) == NULL)
+                       break;
+
                switch (at->at_form) {
                case DW_FORM_ref1:
                case DW_FORM_ref2:
@@ -170,13 +173,15 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw
                case DW_FORM_ref8:
                case DW_FORM_ref_udata:
                        val = at->u[0].u64;
-                       if ((die1 = _dwarf_die_find(die, val)) == NULL ||
-                           (at = _dwarf_attr_find(die1, attr)) == NULL) {
-                               if (die1 != NULL)
-                                       dwarf_dealloc(dbg, die1, DW_DLA_DIE);
+                       first = (die1 == NULL);
+                       die1 = _dwarf_die_find(die, val);
+                       if (!first)
+                               dwarf_dealloc(dbg, die, DW_DLA_DIE);
+                       if (die1 == NULL) {
                                DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY);
                                return (DW_DLV_NO_ENTRY);
                        }
+                       die = die1;
                        break;
                default:
                        DWARF_SET_ERROR(dbg, err, DW_DLE_ATTR_FORM_BAD);
@@ -184,6 +189,11 @@ dwarf_attrval_unsigned(Dwarf_Die die, Dw
                }
        }
 
+       if (at == NULL) {
+               DWARF_SET_ERROR(dbg, err, DW_DLE_NO_ENTRY);
+               return (DW_DLV_NO_ENTRY);
+       }
+
        switch (at->at_form) {
        case DW_FORM_addr:
        case DW_FORM_data1:

Modified: vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3
==============================================================================
--- vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3    Mon Apr 17 
22:02:09 2017        (r317072)
+++ vendor/elftoolchain/dist/libdwarf/dwarf_attrval_signed.3    Mon Apr 17 
23:14:26 2017        (r317073)
@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $Id: dwarf_attrval_signed.3 2980 2014-01-21 20:15:54Z kaiwang27 $
+.\" $Id: dwarf_attrval_signed.3 3509 2016-12-29 03:58:41Z emaste $
 .\"
-.Dd January 18, 2014
+.Dd December 26, 2016
 .Os
 .Dt DWARF_ATTRVAL_SIGNED 3
 .Sh NAME
@@ -168,17 +168,22 @@ or
 .Pp
 If the attribute named by argument
 .Ar attr
-is not present in the debugging information entry referenced by
-argument
+is
+.Dv DW_AT_type
+and is not present in the debugging information entry referenced by argument
 .Ar die ,
 and if a
 .Dv DW_AT_abstract_origin
+or
+.Dv DW_AT_specification
 attribute is present in the debugging information entry,
 function
 .Fn dwarf_attrval_unsigned
 will search for the named attribute in the debugging information entry
 referenced by the
 .Dv DW_AT_abstract_origin
+or
+.Dv DW_AT_specification
 attribute.
 .Sh RETURN VALUES
 On success, these functions returns

Modified: vendor/elftoolchain/dist/libdwarf/dwarf_dump.c
==============================================================================
--- vendor/elftoolchain/dist/libdwarf/dwarf_dump.c      Mon Apr 17 22:02:09 
2017        (r317072)
+++ vendor/elftoolchain/dist/libdwarf/dwarf_dump.c      Mon Apr 17 23:14:26 
2017        (r317073)
@@ -27,7 +27,7 @@
 
 #include "_libdwarf.h"
 
-ELFTC_VCSID("$Id: dwarf_dump.c 3052 2014-05-26 20:36:24Z kaiwang27 $");
+ELFTC_VCSID("$Id: dwarf_dump.c 3494 2016-09-20 17:16:13Z emaste $");
 
 int
 dwarf_get_ACCESS_name(unsigned access, const char **s)
@@ -262,6 +262,40 @@ dwarf_get_AT_name(unsigned attr, const c
                *s = "DW_AT_body_begin"; break;
        case DW_AT_body_end:
                *s = "DW_AT_body_end"; break;
+       case DW_AT_MIPS_fde:
+               *s = "DW_AT_MIPS_fde"; break;
+       case DW_AT_MIPS_loop_begin:
+               *s = "DW_AT_MIPS_loop_begin"; break;
+       case DW_AT_MIPS_tail_loop_begin:
+               *s = "DW_AT_MIPS_tail_loop_begin"; break;
+       case DW_AT_MIPS_epilog_begin:
+               *s = "DW_AT_MIPS_epilog_begin"; break;
+       case DW_AT_MIPS_loop_unroll_factor:
+               *s = "DW_AT_MIPS_loop_unroll_factor"; break;
+       case DW_AT_MIPS_software_pipeline_depth:
+               *s = "DW_AT_MIPS_software_pipeline_depth"; break;
+       case DW_AT_MIPS_linkage_name:
+               *s = "DW_AT_MIPS_linkage_name"; break;
+       case DW_AT_MIPS_stride:
+               *s = "DW_AT_MIPS_stride"; break;
+       case DW_AT_MIPS_abstract_name:
+               *s = "DW_AT_MIPS_abstract_name"; break;
+       case DW_AT_MIPS_clone_origin:
+               *s = "DW_AT_MIPS_clone_origin"; break;
+       case DW_AT_MIPS_has_inlines:
+               *s = "DW_AT_MIPS_has_inlines"; break;
+       case DW_AT_MIPS_stride_byte:
+               *s = "DW_AT_MIPS_stride_byte"; break;
+       case DW_AT_MIPS_stride_elem:
+               *s = "DW_AT_MIPS_stride_elem"; break;
+       case DW_AT_MIPS_ptr_dopetype:
+               *s = "DW_AT_MIPS_ptr_dopetype"; break;
+       case DW_AT_MIPS_allocatable_dopetype:
+               *s = "DW_AT_MIPS_allocatable_dopetype"; break;
+       case DW_AT_MIPS_assumed_shape_dopetype:
+               *s = "DW_AT_MIPS_assumed_shape_dopetype"; break;
+       case DW_AT_MIPS_assumed_size:
+               *s = "DW_AT_MIPS_assumed_size"; break;
        case DW_AT_GNU_vector:
                *s = "DW_AT_GNU_vector"; break;
        case DW_AT_GNU_guarded_by:
@@ -298,6 +332,32 @@ dwarf_get_AT_name(unsigned attr, const c
                *s = "DW_AT_GNU_all_call_sites"; break;
        case DW_AT_GNU_all_source_call_sites:
                *s = "DW_AT_GNU_all_source_call_sites"; break;
+       case DW_AT_APPLE_optimized:
+               *s = "DW_AT_APPLE_optimized"; break;
+       case DW_AT_APPLE_flags:
+               *s = "DW_AT_APPLE_flags"; break;
+       case DW_AT_APPLE_isa:
+               *s = "DW_AT_APPLE_isa"; break;
+       case DW_AT_APPLE_block:
+               *s = "DW_AT_APPLE_block"; break;
+       case DW_AT_APPLE_major_runtime_vers:
+               *s = "DW_AT_APPLE_major_runtime_vers"; break;
+       case DW_AT_APPLE_runtime_class:
+               *s = "DW_AT_APPLE_runtime_class"; break;
+       case DW_AT_APPLE_omit_frame_ptr:
+               *s = "DW_AT_APPLE_omit_frame_ptr"; break;
+       case DW_AT_APPLE_property_name:
+               *s = "DW_AT_APPLE_property_name"; break;
+       case DW_AT_APPLE_property_getter:
+               *s = "DW_AT_APPLE_property_getter"; break;
+       case DW_AT_APPLE_property_setter:
+               *s = "DW_AT_APPLE_property_setter"; break;
+       case DW_AT_APPLE_property_attribute:
+               *s = "DW_AT_APPLE_property_attribute"; break;
+       case DW_AT_APPLE_objc_complete_type:
+               *s = "DW_AT_APPLE_objc_complete_type"; break;
+       case DW_AT_APPLE_property:
+               *s = "DW_AT_APPLE_property"; break;
        default:
                return (DW_DLV_NO_ENTRY);
        }
@@ -730,6 +790,8 @@ dwarf_get_LANG_name(unsigned lang, const
                *s = "DW_LANG_D"; break;
        case DW_LANG_lo_user:
                *s = "DW_LANG_lo_user"; break;
+       case DW_LANG_Mips_Assembler:
+               *s = "DW_LANG_Mips_Assembler"; break;
        case DW_LANG_hi_user:
                *s = "DW_LANG_hi_user"; break;
        default:

Modified: vendor/elftoolchain/dist/libelf/gelf_newehdr.3
==============================================================================
--- vendor/elftoolchain/dist/libelf/gelf_newehdr.3      Mon Apr 17 22:02:09 
2017        (r317072)
+++ vendor/elftoolchain/dist/libelf/gelf_newehdr.3      Mon Apr 17 23:14:26 
2017        (r317073)
@@ -21,7 +21,7 @@
 .\" out of the use of this software, even if advised of the possibility of
 .\" such damage.
 .\"
-.\" $Id: gelf_newehdr.3 189 2008-07-20 10:38:08Z jkoshy $
+.\" $Id: gelf_newehdr.3 3500 2016-12-04 11:08:44Z jkoshy $
 .\"
 .Dd October 22, 2007
 .Os
@@ -127,6 +127,15 @@ flag on ELF descriptor
 .Sh RETURN VALUES
 These functions return a pointer to a translated header descriptor
 if successful, or NULL on failure.
+.Sh COMPATIBILITY
+The
+.Fn gelf_newehdr
+function uses a type of
+.Ft "void *"
+for its returned value.
+This differs from some other implementations of the ELF(3) API, which use an
+.Ft "unsigned long"
+return type.
 .Sh ERRORS
 These functions can fail with the following errors:
 .Bl -tag -width "[ELF_E_RESOURCE]"

Modified: vendor/elftoolchain/dist/libelf/gelf_newphdr.3
==============================================================================
--- vendor/elftoolchain/dist/libelf/gelf_newphdr.3      Mon Apr 17 22:02:09 
2017        (r317072)
+++ vendor/elftoolchain/dist/libelf/gelf_newphdr.3      Mon Apr 17 23:14:26 
2017        (r317073)
@@ -21,7 +21,7 @@
 .\" out of the use of this software, even if advised of the possibility of
 .\" such damage.
 .\"
-.\" $Id: gelf_newphdr.3 189 2008-07-20 10:38:08Z jkoshy $
+.\" $Id: gelf_newphdr.3 3500 2016-12-04 11:08:44Z jkoshy $
 .\"
 .Dd October 22, 2007
 .Os
@@ -97,6 +97,15 @@ will no longer be valid.
 .Sh RETURN VALUES
 The functions a valid pointer if successful, or NULL in case an error
 was encountered.
+.Sh COMPATIBILITY
+The
+.Fn gelf_newphdr
+function uses a type of
+.Ft "void *"
+for its returned value.
+This differs from some other implementations of the ELF(3) API, which use an
+.Ft "unsigned long"
+return type.
 .Sh ERRORS
 These functions may fail with the following errors:
 .Bl -tag -width "[ELF_E_RESOURCE]"

Modified: vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3
==============================================================================
--- vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3   Mon Apr 17 
22:02:09 2017        (r317072)
+++ vendor/elftoolchain/dist/libelftc/elftc_bfd_find_target.3   Mon Apr 17 
23:14:26 2017        (r317073)
@@ -21,7 +21,7 @@
 .\" out of the use of this software, even if advised of the possibility of
 .\" such damage.
 .\"
-.\" $Id: elftc_bfd_find_target.3 3488 2016-08-24 18:15:57Z emaste $
+.\" $Id: elftc_bfd_find_target.3 3516 2017-02-10 02:33:08Z emaste $
 .\"
 .Dd November 30, 2011
 .Os
@@ -74,6 +74,7 @@ Known descriptor names and their propert
 .It Li elf32-littlearm Ta ELF Ta LSB Ta 32
 .It Li elf32-littlemips Ta ELF Ta LSB Ta 32
 .It Li elf32-powerpc Ta ELF Ta MSB Ta 32
+.It Li elf32-powerpc-freebsd Ta ELF Ta MSB Ta 32
 .It Li elf32-powerpcle Ta ELF Ta LSB Ta 32
 .It Li elf32-sh Ta ELF Ta MSB Ta 32
 .It Li elf32-shl Ta ELF Ta LSB Ta 32
@@ -82,6 +83,8 @@ Known descriptor names and their propert
 .It Li elf32-shbig-linux Ta ELF Ta MSB Ta 32
 .It Li elf32-shl-linux Ta ELF Ta LSB Ta 32
 .It Li elf32-sparc Ta ELF Ta MSB Ta 32
+.It Li elf32-tradbigmips Ta ELF Ta MSB Ta 32
+.It Li elf32-tradlittlemips Ta ELF Ta LSB Ta 32
 .It Li elf64-alpha Ta ELF Ta LSB Ta 64
 .It Li elf64-alpha-freebsd Ta ELF Ta LSB Ta 64
 .It Li elf64-big Ta ELF Ta MSB Ta 64
@@ -92,6 +95,7 @@ Known descriptor names and their propert
 .It Li elf64-littleaarch64 Ta ELF Ta LSB Ta 64
 .It Li elf64-littlemips Ta ELF Ta LSB Ta 64
 .It Li elf64-powerpc Ta ELF Ta MSB Ta 64
+.It Li elf64-powerpc-freebsd Ta ELF Ta MSB Ta 64
 .It Li elf64-powerpcle Ta ELF Ta LSB Ta 64
 .It Li elf64-sh64 Ta ELF Ta MSB Ta 64
 .It Li elf64-sh64l Ta ELF Ta LSB Ta 64
@@ -101,6 +105,8 @@ Known descriptor names and their propert
 .It Li elf64-sh64-linux Ta ELF Ta LSB Ta 64
 .It Li elf64-sparc Ta ELF Ta MSB Ta 64
 .It Li elf64-sparc-freebsd Ta ELF Ta MSB Ta 64
+.It Li elf64-tradbigmips Ta ELF Ta MSB Ta 64
+.It Li elf64-tradlittlemips Ta ELF Ta LSB Ta 64
 .It Li elf64-x86-64 Ta ELF Ta LSB Ta 64
 .It Li elf64-x86-64-freebsd Ta ELF Ta LSB Ta 64
 .It Li ihex Ta IHEX Ta - Ta -

Modified: vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c
==============================================================================
--- vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c      Mon Apr 17 
22:02:09 2017        (r317072)
+++ vendor/elftoolchain/dist/libelftc/libelftc_bfdtarget.c      Mon Apr 17 
23:14:26 2017        (r317073)
@@ -30,7 +30,7 @@
 
 #include "_libelftc.h"
 
-ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3488 2016-08-24 18:15:57Z emaste $");
+ELFTC_VCSID("$Id: libelftc_bfdtarget.c 3516 2017-02-10 02:33:08Z emaste $");
 
 struct _Elftc_Bfd_Target _libelftc_targets[] = {
 
@@ -127,6 +127,15 @@ struct _Elftc_Bfd_Target _libelftc_targe
        },
 
        {
+               .bt_name      = "elf32-powerpc-freebsd",
+               .bt_type      = ETF_ELF,
+               .bt_byteorder = ELFDATA2MSB,
+               .bt_elfclass  = ELFCLASS32,
+               .bt_machine   = EM_PPC,
+               .bt_osabi     = ELFOSABI_FREEBSD,
+       },
+
+       {
                .bt_name      = "elf32-powerpcle",
                .bt_type      = ETF_ELF,
                .bt_byteorder = ELFDATA2LSB,
@@ -195,6 +204,22 @@ struct _Elftc_Bfd_Target _libelftc_targe
        },
 
        {
+               .bt_name      = "elf32-tradbigmips",
+               .bt_type      = ETF_ELF,
+               .bt_byteorder = ELFDATA2MSB,
+               .bt_elfclass  = ELFCLASS32,
+               .bt_machine   = EM_MIPS,
+       },
+
+       {
+               .bt_name      = "elf32-tradlittlemips",
+               .bt_type      = ETF_ELF,
+               .bt_byteorder = ELFDATA2LSB,
+               .bt_elfclass  = ELFCLASS32,
+               .bt_machine   = EM_MIPS,
+       },
+
+       {
                .bt_name      = "elf64-alpha",
                .bt_type      = ETF_ELF,
                .bt_byteorder = ELFDATA2LSB,
@@ -274,6 +299,15 @@ struct _Elftc_Bfd_Target _libelftc_targe
        },
 
        {
+               .bt_name      = "elf64-powerpc-freebsd",
+               .bt_type      = ETF_ELF,
+               .bt_byteorder = ELFDATA2MSB,
+               .bt_elfclass  = ELFCLASS64,
+               .bt_machine   = EM_PPC64,
+               .bt_osabi     = ELFOSABI_FREEBSD,
+       },
+
+       {
                .bt_name      = "elf64-powerpcle",
                .bt_type      = ETF_ELF,
                .bt_byteorder = ELFDATA2LSB,
@@ -351,6 +385,22 @@ struct _Elftc_Bfd_Target _libelftc_targe
        },
 
        {
+               .bt_name      = "elf64-tradbigmips",
+               .bt_type      = ETF_ELF,
+               .bt_byteorder = ELFDATA2MSB,
+               .bt_elfclass  = ELFCLASS64,
+               .bt_machine   = EM_MIPS,
+       },
+
+       {
+               .bt_name      = "elf64-tradlittlemips",
+               .bt_type      = ETF_ELF,
+               .bt_byteorder = ELFDATA2LSB,
+               .bt_elfclass  = ELFCLASS64,
+               .bt_machine   = EM_MIPS,
+       },
+
+       {
                .bt_name      = "elf64-x86-64",
                .bt_type      = ETF_ELF,
                .bt_byteorder = ELFDATA2LSB,

Modified: vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c
==============================================================================
--- vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c        Mon Apr 17 
22:02:09 2017        (r317072)
+++ vendor/elftoolchain/dist/libelftc/libelftc_dem_arm.c        Mon Apr 17 
23:14:26 2017        (r317073)
@@ -37,7 +37,7 @@
 
 #include "_libelftc.h"
 
-ELFTC_VCSID("$Id: libelftc_dem_arm.c 3447 2016-05-03 13:32:23Z emaste $");
+ELFTC_VCSID("$Id: libelftc_dem_arm.c 3513 2016-12-29 07:04:22Z kaiwang27 $");
 
 /**
  * @file cpp_demangle_arm.c
@@ -68,6 +68,7 @@ struct demangle_data {
 };
 
 #define SIMPLE_HASH(x,y)       (64 * x + y)
+#define VEC_PUSH_STR(d,s)      vector_str_push((d), (s), strlen((s)))
 #define        CPP_DEMANGLE_ARM_TRY    128
 
 static void    dest_cstring(struct cstring *);
@@ -137,7 +138,7 @@ cpp_demangle_ARM(const char *org)
        ++d.p;
 
        /* start argument types */
-       if (vector_str_push(&d.vec, "(", 1) == false)
+       if (VEC_PUSH_STR(&d.vec, "(") == false)
                goto clean;
 
        for (;;) {
@@ -169,21 +170,21 @@ cpp_demangle_ARM(const char *org)
                        goto clean;
 
                if (d.ptr == true) {
-                       if (vector_str_push(&d.vec, "*", 1) == false)
+                       if (VEC_PUSH_STR(&d.vec, "*") == false)
                                goto clean;
 
                        d.ptr = false;
                }
 
                if (d.ref == true) {
-                       if (vector_str_push(&d.vec, "&", 1) == false)
+                       if (VEC_PUSH_STR(&d.vec, "&") == false)
                                goto clean;
 
                        d.ref = false;
                }
 
                if (d.cnst == true) {
-                       if (vector_str_push(&d.vec, " const", 6) == false)
+                       if (VEC_PUSH_STR(&d.vec, " const") == false)
                                goto clean;
 
                        d.cnst = false;
@@ -210,7 +211,7 @@ cpp_demangle_ARM(const char *org)
 
                free(arg);
 
-               if (vector_str_push(&d.vec, ", ", 2) == false)
+               if (VEC_PUSH_STR(&d.vec, ", ") == false)
                        goto clean;
 
                if (++try > CPP_DEMANGLE_ARM_TRY)
@@ -218,7 +219,7 @@ cpp_demangle_ARM(const char *org)
        }
 
        /* end argument types */
-       if (vector_str_push(&d.vec, ")", 1) == false)
+       if (VEC_PUSH_STR(&d.vec, ")") == false)
                goto clean;
 
 flat:
@@ -323,11 +324,10 @@ push_CTDT(const char *s, size_t l, struc
                return (false);
 
        assert(v->size > 1);
-       if (vector_str_push(v, v->container[v->size - 2],
-               strlen(v->container[v->size - 2])) == false)
+       if (VEC_PUSH_STR(v, v->container[v->size - 2]) == false)
                return (false);
 
-       if (vector_str_push(v, "()", 2) == false)
+       if (VEC_PUSH_STR(v, "()") == false)
                return (false);
 
        return (true);
@@ -429,7 +429,7 @@ read_func(struct demangle_data *d)
                if (read_class(d) == false)
                        return (false);
 
-               if (vector_str_push(&d->vec, "::", 2) == false)
+               if (VEC_PUSH_STR(&d->vec, "::") == false)
                        return (false);
        }
 
@@ -486,7 +486,7 @@ read_func_name(struct demangle_data *d)
                        if (read_qual_name(d) == false)
                                goto clean;
 
-                       if (vector_str_push(&d->vec, "::", 2) == false)
+                       if (VEC_PUSH_STR(&d->vec, "::") == false)
                                goto clean;
 
                        if (vector_str_push(&d->vec, op_name, len) == false)
@@ -508,7 +508,7 @@ read_func_name(struct demangle_data *d)
                        if (read_class(d) == false)
                                goto clean;
 
-                       if (vector_str_push(&d->vec, "::", 2) == false)
+                       if (VEC_PUSH_STR(&d->vec, "::") == false)
                                goto clean;
 
                        if (vector_str_push(&d->vec, op_name, len) == false)
@@ -553,7 +553,7 @@ read_func_ptr(struct demangle_data *d)
                }
 
                if (fptr.ptr == true) {
-                       if (vector_str_push(&fptr.vec, "*", 1) == false) {
+                       if (VEC_PUSH_STR(&fptr.vec, "*") == false) {
                                dest_demangle_data(&fptr);
 
                                return (false);
@@ -563,7 +563,7 @@ read_func_ptr(struct demangle_data *d)
                }
 
                if (fptr.ref == true) {
-                       if (vector_str_push(&fptr.vec, "&", 1) == false) {
+                       if (VEC_PUSH_STR(&fptr.vec, "&") == false) {
                                dest_demangle_data(&fptr);
 
                                return (false);
@@ -573,7 +573,7 @@ read_func_ptr(struct demangle_data *d)
                }
 
                if (fptr.cnst == true) {
-                       if (vector_str_push(&fptr.vec, " const", 6) == false) {
+                       if (VEC_PUSH_STR(&fptr.vec, " const") == false) {
                                dest_demangle_data(&fptr);
 
                                return (false);
@@ -585,7 +585,7 @@ read_func_ptr(struct demangle_data *d)
                if (*fptr.p == '_')
                        break;
 
-               if (vector_str_push(&fptr.vec, ", ", 2) == false) {
+               if (VEC_PUSH_STR(&fptr.vec, ", ") == false) {
                        dest_demangle_data(&fptr);
 
                        return (false);
@@ -636,7 +636,7 @@ read_func_ptr(struct demangle_data *d)
 
        free(rtn_type);
 
-       if (vector_str_push(&d->vec, " (*)(", 5) == false) {
+       if (VEC_PUSH_STR(&d->vec, " (*)(") == false) {
                free(arg_type);
 
                return (false);
@@ -650,7 +650,7 @@ read_func_ptr(struct demangle_data *d)
 
        free(arg_type);
 
-       return (vector_str_push(&d->vec, ")", 1));
+       return (VEC_PUSH_STR(&d->vec, ")"));
 }
 
 static bool
@@ -689,7 +689,7 @@ read_memptr(struct demangle_data *d)
        if (vector_str_push(&d->vec, mptr_str, len) == false)
                goto clean;
 
-       if (vector_str_push(&d->vec, "::*", 3) == false)
+       if (VEC_PUSH_STR(&d->vec, "::*") == false)
                goto clean;
 
        rtn = true;
@@ -712,108 +712,102 @@ read_op(struct demangle_data *d)
        switch (SIMPLE_HASH(*(d->p), *(d->p+1))) {
        case SIMPLE_HASH('m', 'l') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator*", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator*"));
        case SIMPLE_HASH('d', 'v') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator/", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator/"));
        case SIMPLE_HASH('m', 'd') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator%", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator%"));
        case SIMPLE_HASH('p', 'l') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator+", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator+"));
        case SIMPLE_HASH('m', 'i') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator-", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator-"));
        case SIMPLE_HASH('l', 's') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator<<", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator<<"));
        case SIMPLE_HASH('r', 's') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator>>", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator>>"));
        case SIMPLE_HASH('e', 'q') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator==", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator=="));
        case SIMPLE_HASH('n', 'e') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator!=", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator!="));
        case SIMPLE_HASH('l', 't') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator<", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator<"));
        case SIMPLE_HASH('g', 't') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator>", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator>"));
        case SIMPLE_HASH('l', 'e') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator<=", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator<="));
        case SIMPLE_HASH('g', 'e') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator>=", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator>="));
        case SIMPLE_HASH('a', 'd') :
                d->p += 2;
                if (*d->p == 'v') {
                        ++d->p;
-                       return (vector_str_push(&d->vec, "operator/=",
-                               10));
+                       return (VEC_PUSH_STR(&d->vec, "operator/="));
                } else
-                       return (vector_str_push(&d->vec, "operator&", 9));
+                       return (VEC_PUSH_STR(&d->vec, "operator&"));
        case SIMPLE_HASH('o', 'r') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator|", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator|"));
        case SIMPLE_HASH('e', 'r') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator^", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator^"));
        case SIMPLE_HASH('a', 'a') :
                d->p += 2;
                if (*d->p == 'd') {
                        ++d->p;
-                       return (vector_str_push(&d->vec, "operator&=",
-                               10));
+                       return (VEC_PUSH_STR(&d->vec, "operator&="));
                } else
-                       return (vector_str_push(&d->vec, "operator&&",
-                               10));
+                       return (VEC_PUSH_STR(&d->vec, "operator&&"));
        case SIMPLE_HASH('o', 'o') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator||", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator||"));
        case SIMPLE_HASH('n', 't') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator!", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator!"));
        case SIMPLE_HASH('c', 'o') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator~", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator~"));
        case SIMPLE_HASH('p', 'p') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator++", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator++"));
        case SIMPLE_HASH('m', 'm') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator--", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator--"));
        case SIMPLE_HASH('a', 's') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator=", 9));
+               return (VEC_PUSH_STR(&d->vec, "operator="));
        case SIMPLE_HASH('r', 'f') :
                d->p += 2;
-               return (vector_str_push(&d->vec, "operator->", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator->"));
        case SIMPLE_HASH('a', 'p') :
                /* apl */
                if (*(d->p + 2) != 'l')
                        return (false);
 
                d->p += 3;
-               return (vector_str_push(&d->vec, "operator+=", 10));
+               return (VEC_PUSH_STR(&d->vec, "operator+="));
        case SIMPLE_HASH('a', 'm') :
                d->p += 2;
                if (*d->p == 'i') {
                        ++d->p;
-                       return (vector_str_push(&d->vec, "operator-=",
-                               10));
+                       return (VEC_PUSH_STR(&d->vec, "operator-="));
                } else if (*d->p == 'u') {
                        ++d->p;
-                       return (vector_str_push(&d->vec, "operator*=",
-                               10));
+                       return (VEC_PUSH_STR(&d->vec, "operator*="));
                } else if (*d->p == 'd') {
                        ++d->p;
-                       return (vector_str_push(&d->vec, "operator%=",
-                               10));
+                       return (VEC_PUSH_STR(&d->vec, "operator%="));
                }
 
                return (false);
@@ -823,40 +817,40 @@ read_op(struct demangle_data *d)
                        return (false);
 
                d->p += 3;
-               return (vector_str_push(&d->vec, "operator<<=", 11));
+               return (VEC_PUSH_STR(&d->vec, "operator<<="));
        case SIMPLE_HASH('a', 'r') :
                /* ars */
                if (*(d->p + 2) != 's')

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to