Merge upstream GCC changes for include/ and libiberty/ directories
authorAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 19 Feb 2020 19:01:51 +0000 (19:01 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 25 Feb 2020 17:04:42 +0000 (17:04 +0000)
This commit pulls in the latest changes for the include/ and
libiberty/ directories.  The last sync was in commit
533da48302a26885a972e4379eccc26b364e5b53.

This commit also removes the file libiberty/rust-demangle.h, this file
has been removed in upstream GCC, and should have been deleted as part
of the previous sync up, which included this ChangeLog entry:

  2019-11-16  Eduard-Mihai Burtescu  <eddyb@lyken.rs>

        ....
* rust-demangle.h: Remove.

I've grep'd over the binutils-gdb source and can find no reference to
the rust-demangle.h file, and everything seems to build fine without
it, so I assume its continued existence was a mistake.

include/ChangeLog:

Import from gcc mainline:
2020-02-05  Andrew Burgess  <andrew.burgess@embecosm.com>

        * hashtab.h (htab_remove_elt): Make a parameter const.
        (htab_remove_elt_with_hash): Likewise.

libiberty/ChangeLog:

* rust-demangle.h: Removed.

Import from gcc mainline:
2020-02-05  Andrew Burgess  <andrew.burgess@embecosm.com>

        * hashtab.c (htab_remove_elt): Make a parameter const.
        (htab_remove_elt_with_hash): Likewise.

2020-01-23  Alexandre Oliva <oliva@adacore.com>

        * argv.c (writeargv): Output empty args as "".

2020-01-18  Iain Sandoe  <iain@sandoe.co.uk>

* cp-demangle.c (cplus_demangle_operators): Add the co_await
operator.
* testsuite/demangle-expected: Test co_await operator mangling.

include/ChangeLog
include/hashtab.h
libiberty/ChangeLog
libiberty/argv.c
libiberty/cp-demangle.c
libiberty/hashtab.c
libiberty/rust-demangle.h [deleted file]
libiberty/testsuite/demangle-expected

index 9907c1d2cce4fbcaf0406bdbf2c80d86c58e6864..a821ac617f5fd374faeb2711ee0684601c044760 100644 (file)
@@ -1,3 +1,11 @@
+2020-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       Import from gcc mainline:
+       2020-02-05  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * hashtab.h (htab_remove_elt): Make a parameter const.
+       (htab_remove_elt_with_hash): Likewise.
+
 2020-02-20  Nelson Chu  <nelson.chu@sifive.com>
 
        * opcode/riscv-opc.h: Extend DECLARE_CSR and DECLARE_CSR_ALIAS to
index d94b54c3c41e287b4ae623a8da92ac973fc666a1..6cca342b98973320086b58734aac922b1eeab617 100644 (file)
@@ -173,8 +173,8 @@ extern void *       htab_find_with_hash (htab_t, const void *, hashval_t);
 extern void ** htab_find_slot_with_hash (htab_t, const void *,
                                          hashval_t, enum insert_option);
 extern void    htab_clear_slot (htab_t, void **);
-extern void    htab_remove_elt (htab_t, void *);
-extern void    htab_remove_elt_with_hash (htab_t, void *, hashval_t);
+extern void    htab_remove_elt (htab_t, const void *);
+extern void    htab_remove_elt_with_hash (htab_t, const void *, hashval_t);
 
 extern void    htab_traverse (htab_t, htab_trav, void *);
 extern void    htab_traverse_noresize (htab_t, htab_trav, void *);
index 806d44b606c49535d6b74d7220312b733f2edec9..8e3408e3ee3e899622b3c86869bdf9e172893a78 100644 (file)
@@ -1,3 +1,23 @@
+2020-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * rust-demangle.h: Removed.
+
+       Import from gcc mainline:
+       2020-02-05  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * hashtab.c (htab_remove_elt): Make a parameter const.
+       (htab_remove_elt_with_hash): Likewise.
+
+       2020-01-23  Alexandre Oliva <oliva@adacore.com>
+
+       * argv.c (writeargv): Output empty args as "".
+
+       2020-01-18  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * cp-demangle.c (cplus_demangle_operators): Add the co_await
+       operator.
+       * testsuite/demangle-expected: Test co_await operator mangling.
+
 2020-02-19  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * configure: Regenerate.
index 8c9794db6a211ba5b46f55fa52048633ba8350fa..6a72208d8458e7d1650d5d2831c770ed7a8c7195 100644 (file)
@@ -327,6 +327,14 @@ writeargv (char * const *argv, FILE *f)
           arg++;
         }
 
+      /* Write out a pair of quotes for an empty argument.  */
+      if (arg == *argv)
+       if (EOF == fputs ("\"\"", f))
+         {
+           status = 1;
+           goto done;
+         }
+
       if (EOF == fputc ('\n', f))
         {
           status = 1;
index 3639bfbfd430b487255b03ceaf360ac62ec01273..fc55b7fae1fb3edbc11ed9d32f181d39284b2b57 100644 (file)
@@ -1802,6 +1802,7 @@ const struct demangle_operator_info cplus_demangle_operators[] =
   { "ad", NL ("&"),         1 },
   { "an", NL ("&"),         2 },
   { "at", NL ("alignof "),   1 },
+  { "aw", NL ("co_await "), 1 },
   { "az", NL ("alignof "),   1 },
   { "cc", NL ("const_cast"), 2 },
   { "cl", NL ("()"),        2 },
index 26c98ce2d6865939d0f9c723cac23bd8efeb8b40..225e9e540a7d2877289cec0a36d2011f233e1ea5 100644 (file)
@@ -709,7 +709,7 @@ htab_find_slot (htab_t htab, const PTR element, enum insert_option insert)
    element in the hash table, this function does nothing.  */
 
 void
-htab_remove_elt (htab_t htab, PTR element)
+htab_remove_elt (htab_t htab, const PTR element)
 {
   htab_remove_elt_with_hash (htab, element, (*htab->hash_f) (element));
 }
@@ -720,7 +720,7 @@ htab_remove_elt (htab_t htab, PTR element)
    function does nothing.  */
 
 void
-htab_remove_elt_with_hash (htab_t htab, PTR element, hashval_t hash)
+htab_remove_elt_with_hash (htab_t htab, const PTR element, hashval_t hash)
 {
   PTR *slot;
 
diff --git a/libiberty/rust-demangle.h b/libiberty/rust-demangle.h
deleted file mode 100644 (file)
index abf4c6c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Internal demangler interface for the Rust programming language.
-   Copyright (C) 2016-2019 Free Software Foundation, Inc.
-   Written by David Tolnay (dtolnay@gmail.com).
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-In addition to the permissions in the GNU Library General Public
-License, the Free Software Foundation gives you unlimited permission
-to link the compiled version of this file into combinations with other
-programs, and to distribute those combinations without any restriction
-coming from the use of this file.  (The Library Public License
-restrictions do apply in other respects; for example, they cover
-modification of the file, and distribution when not linked into a
-combined executable.)
-
-Libiberty is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.
-If not, see <http://www.gnu.org/licenses/>.  */
-
-/* This file provides some definitions shared by cplus-dem.c and
-   rust-demangle.c.  It should not be included by any other files.  */
-
-/* Returns non-zero iff MANGLED is a rust mangled symbol.  MANGLED must
-   already have been demangled through cplus_demangle_v3.  If this function
-   returns non-zero then MANGLED can be demangled (in-place) using
-   RUST_DEMANGLE_SYM.  */
-extern int
-rust_is_mangled (const char *mangled);
-
-/* Demangles SYM (in-place) if RUST_IS_MANGLED returned non-zero for SYM.
-   If RUST_IS_MANGLED returned zero for SYM then RUST_DEMANGLE_SYM might
-   replace characters that cannot be demangled with '?' and might truncate
-   SYM.  After calling RUST_DEMANGLE_SYM SYM might be shorter, but never
-   larger.  */
-extern void
-rust_demangle_sym (char *sym);
index 5d0c62bd1378c4fab1dccca00c091f783e911be4..ccadf84e608212096540f7a407aeb75c65f2f9d1 100644 (file)
@@ -1450,3 +1450,6 @@ Foo<int>()::{lambda(auto:1)#1}::operator()<char>(char) const::X::fn
 
 _Z3fooILPv0EEvPN9enable_ifIXeqT_LDnEEvE4typeE
 void foo<(void*)0>(enable_if<((void*)0)==(decltype(nullptr)), void>::type*)
+
+_ZNK5coro15emptyawEv
+coro1::empty::operator co_await() const