diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/bfd/version.h	2019-12-04 01:50:04.000000000 +0000
+++ ./bfd/version.h	2019-12-05 01:49:55.000000000 +0000
@@ -16,7 +16,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20191204
+#define BFD_VERSION_DATE 20191205
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/djunpack.bat	2019-12-04 01:55:30.000000000 +0000
+++ ./djunpack.bat	2019-12-05 01:54:52.000000000 +0000
@@ -17,8 +17,8 @@ Rem
 Rem The following 2 lines need to be changed with each new GDB release, to
 Rem be identical to the name of the top-level directory where the GDB
 Rem distribution unpacks itself.
-set GDBVER=$package-9.0.50.20191204
-if "%GDBVER%"=="$package-9.0.50.20191204" GoTo EnvOk
+set GDBVER=$package-9.0.50.20191205
+if "%GDBVER%"=="$package-9.0.50.20191205" GoTo EnvOk
 Rem If their environment space is too small, re-exec with a larger one
 command.com /e:4096 /c %0 %1
 GoTo End
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/aarch64-linux-tdep.c ./gdb/aarch64-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/aarch64-linux-tdep.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/aarch64-linux-tdep.c	2019-12-05 01:49:56.000000000 +0000
@@ -21,7 +21,6 @@
 #include "defs.h"
 
 #include "gdbarch.h"
-#include "arch-utils.h"
 #include "glibc-tdep.h"
 #include "linux-tdep.h"
 #include "aarch64-tdep.h"
@@ -31,12 +30,11 @@
 #include "symtab.h"
 #include "tramp-frame.h"
 #include "trad-frame.h"
+#include "target/target.h"
 
-#include "inferior.h"
 #include "regcache.h"
 #include "regset.h"
 
-#include "cli/cli-utils.h"
 #include "stap-probe.h"
 #include "parser-defs.h"
 #include "user-regs.h"
@@ -45,8 +43,6 @@
 
 #include "record-full.h"
 #include "linux-record.h"
-#include "auxv.h"
-#include "elf/common.h"
 
 /* Signal frame handling.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/aarch64-tdep.c ./gdb/aarch64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/aarch64-tdep.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/aarch64-tdep.c	2019-12-05 01:49:56.000000000 +0000
@@ -21,7 +21,6 @@
 #include "defs.h"
 
 #include "frame.h"
-#include "inferior.h"
 #include "gdbcmd.h"
 #include "gdbcore.h"
 #include "dis-asm.h"
@@ -40,18 +39,12 @@
 #include "prologue-value.h"
 #include "target-descriptions.h"
 #include "user-regs.h"
-#include "language.h"
-#include "infcall.h"
-#include "ax.h"
 #include "ax-gdb.h"
 #include "gdbsupport/selftest.h"
 
 #include "aarch64-tdep.h"
 #include "aarch64-ravenscar-thread.h"
 
-#include "elf-bfd.h"
-#include "elf/aarch64.h"
-
 #include "record.h"
 #include "record-full.h"
 #include "arch/aarch64-insn.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/ada-lang.c ./gdb/ada-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/ada-lang.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/ada-lang.c	2019-12-05 01:49:56.000000000 +0000
@@ -2257,7 +2257,7 @@ decode_constrained_packed_array (struct 
       return NULL;
     }
 
-  if (gdbarch_bits_big_endian (get_type_arch (value_type (arr)))
+  if (type_byte_order (value_type (arr)) == BFD_ENDIAN_BIG
       && ada_is_modular_type (value_type (arr)))
     {
        /* This is a (right-justified) modular type representing a packed
@@ -2499,7 +2499,7 @@ ada_value_primitive_packed_val (struct v
   const gdb_byte *src;                /* First byte containing data to unpack */
   gdb_byte *unpacked;
   const int is_scalar = is_scalar_type (type);
-  const int is_big_endian = gdbarch_bits_big_endian (get_type_arch (type));
+  const int is_big_endian = type_byte_order (type) == BFD_ENDIAN_BIG;
   gdb::byte_vector staging;
 
   type = ada_check_typedef (type);
@@ -2645,7 +2645,7 @@ ada_value_assign (struct value *toval, s
       if (from_size == 0)
 	from_size = TYPE_LENGTH (value_type (fromval)) * TARGET_CHAR_BIT;
 
-      const int is_big_endian = gdbarch_bits_big_endian (get_type_arch (type));
+      const int is_big_endian = type_byte_order (type) == BFD_ENDIAN_BIG;
       ULONGEST from_offset = 0;
       if (is_big_endian && is_scalar_type (value_type (fromval)))
 	from_offset = from_size - bits;
@@ -2694,7 +2694,7 @@ value_assign_to_component (struct value 
   else
     bits = value_bitsize (component);
 
-  if (gdbarch_bits_big_endian (get_type_arch (value_type (container))))
+  if (type_byte_order (value_type (container)) == BFD_ENDIAN_BIG)
     {
       int src_offset;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/avr-tdep.c ./gdb/avr-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/avr-tdep.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/avr-tdep.c	2019-12-05 01:49:56.000000000 +0000
@@ -1629,5 +1629,5 @@ _initialize_avr_tdep (void)
      io_registers' to signify it is not available on other platforms.  */
 
   add_info ("io_registers", avr_io_reg_read_command,
-	    _("query remote avr target for io space register values"));
+	    _("Query remote AVR target for I/O space register values."));
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/ChangeLog	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/ChangeLog	2019-12-05 01:49:56.000000000 +0000
@@ -1,3 +1,157 @@
+2019-12-04  Christian Biesinger  <cbiesinger@google.com>
+
+	* configure.nat (obsd64): Add missing files x86-nat.o and
+	nat/x86-dregs.o.
+
+2019-12-04  Tom Tromey  <tom@tromey.com>
+
+	* valprint.c (val_print_string): Use metadata_style.
+	* go-valprint.c (print_go_string): Use metadata style.
+	* p-valprint.c (pascal_object_print_static_field): Use metadata
+	style.
+	* cp-valprint.c (cp_print_static_field): Use metadata style.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+	    Chris January  <chris.january@arm.com>
+
+	* f-exp.y (COMPLEX_KEYWORD, SINGLE, DOUBLE, PRECISION): New
+	tokens.
+	(typebase): New patterns for complex, single/double precision, and
+	single/double complex.
+	(f77_keywords): Change token for complex keyword, and add single,
+	double, and precision keywords.
+
+2019-12-04  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* avr-tdep.c (_initialize_avr_tdep): Improve help of command
+	"info io_registers".
+
+2019-12-04  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* regcache.c (cooked_read_test): Initialize thread list of
+	mock_inferior.
+
+2019-12-04  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* aarch64-linux-tdep.c: Remove includes.
+
+2019-12-04  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* aarch64-tdep.c: Remove includes.
+
+2019-12-04  Simon Marchi  <simon.marchi@efficios.com>
+
+	* filtered-iterator.h (filtered_iterator) <operator==,
+	operator!=>: Compare wrapped iterators, not wrapped pointers.
+	* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
+	unittests/filtered_iterator-selftests.c.
+	* unittests/filtered_iterator-selftests.c: New file.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* gdbtypes.c (create_range_type): Inherit endianity
+	from base type.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* ada-lang.c (decode_constrained_packed_array)
+	(ada_value_assign, value_assign_to_component): Update.
+	* dwarf2loc.c (rw_pieced_value, access_memory)
+	(dwarf2_compile_expr_to_ax): Update.
+	* dwarf2read.c (dwarf2_add_field): Update.
+	* eval.c (evaluate_subexp_standard): Update.
+	* gdbarch.c, gdbarch.h: Rebuild.
+	* gdbarch.sh (bits_big_endian): Remove.
+	* gdbtypes.h (union field_location): Update comment.
+	* target-descriptions.c (make_gdb_type): Update.
+	* valarith.c (value_bit_index): Update.
+	* value.c (struct value) <bitpos>: Update comment.
+	(unpack_bits_as_long, modify_field): Update.
+	* value.h (value_bitpos): Update comment.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* gdbtypes.c (type_byte_order): Move earlier.  Assert for unknown
+	endian-ness.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* dwarf2read.c (dwarf2_init_float_type)
+	(dwarf2_init_complex_target_type): Add byte_order parameter.
+	(read_base_type): Compute byte order earlier.
+	* gdbtypes.c (init_float_type): Add byte_order parameter.
+	* gdbtypes.h (init_float_type): Add byte_order parameter.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* unittests/tui-selftests.c: Conditionally include tui-winsource.h.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* dwarf2read.c (process_structure_scope): Initialize
+	"discr_offset".
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* mi/mi-symbol-cmds.c (mi_symbol_info): Take extra parameter, and
+	add it into the search spec.
+	(parse_max_results_option): New function.
+	(mi_info_functions_or_variables): Parse -max-results flag and pass
+	it to mi_symbol_info.
+	(mi_cmd_symbol_info_modules): Likewise.
+	(mi_cmd_symbol_info_types): Likewise.
+	* symtab.c (global_symbol_searcher::add_matching_symbols): Change
+	return type to bool, change result container into a set, and don't
+	add new results if we have enough already.
+	(global_symbol_searcher::add_matching_msymbols): Change return
+	type to bool, and don't add new results if we have enough already.
+	(sort_search_symbols_remove_dups): Delete.
+	(global_symbol_searcher::search): Early exit from search loop when
+	we have enough results.  Use a std::set to collect the results
+	from calling add_matching_symbols.
+	* symtab.h (global_symbol_searcher) <set_max_seach_results>: New
+	member function.
+	(global_symbol_searcher) <m_max_search_results>: New member
+	variable.
+	(global_symbol_searcher) <add_matching_symbols>: Update header
+	comment and change return type to bool.
+	(global_symbol_searcher) <add_matching_msymbols>: Update header
+	comment and change return type to bool.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* symtab.c (symbol_search::compare_search_syms): Update header
+	comment.
+	(global_symbol_searcher::is_suitable_msymbol): New function.
+	(global_symbol_searcher::expand_symtabs): New function.
+	(global_symbol_searcher::add_matching_symbols): New function.
+	(global_symbol_searcher::add_matching_msymbols): New function.
+	(global_symbol_searcher::search): Move most of the content
+	into the new functions above, and call them as needed.
+	* symtab.h (global_symbol_searcher) <expand_symtabs>: New member
+	function.
+	(global_symbol_searcher) <add_matching_symbols>: New member
+	function.
+	(global_symbol_searcher) <add_matching_msymbols>: New member
+	function.
+	(global_symbol_searcher) <is_suitable_msymbol>: New member
+	function.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* mi/mi-cmds.c (mi_cmds): Add -symbol-info-module-functions and
+	-symbol-info-module-variables entries.
+	* mi/mi-cmds.h (mi_cmd_symbol_info_module_functions): Declare.
+	(mi_cmd_symbol_info_module_variables): Declare.
+	* mi/mi-symbol-cmds.c
+	(module_symbol_search_iterator): New typedef.
+	(output_module_symbols_in_single_module_and_file): New function.
+	(output_module_symbols_in_single_module): New function.
+	(mi_info_module_functions_or_variables): New function.
+	(mi_cmd_symbol_info_module_functions): New function.
+	(mi_cmd_symbol_info_module_variables): New function.
+	* NEWS: Mention new MI command.
+
 2019-12-03  Christian Biesinger  <cbiesinger@google.com>
 
 	* bcache.c (hash): Remove.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/configure.nat ./gdb/configure.nat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/configure.nat	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/configure.nat	2019-12-05 01:49:57.000000000 +0000
@@ -445,8 +445,9 @@ case ${gdb_host} in
 	case ${gdb_host_cpu} in
 	    i386)
 		# Host: OpenBSD/amd64
-		NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o \
-		x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o"
+		NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o x86-nat.o \
+		x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o \
+		nat/x86-dregs.o"
 		LOADLIBES='-lkvm'
 		;;
 	    mips)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/cp-valprint.c ./gdb/cp-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/cp-valprint.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/cp-valprint.c	2019-12-05 01:49:57.000000000 +0000
@@ -638,9 +638,9 @@ cp_print_static_field (struct type *type
 	{
 	  if (value_address (val) == first_dont_print[i])
 	    {
-	      fputs_filtered ("<same as static member of an already"
-			      " seen type>",
-			      stream);
+	      fputs_styled (_("<same as static member of an already"
+			      " seen type>"),
+			    metadata_style.style (), stream);
 	      return;
 	    }
 	}
@@ -670,9 +670,9 @@ cp_print_static_field (struct type *type
 	{
 	  if (target_type == first_dont_print[i])
 	    {
-	      fputs_filtered ("<same as static member of an already"
-			      " seen type>",
-			      stream);
+	      fputs_styled (_("<same as static member of an already"
+			      " seen type>"),
+			    metadata_style.style (), stream);
 	      return;
 	    }
 	}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/ChangeLog	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/doc/ChangeLog	2019-12-05 01:49:57.000000000 +0000
@@ -1,3 +1,13 @@
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* doc/gdb.texinfo (GDB/MI Symbol Query): Add documentation of
+	-max-results to some -symbol-info-* commands.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* doc/gdb.texinfo (GDB/MI Symbol Query): Document new MI command
+	-symbol-info-module-functions and -symbol-info-module-variables.
+
 2019-12-01  Tom Tromey  <tom@tromey.com>
 
 	* gdb.texinfo (TUI Configuration): Mention TUI border styles.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gcore.1	2019-12-04 01:55:16.000000000 +0000
+++ ./gdb/doc/gcore.1	2019-12-05 01:54:45.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2019-12-04" "gdb-9.0.50.20191204-git" "GNU Development Tools"
+.TH GCORE 1 "2019-12-05" "gdb-9.0.50.20191205-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.1	2019-12-04 01:55:16.000000000 +0000
+++ ./gdb/doc/gdb.1	2019-12-05 01:54:44.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2019-12-04" "gdb-9.0.50.20191204-git" "GNU Development Tools"
+.TH GDB 1 "2019-12-05" "gdb-9.0.50.20191205-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb-add-index.1 ./gdb/doc/gdb-add-index.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb-add-index.1	2019-12-04 01:55:17.000000000 +0000
+++ ./gdb/doc/gdb-add-index.1	2019-12-05 01:54:45.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB-ADD-INDEX 1"
-.TH GDB-ADD-INDEX 1 "2019-12-04" "gdb-9.0.50.20191204-git" "GNU Development Tools"
+.TH GDB-ADD-INDEX 1 "2019-12-05" "gdb-9.0.50.20191205-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info	2019-12-04 01:55:12.000000000 +0000
+++ ./gdb/doc/gdb.info	2019-12-05 01:54:42.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -44,8 +44,8 @@ gdb.info-3: 604551
 gdb.info-4: 902922
 gdb.info-5: 1212290
 gdb.info-6: 1511243
-gdb.info-7: 1832881
-gdb.info-8: 2222187
+gdb.info-7: 1840621
+gdb.info-8: 2229927
 
 Tag Table:
 (Indirect)
@@ -582,243 +582,245 @@ Node: GDB/MI Data Manipulation1489039
 Node: GDB/MI Tracepoint Commands1511243
 Node: GDB/MI Symbol Query1523034
 Ref: -symbol-info-functions1523303
-Ref: -symbol-info-modules1527541
-Ref: -symbol-info-types1529189
-Ref: -symbol-info-variables1530928
-Node: GDB/MI File Commands1535694
-Node: GDB/MI Target Manipulation1540128
-Node: GDB/MI File Transfer Commands1546786
-Node: GDB/MI Ada Exceptions Commands1548109
-Node: GDB/MI Support Commands1549462
-Node: GDB/MI Miscellaneous Commands1554181
-Ref: -interpreter-exec1564534
-Node: Annotations1568506
-Node: Annotations Overview1569425
-Node: Server Prefix1571888
-Node: Prompting1572622
-Node: Errors1574139
-Node: Invalidation1575035
-Node: Annotations for Running1575514
-Node: Source Annotations1577048
-Node: JIT Interface1577977
-Node: Declarations1579777
-Node: Registering Code1581164
-Node: Unregistering Code1582136
-Node: Custom Debug Info1582763
-Node: Using JIT Debug Info Readers1584059
-Node: Writing JIT Debug Info Readers1585071
-Node: In-Process Agent1587266
-Ref: Control Agent1589209
-Node: In-Process Agent Protocol1590076
-Node: IPA Protocol Objects1590867
-Ref: agent expression object1591865
-Ref: tracepoint action object1592070
-Ref: tracepoint object1592150
-Node: IPA Protocol Commands1594680
-Node: GDB Bugs1596150
-Node: Bug Criteria1596882
-Node: Bug Reporting1597759
-Node: Command Line Editing1605588
-Node: Introduction and Notation1606240
-Node: Readline Interaction1607861
-Node: Readline Bare Essentials1609050
-Node: Readline Movement Commands1610831
-Node: Readline Killing Commands1611789
-Node: Readline Arguments1613705
-Node: Searching1614747
-Node: Readline Init File1616897
-Node: Readline Init File Syntax1618048
-Node: Conditional Init Constructs1638204
-Node: Sample Init File1642398
-Node: Bindable Readline Commands1645513
-Node: Commands For Moving1646565
-Node: Commands For History1648129
-Node: Commands For Text1652391
-Node: Commands For Killing1655830
-Node: Numeric Arguments1657994
-Node: Commands For Completion1659131
-Node: Keyboard Macros1661097
-Node: Miscellaneous Commands1661782
-Node: Readline vi Mode1665701
-Node: Using History Interactively1666611
-Node: History Interaction1667126
-Node: Event Designators1669022
-Node: Word Designators1670159
-Node: Modifiers1671794
-Node: In Memoriam1673015
-Node: Formatting Documentation1673898
-Ref: Formatting Documentation-Footnote-11677274
-Node: Installing GDB1677370
-Node: Requirements1677942
-Ref: Expat1678643
-Ref: MPFR1681936
-Node: Running Configure1683557
-Node: Separate Objdir1686428
-Node: Config Names1689402
-Node: Configure Options1690879
-Node: System-wide configuration1700230
-Node: System-wide Configuration Scripts1702767
-Node: Maintenance Commands1703951
-Ref: maint info breakpoints1705606
-Ref: maint check libthread-db1714071
-Node: Remote Protocol1730725
-Node: Overview1731417
-Ref: Binary Data1733962
-Node: Packets1736487
-Ref: thread-id syntax1737387
-Ref: extended mode1738832
-Ref: ? packet1739090
-Ref: bc1740556
-Ref: bs1740766
-Ref: read registers packet1742383
-Ref: cycle step packet1744238
-Ref: write register packet1746949
-Ref: step with signal packet1747928
-Ref: vCont packet1749404
-Ref: vCtrlC packet1752638
-Ref: vKill packet1755056
-Ref: X packet1756590
-Ref: insert breakpoint or watchpoint packet1756959
-Node: Stop Reply Packets1761285
-Ref: swbreak stop reason1764536
-Ref: thread create event1768133
-Ref: thread exit event1769336
-Node: General Query Packets1771545
-Ref: qCRC packet1774375
-Ref: QEnvironmentHexEncoded1777528
-Ref: QEnvironmentUnset1778758
-Ref: QEnvironmentReset1779702
-Ref: QSetWorkingDir packet1780646
-Ref: QNonStop1787097
-Ref: QCatchSyscalls1787773
-Ref: QPassSignals1789310
-Ref: QProgramSignals1790517
-Ref: QThreadEvents1792084
-Ref: qSearch memory1794102
-Ref: QStartNoAckMode1794610
-Ref: qSupported1795142
-Ref: multiprocess extensions1810662
-Ref: install tracepoint in tracing1812692
-Ref: qXfer read1817215
-Ref: qXfer auxiliary vector read1818822
-Ref: qXfer btrace read1819170
-Ref: qXfer btrace-conf read1820235
-Ref: qXfer executable filename read1820586
-Ref: qXfer target description read1821201
-Ref: qXfer library list read1821635
-Ref: qXfer svr4 library list read1822291
-Ref: qXfer memory map read1824144
-Ref: qXfer sdata read1824531
-Ref: qXfer siginfo read1824997
-Ref: qXfer threads read1825393
-Ref: qXfer traceframe info read1825796
-Ref: qXfer unwind info block1826214
-Ref: qXfer fdpic loadmap read1826448
-Ref: qXfer osdata read1826864
-Ref: qXfer write1827018
-Ref: qXfer siginfo write1828110
-Ref: General Query Packets-Footnote-11830838
-Node: Architecture-Specific Protocol Details1832881
-Node: ARM-Specific Protocol Details1833390
-Node: ARM Breakpoint Kinds1833638
-Node: MIPS-Specific Protocol Details1833969
-Node: MIPS Register packet Format1834252
-Node: MIPS Breakpoint Kinds1835179
-Node: Tracepoint Packets1835597
-Ref: QTEnable1844911
-Ref: QTDisable1845107
-Ref: qTfSTM1850644
-Ref: qTsSTM1850644
-Ref: qTSTMat1851721
-Ref: QTBuffer-size1852872
-Node: Host I/O Packets1854845
-Node: Interrupts1860426
-Ref: interrupting remote targets1860570
-Node: Notification Packets1862738
-Node: Remote Non-Stop1868163
-Node: Packet Acknowledgment1871279
-Node: Examples1873394
-Node: File-I/O Remote Protocol Extension1873988
-Node: File-I/O Overview1874450
-Node: Protocol Basics1876649
-Node: The F Request Packet1878878
-Node: The F Reply Packet1879779
-Node: The Ctrl-C Message1880697
-Node: Console I/O1882323
-Node: List of Supported Calls1883539
-Node: open1883901
-Node: close1886409
-Node: read1886792
-Node: write1887401
-Node: lseek1888172
-Node: rename1889056
-Node: unlink1890463
-Node: stat/fstat1891410
-Node: gettimeofday1892303
-Node: isatty1892739
-Node: system1893335
-Node: Protocol-specific Representation of Datatypes1894877
-Node: Integral Datatypes1895254
-Node: Pointer Values1896061
-Node: Memory Transfer1896765
-Node: struct stat1897385
-Node: struct timeval1899587
-Node: Constants1900104
-Node: Open Flags1900553
-Node: mode_t Values1900894
-Node: Errno Values1901386
-Node: Lseek Flags1902196
-Node: Limits1902381
-Node: File-I/O Examples1902741
-Node: Library List Format1903829
-Node: Library List Format for SVR4 Targets1906611
-Node: Memory Map Format1909078
-Node: Thread List Format1911602
-Node: Traceframe Info Format1912606
-Node: Branch Trace Format1914292
-Node: Branch Trace Configuration Format1915992
-Node: Agent Expressions1917166
-Node: General Bytecode Design1919987
-Node: Bytecode Descriptions1924781
-Node: Using Agent Expressions1938248
-Node: Varying Target Capabilities1940225
-Node: Rationale1941386
-Node: Target Descriptions1948775
-Node: Retrieving Descriptions1950718
-Node: Target Description Format1951803
-Node: Predefined Target Types1961678
-Node: Enum Target Types1963123
-Node: Standard Target Features1964118
-Node: AArch64 Features1966118
-Node: ARC Features1966824
-Node: ARM Features1968885
-Node: i386 Features1970399
-Node: MicroBlaze Features1972614
-Node: MIPS Features1973191
-Node: M68K Features1974382
-Node: NDS32 Features1975043
-Node: Nios II Features1976067
-Node: OpenRISC 1000 Features1976472
-Node: PowerPC Features1976838
-Node: RISC-V Features1980808
-Node: RX Features1982498
-Node: S/390 and System z Features1982860
-Node: Sparc Features1985000
-Node: TIC6x Features1985905
-Node: Operating System Information1986454
-Node: Process list1987290
-Node: Trace File Format1988353
-Node: Index Section Format1991567
-Node: Man Pages1999493
-Node: gdb man1999963
-Node: gdbserver man2005937
-Node: gcore man2013334
-Node: gdbinit man2014456
-Node: gdb-add-index man2015649
-Ref: gdb-add-index2015758
-Node: Copying2016632
-Node: GNU Free Documentation License2054193
-Node: Concept Index2079340
-Node: Command and Variable Index2222187
+Ref: -symbol-info-module-functions1527816
+Ref: -symbol-info-module-variables1530796
+Ref: -symbol-info-modules1534513
+Ref: -symbol-info-types1536417
+Ref: -symbol-info-variables1538410
+Node: GDB/MI File Commands1543434
+Node: GDB/MI Target Manipulation1547868
+Node: GDB/MI File Transfer Commands1554526
+Node: GDB/MI Ada Exceptions Commands1555849
+Node: GDB/MI Support Commands1557202
+Node: GDB/MI Miscellaneous Commands1561921
+Ref: -interpreter-exec1572274
+Node: Annotations1576246
+Node: Annotations Overview1577165
+Node: Server Prefix1579628
+Node: Prompting1580362
+Node: Errors1581879
+Node: Invalidation1582775
+Node: Annotations for Running1583254
+Node: Source Annotations1584788
+Node: JIT Interface1585717
+Node: Declarations1587517
+Node: Registering Code1588904
+Node: Unregistering Code1589876
+Node: Custom Debug Info1590503
+Node: Using JIT Debug Info Readers1591799
+Node: Writing JIT Debug Info Readers1592811
+Node: In-Process Agent1595006
+Ref: Control Agent1596949
+Node: In-Process Agent Protocol1597816
+Node: IPA Protocol Objects1598607
+Ref: agent expression object1599605
+Ref: tracepoint action object1599810
+Ref: tracepoint object1599890
+Node: IPA Protocol Commands1602420
+Node: GDB Bugs1603890
+Node: Bug Criteria1604622
+Node: Bug Reporting1605499
+Node: Command Line Editing1613328
+Node: Introduction and Notation1613980
+Node: Readline Interaction1615601
+Node: Readline Bare Essentials1616790
+Node: Readline Movement Commands1618571
+Node: Readline Killing Commands1619529
+Node: Readline Arguments1621445
+Node: Searching1622487
+Node: Readline Init File1624637
+Node: Readline Init File Syntax1625788
+Node: Conditional Init Constructs1645944
+Node: Sample Init File1650138
+Node: Bindable Readline Commands1653253
+Node: Commands For Moving1654305
+Node: Commands For History1655869
+Node: Commands For Text1660131
+Node: Commands For Killing1663570
+Node: Numeric Arguments1665734
+Node: Commands For Completion1666871
+Node: Keyboard Macros1668837
+Node: Miscellaneous Commands1669522
+Node: Readline vi Mode1673441
+Node: Using History Interactively1674351
+Node: History Interaction1674866
+Node: Event Designators1676762
+Node: Word Designators1677899
+Node: Modifiers1679534
+Node: In Memoriam1680755
+Node: Formatting Documentation1681638
+Ref: Formatting Documentation-Footnote-11685014
+Node: Installing GDB1685110
+Node: Requirements1685682
+Ref: Expat1686383
+Ref: MPFR1689676
+Node: Running Configure1691297
+Node: Separate Objdir1694168
+Node: Config Names1697142
+Node: Configure Options1698619
+Node: System-wide configuration1707970
+Node: System-wide Configuration Scripts1710507
+Node: Maintenance Commands1711691
+Ref: maint info breakpoints1713346
+Ref: maint check libthread-db1721811
+Node: Remote Protocol1738465
+Node: Overview1739157
+Ref: Binary Data1741702
+Node: Packets1744227
+Ref: thread-id syntax1745127
+Ref: extended mode1746572
+Ref: ? packet1746830
+Ref: bc1748296
+Ref: bs1748506
+Ref: read registers packet1750123
+Ref: cycle step packet1751978
+Ref: write register packet1754689
+Ref: step with signal packet1755668
+Ref: vCont packet1757144
+Ref: vCtrlC packet1760378
+Ref: vKill packet1762796
+Ref: X packet1764330
+Ref: insert breakpoint or watchpoint packet1764699
+Node: Stop Reply Packets1769025
+Ref: swbreak stop reason1772276
+Ref: thread create event1775873
+Ref: thread exit event1777076
+Node: General Query Packets1779285
+Ref: qCRC packet1782115
+Ref: QEnvironmentHexEncoded1785268
+Ref: QEnvironmentUnset1786498
+Ref: QEnvironmentReset1787442
+Ref: QSetWorkingDir packet1788386
+Ref: QNonStop1794837
+Ref: QCatchSyscalls1795513
+Ref: QPassSignals1797050
+Ref: QProgramSignals1798257
+Ref: QThreadEvents1799824
+Ref: qSearch memory1801842
+Ref: QStartNoAckMode1802350
+Ref: qSupported1802882
+Ref: multiprocess extensions1818402
+Ref: install tracepoint in tracing1820432
+Ref: qXfer read1824955
+Ref: qXfer auxiliary vector read1826562
+Ref: qXfer btrace read1826910
+Ref: qXfer btrace-conf read1827975
+Ref: qXfer executable filename read1828326
+Ref: qXfer target description read1828941
+Ref: qXfer library list read1829375
+Ref: qXfer svr4 library list read1830031
+Ref: qXfer memory map read1831884
+Ref: qXfer sdata read1832271
+Ref: qXfer siginfo read1832737
+Ref: qXfer threads read1833133
+Ref: qXfer traceframe info read1833536
+Ref: qXfer unwind info block1833954
+Ref: qXfer fdpic loadmap read1834188
+Ref: qXfer osdata read1834604
+Ref: qXfer write1834758
+Ref: qXfer siginfo write1835850
+Ref: General Query Packets-Footnote-11838578
+Node: Architecture-Specific Protocol Details1840621
+Node: ARM-Specific Protocol Details1841130
+Node: ARM Breakpoint Kinds1841378
+Node: MIPS-Specific Protocol Details1841709
+Node: MIPS Register packet Format1841992
+Node: MIPS Breakpoint Kinds1842919
+Node: Tracepoint Packets1843337
+Ref: QTEnable1852651
+Ref: QTDisable1852847
+Ref: qTfSTM1858384
+Ref: qTsSTM1858384
+Ref: qTSTMat1859461
+Ref: QTBuffer-size1860612
+Node: Host I/O Packets1862585
+Node: Interrupts1868166
+Ref: interrupting remote targets1868310
+Node: Notification Packets1870478
+Node: Remote Non-Stop1875903
+Node: Packet Acknowledgment1879019
+Node: Examples1881134
+Node: File-I/O Remote Protocol Extension1881728
+Node: File-I/O Overview1882190
+Node: Protocol Basics1884389
+Node: The F Request Packet1886618
+Node: The F Reply Packet1887519
+Node: The Ctrl-C Message1888437
+Node: Console I/O1890063
+Node: List of Supported Calls1891279
+Node: open1891641
+Node: close1894149
+Node: read1894532
+Node: write1895141
+Node: lseek1895912
+Node: rename1896796
+Node: unlink1898203
+Node: stat/fstat1899150
+Node: gettimeofday1900043
+Node: isatty1900479
+Node: system1901075
+Node: Protocol-specific Representation of Datatypes1902617
+Node: Integral Datatypes1902994
+Node: Pointer Values1903801
+Node: Memory Transfer1904505
+Node: struct stat1905125
+Node: struct timeval1907327
+Node: Constants1907844
+Node: Open Flags1908293
+Node: mode_t Values1908634
+Node: Errno Values1909126
+Node: Lseek Flags1909936
+Node: Limits1910121
+Node: File-I/O Examples1910481
+Node: Library List Format1911569
+Node: Library List Format for SVR4 Targets1914351
+Node: Memory Map Format1916818
+Node: Thread List Format1919342
+Node: Traceframe Info Format1920346
+Node: Branch Trace Format1922032
+Node: Branch Trace Configuration Format1923732
+Node: Agent Expressions1924906
+Node: General Bytecode Design1927727
+Node: Bytecode Descriptions1932521
+Node: Using Agent Expressions1945988
+Node: Varying Target Capabilities1947965
+Node: Rationale1949126
+Node: Target Descriptions1956515
+Node: Retrieving Descriptions1958458
+Node: Target Description Format1959543
+Node: Predefined Target Types1969418
+Node: Enum Target Types1970863
+Node: Standard Target Features1971858
+Node: AArch64 Features1973858
+Node: ARC Features1974564
+Node: ARM Features1976625
+Node: i386 Features1978139
+Node: MicroBlaze Features1980354
+Node: MIPS Features1980931
+Node: M68K Features1982122
+Node: NDS32 Features1982783
+Node: Nios II Features1983807
+Node: OpenRISC 1000 Features1984212
+Node: PowerPC Features1984578
+Node: RISC-V Features1988548
+Node: RX Features1990238
+Node: S/390 and System z Features1990600
+Node: Sparc Features1992740
+Node: TIC6x Features1993645
+Node: Operating System Information1994194
+Node: Process list1995030
+Node: Trace File Format1996093
+Node: Index Section Format1999307
+Node: Man Pages2007233
+Node: gdb man2007703
+Node: gdbserver man2013677
+Node: gcore man2021074
+Node: gdbinit man2022196
+Node: gdb-add-index man2023389
+Ref: gdb-add-index2023498
+Node: Copying2024372
+Node: GNU Free Documentation License2061933
+Node: Concept Index2087080
+Node: Command and Variable Index2229927
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-1	2019-12-04 01:54:52.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2019-12-05 01:54:29.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -44,7 +44,7 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 9.0.50.20191204-git.
+   This is the Tenth Edition, for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -507,7 +507,7 @@ Let us use GDB to try to see what is goi
      There is absolutely no warranty for GDB; type "show warranty"
       for details.
 
-     GDB 9.0.50.20191204-git, Copyright 1999 Free Software Foundation, Inc...
+     GDB 9.0.50.20191205-git, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-2	2019-12-04 01:54:55.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2019-12-05 01:54:31.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-3	2019-12-04 01:54:58.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2019-12-05 01:54:32.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-4	2019-12-04 01:55:01.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2019-12-05 01:54:35.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-5	2019-12-04 01:55:04.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2019-12-05 01:54:37.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-6	2019-12-04 01:55:08.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2019-12-05 01:54:39.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -419,6 +419,7 @@ Synopsis
       -symbol-info-functions [--include-nondebug]
                              [--type TYPE_REGEXP]
                              [--name NAME_REGEXP]
+                             [--max-results LIMIT]
 
 Return a list containing the names and types for all global functions
 taken from the debug information.  The functions are grouped by source
@@ -431,6 +432,10 @@ symbols from the symbol table.
 filtered based on either the name of the function, or the type signature
 of the function.
 
+   The option '--max-results' restricts the command to return no more
+than LIMIT results.  If exactly LIMIT results are returned then there
+might be additional results available if a higher limit is used.
+
 GDB Command
 ...........
 
@@ -505,6 +510,138 @@ Example
            ...
          ]}
 
+The '-symbol-info-module-functions' Command
+-------------------------------------------
+
+Synopsis
+........
+
+      -symbol-info-module-functions [--module MODULE_REGEXP]
+                                    [--name NAME_REGEXP]
+                                    [--type TYPE_REGEXP]
+
+Return a list containing the names of all known functions within all
+know Fortran modules.  The functions are grouped by source file and
+containing module, and shown with the line number on which each function
+is defined.
+
+   The option '--module' only returns results for modules matching
+MODULE_REGEXP.  The option '--name' only returns functions whose name
+matches NAME_REGEXP, and '--type' only returns functions whose type
+matches TYPE_REGEXP.
+
+GDB Command
+...........
+
+The corresponding GDB command is 'info module functions'.
+
+Example
+.......
+
+     (gdb)
+     -symbol-info-module-functions
+     ^done,symbols=
+       [{module="mod1",
+         files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                 fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                 symbols=[{line="21",name="mod1::check_all",type="void (void)",
+                           description="void mod1::check_all(void);"}]}]},
+         {module="mod2",
+          files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                  fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                  symbols=[{line="30",name="mod2::check_var_i",type="void (void)",
+                            description="void mod2::check_var_i(void);"}]}]},
+         {module="mod3",
+          files=[{filename="/projec/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                  fullname="/projec/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                  symbols=[{line="21",name="mod3::check_all",type="void (void)",
+                            description="void mod3::check_all(void);"},
+                           {line="27",name="mod3::check_mod2",type="void (void)",
+                            description="void mod3::check_mod2(void);"}]}]},
+         {module="modmany",
+          files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                  fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                  symbols=[{line="35",name="modmany::check_some",type="void (void)",
+                            description="void modmany::check_some(void);"}]}]},
+         {module="moduse",
+          files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                  fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                  symbols=[{line="44",name="moduse::check_all",type="void (void)",
+                            description="void moduse::check_all(void);"},
+                           {line="49",name="moduse::check_var_x",type="void (void)",
+                            description="void moduse::check_var_x(void);"}]}]}]
+
+The '-symbol-info-module-variables' Command
+-------------------------------------------
+
+Synopsis
+........
+
+      -symbol-info-module-variables [--module MODULE_REGEXP]
+                                    [--name NAME_REGEXP]
+                                    [--type TYPE_REGEXP]
+
+Return a list containing the names of all known variables within all
+know Fortran modules.  The variables are grouped by source file and
+containing module, and shown with the line number on which each variable
+is defined.
+
+   The option '--module' only returns results for modules matching
+MODULE_REGEXP.  The option '--name' only returns variables whose name
+matches NAME_REGEXP, and '--type' only returns variables whose type
+matches TYPE_REGEXP.
+
+GDB Command
+...........
+
+The corresponding GDB command is 'info module variables'.
+
+Example
+.......
+
+     (gdb)
+     -symbol-info-module-variables
+     ^done,symbols=
+       [{module="mod1",
+         files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                 fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                 symbols=[{line="18",name="mod1::var_const",type="integer(kind=4)",
+                           description="integer(kind=4) mod1::var_const;"},
+                          {line="17",name="mod1::var_i",type="integer(kind=4)",
+                           description="integer(kind=4) mod1::var_i;"}]}]},
+        {module="mod2",
+         files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                 fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+                 symbols=[{line="28",name="mod2::var_i",type="integer(kind=4)",
+                           description="integer(kind=4) mod2::var_i;"}]}]},
+        {module="mod3",
+         files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                 fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                 symbols=[{line="18",name="mod3::mod1",type="integer(kind=4)",
+                           description="integer(kind=4) mod3::mod1;"},
+                          {line="17",name="mod3::mod2",type="integer(kind=4)",
+                           description="integer(kind=4) mod3::mod2;"},
+                          {line="19",name="mod3::var_i",type="integer(kind=4)",
+                           description="integer(kind=4) mod3::var_i;"}]}]},
+        {module="modmany",
+         files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                 fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                 symbols=[{line="33",name="modmany::var_a",type="integer(kind=4)",
+                           description="integer(kind=4) modmany::var_a;"},
+                          {line="33",name="modmany::var_b",type="integer(kind=4)",
+                           description="integer(kind=4) modmany::var_b;"},
+                          {line="33",name="modmany::var_c",type="integer(kind=4)",
+                           description="integer(kind=4) modmany::var_c;"},
+                          {line="33",name="modmany::var_i",type="integer(kind=4)",
+                           description="integer(kind=4) modmany::var_i;"}]}]},
+        {module="moduse",
+         files=[{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                 fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+                 symbols=[{line="42",name="moduse::var_x",type="integer(kind=4)",
+                           description="integer(kind=4) moduse::var_x;"},
+                          {line="42",name="moduse::var_y",type="integer(kind=4)",
+                           description="integer(kind=4) moduse::var_y;"}]}]}]
+
 The '-symbol-info-modules' Command
 ----------------------------------
 
@@ -512,6 +649,8 @@ Synopsis
 ........
 
       -symbol-info-modules [--name NAME_REGEXP]
+                           [--max-results LIMIT]
+
 
 Return a list containing the names of all known Fortran modules.  The
 modules are grouped by source file, and shown with the line number on
@@ -520,6 +659,10 @@ which each modules is defined.
    The option '--name' allows the modules returned to be filtered based
 the name of the module.
 
+   The option '--max-results' restricts the command to return no more
+than LIMIT results.  If exactly LIMIT results are returned then there
+might be additional results available if a higher limit is used.
+
 GDB Command
 ...........
 
@@ -560,6 +703,8 @@ Synopsis
 ........
 
       -symbol-info-types [--name NAME_REGEXP]
+                         [--max-results LIMIT]
+
 
 Return a list of all defined types.  The types are grouped by source
 file, and shown with the line number on which each user defined type is
@@ -570,6 +715,10 @@ added to the debug information by the co
    The option '--name' allows the list of types returned to be filtered
 by name.
 
+   The option '--max-results' restricts the command to return no more
+than LIMIT results.  If exactly LIMIT results are returned then there
+might be additional results available if a higher limit is used.
+
 GDB Command
 ...........
 
@@ -613,6 +762,8 @@ Synopsis
       -symbol-info-variables [--include-nondebug]
                              [--type TYPE_REGEXP]
                              [--name NAME_REGEXP]
+                             [--max-results LIMIT]
+
 
 Return a list containing the names and types for all global variables
 taken from the debug information.  The variables are grouped by source
@@ -625,6 +776,10 @@ symbols from the symbol table.
 filtered based on either the name of the variable, or the type of the
 variable.
 
+   The option '--max-results' restricts the command to return no more
+than LIMIT results.  If exactly LIMIT results are returned then there
+might be additional results available if a higher limit is used.
+
 GDB Command
 ...........
 
@@ -4549,7 +4704,7 @@ and TeX (or 'texi2roff') to typeset the 
 
    GDB includes an already formatted copy of the on-line Info version of
 this manual in the 'gdb' subdirectory.  The main Info file is
-'gdb-9.0.50.20191204-git/gdb/gdb.info', and it refers to subordinate
+'gdb-9.0.50.20191205-git/gdb/gdb.info', and it refers to subordinate
 files matching 'gdb.info*' in the same directory.  If necessary, you can
 print out these files, or read them with any editor; but they are easier
 to read using the 'info' subsystem in GNU Emacs or the standalone 'info'
@@ -4559,8 +4714,8 @@ program, available as part of the GNU Te
 Info formatting programs, such as 'texinfo-format-buffer' or 'makeinfo'.
 
    If you have 'makeinfo' installed, and are in the top level GDB source
-directory ('gdb-9.0.50.20191204-git', in the case of version
-9.0.50.20191204-git), you can make the Info file by typing:
+directory ('gdb-9.0.50.20191205-git', in the case of version
+9.0.50.20191205-git), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -4585,7 +4740,7 @@ On its own, TeX cannot either read or ty
 
    If you have TeX and a DVI printer program installed, you can typeset
 and print this manual.  First switch to the 'gdb' subdirectory of the
-main source directory (for example, to 'gdb-9.0.50.20191204-git/gdb')
+main source directory (for example, to 'gdb-9.0.50.20191205-git/gdb')
 and type:
 
      make gdb.dvi
@@ -4594,8 +4749,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-9.0.50.20191204-git/gdb/refcard.ps' of the version
-9.0.50.20191204-git release.
+   (1) In 'gdb-9.0.50.20191205-git/gdb/refcard.ps' of the version
+9.0.50.20191205-git release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -4746,35 +4901,35 @@ preparing GDB for installation; you can 
 a single directory, whose name is usually composed by appending the
 version number to 'gdb'.
 
-   For example, the GDB version 9.0.50.20191204-git distribution is in
-the 'gdb-9.0.50.20191204-git' directory.  That directory contains:
+   For example, the GDB version 9.0.50.20191205-git distribution is in
+the 'gdb-9.0.50.20191205-git' directory.  That directory contains:
 
-'gdb-9.0.50.20191204-git/configure (and supporting files)'
+'gdb-9.0.50.20191205-git/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-9.0.50.20191204-git/gdb'
+'gdb-9.0.50.20191205-git/gdb'
      the source specific to GDB itself
 
-'gdb-9.0.50.20191204-git/bfd'
+'gdb-9.0.50.20191205-git/bfd'
      source for the Binary File Descriptor library
 
-'gdb-9.0.50.20191204-git/include'
+'gdb-9.0.50.20191205-git/include'
      GNU include files
 
-'gdb-9.0.50.20191204-git/libiberty'
+'gdb-9.0.50.20191205-git/libiberty'
      source for the '-liberty' free software library
 
-'gdb-9.0.50.20191204-git/opcodes'
+'gdb-9.0.50.20191205-git/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-9.0.50.20191204-git/readline'
+'gdb-9.0.50.20191205-git/readline'
      source for the GNU command-line interface
 
    There may be other subdirectories as well.
 
    The simplest way to configure and build GDB is to run 'configure'
 from the 'gdb-VERSION-NUMBER' source directory, which in this example is
-the 'gdb-9.0.50.20191204-git' directory.
+the 'gdb-9.0.50.20191205-git' directory.
 
    First switch to the 'gdb-VERSION-NUMBER' source directory if you are
 not already in it; then run 'configure'.  Pass the identifier for the
@@ -4782,7 +4937,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-9.0.50.20191204-git
+     cd gdb-9.0.50.20191205-git
      ./configure
      make
 
@@ -4830,13 +4985,13 @@ to specify a path to find 'configure' it
 directory.  If the path to 'configure' would be the same as the argument
 to '--srcdir', you can leave out the '--srcdir' option; it is assumed.)
 
-   For example, with version 9.0.50.20191204-git, you can build GDB in a
+   For example, with version 9.0.50.20191205-git, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-9.0.50.20191204-git
+     cd gdb-9.0.50.20191205-git
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-9.0.50.20191204-git/configure
+     ../gdb-9.0.50.20191205-git/configure
      make
 
    When 'configure' builds a configuration using a remote source
@@ -4847,7 +5002,7 @@ the example, you'd find the Sun 4 librar
 
    Make sure that your path to the 'configure' script has just one
 instance of 'gdb' in it.  If your path to 'configure' looks like
-'../gdb-9.0.50.20191204-git/gdb/configure', you are configuring only one
+'../gdb-9.0.50.20191205-git/gdb/configure', you are configuring only one
 subdirectory of GDB, not the whole package.  This leads to build errors
 about missing include files such as 'bfd/bfd.h'.
 
@@ -4863,8 +5018,8 @@ a configured directory--whatever directo
 
    The 'Makefile' that 'configure' generates in each source directory
 also runs recursively.  If you type 'make' in a source directory such as
-'gdb-9.0.50.20191204-git' (or in a separate configured directory
-configured with '--srcdir=DIRNAME/gdb-9.0.50.20191204-git'), you will
+'gdb-9.0.50.20191205-git' (or in a separate configured directory
+configured with '--srcdir=DIRNAME/gdb-9.0.50.20191205-git'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -4909,7 +5064,7 @@ you can use it to test your guesses on a
      Invalid configuration `i986v': machine `i986v' not recognized
 
 'config.sub' is also distributed in the GDB source directory
-('gdb-9.0.50.20191204-git', for version 9.0.50.20191204-git).
+('gdb-9.0.50.20191205-git', for version 9.0.50.20191205-git).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-7	2019-12-04 01:55:11.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2019-12-05 01:54:41.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-8 ./gdb/doc/gdb.info-8
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.info-8	2019-12-04 01:55:12.000000000 +0000
+++ ./gdb/doc/gdb.info-8	2019-12-05 01:54:41.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191204-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191205-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -255,10 +255,12 @@ Command, Variable, and Function Index
 * -stack-select-frame:                   GDB/MI Stack Manipulation.
                                                               (line 379)
 * -symbol-info-functions:                GDB/MI Symbol Query. (line   9)
-* -symbol-info-modules:                  GDB/MI Symbol Query. (line 104)
-* -symbol-info-types:                    GDB/MI Symbol Query. (line 152)
-* -symbol-info-variables:                GDB/MI Symbol Query. (line 203)
-* -symbol-list-lines:                    GDB/MI Symbol Query. (line 302)
+* -symbol-info-module-functions:         GDB/MI Symbol Query. (line 109)
+* -symbol-info-module-variables:         GDB/MI Symbol Query. (line 170)
+* -symbol-info-modules:                  GDB/MI Symbol Query. (line 241)
+* -symbol-info-types:                    GDB/MI Symbol Query. (line 295)
+* -symbol-info-variables:                GDB/MI Symbol Query. (line 352)
+* -symbol-list-lines:                    GDB/MI Symbol Query. (line 457)
 * -target-attach:                        GDB/MI Target Manipulation.
                                                               (line   9)
 * -target-detach:                        GDB/MI Target Manipulation.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdbinit.5	2019-12-04 01:55:17.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2019-12-05 01:54:45.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2019-12-04" "gdb-9.0.50.20191204-git" "GNU Development Tools"
+.TH GDBINIT 5 "2019-12-05" "gdb-9.0.50.20191205-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdbserver.1	2019-12-04 01:55:16.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2019-12-05 01:54:45.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2019-12-04" "gdb-9.0.50.20191204-git" "GNU Development Tools"
+.TH GDBSERVER 1 "2019-12-05" "gdb-9.0.50.20191205-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/doc/gdb.texinfo	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2019-12-05 01:49:57.000000000 +0000
@@ -33962,6 +33962,7 @@ N.A.
  -symbol-info-functions [--include-nondebug]
                         [--type @var{type_regexp}]
                         [--name @var{name_regexp}]
+                        [--max-results @var{limit}]
 @end smallexample
 
 @noindent
@@ -33977,6 +33978,11 @@ The options @code{--type} and @code{--na
 to be filtered based on either the name of the function, or the type
 signature of the function.
 
+The option @code{--max-results} restricts the command to return no
+more than @var{limit} results.  If exactly @var{limit} results are
+returned then there might be additional results available if a higher
+limit is used.
+
 @subsubheading @value{GDBN} Command
 
 The corresponding @value{GDBN} command is @samp{info functions}.
@@ -34058,6 +34064,148 @@ The corresponding @value{GDBN} command i
 @end group
 @end smallexample
 
+@subheading The @code{-symbol-info-module-functions} Command
+@findex -symbol-info-module-functions
+@anchor{-symbol-info-module-functions}
+
+@subsubheading Synopsis
+
+@smallexample
+ -symbol-info-module-functions [--module @var{module_regexp}]
+                               [--name @var{name_regexp}]
+                               [--type @var{type_regexp}]
+@end smallexample
+
+@noindent
+Return a list containing the names of all known functions within all
+know Fortran modules.  The functions are grouped by source file and
+containing module, and shown with the line number on which each
+function is defined.
+
+The option @code{--module} only returns results for modules matching
+@var{module_regexp}.  The option @code{--name} only returns functions
+whose name matches @var{name_regexp}, and @code{--type} only returns
+functions whose type matches @var{type_regexp}.
+
+@subsubheading @value{GDBN} Command
+
+The corresponding @value{GDBN} command is @samp{info module functions}.
+
+@subsubheading Example
+
+@smallexample
+@group
+(gdb)
+-symbol-info-module-functions
+^done,symbols=
+  [@{module="mod1",
+    files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+            fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+            symbols=[@{line="21",name="mod1::check_all",type="void (void)",
+                      description="void mod1::check_all(void);"@}]@}]@},
+    @{module="mod2",
+     files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+             fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+             symbols=[@{line="30",name="mod2::check_var_i",type="void (void)",
+                       description="void mod2::check_var_i(void);"@}]@}]@},
+    @{module="mod3",
+     files=[@{filename="/projec/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+             fullname="/projec/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+             symbols=[@{line="21",name="mod3::check_all",type="void (void)",
+                       description="void mod3::check_all(void);"@},
+                      @{line="27",name="mod3::check_mod2",type="void (void)",
+                       description="void mod3::check_mod2(void);"@}]@}]@},
+    @{module="modmany",
+     files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+             fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+             symbols=[@{line="35",name="modmany::check_some",type="void (void)",
+                       description="void modmany::check_some(void);"@}]@}]@},
+    @{module="moduse",
+     files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+             fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+             symbols=[@{line="44",name="moduse::check_all",type="void (void)",
+                       description="void moduse::check_all(void);"@},
+                      @{line="49",name="moduse::check_var_x",type="void (void)",
+                       description="void moduse::check_var_x(void);"@}]@}]@}]
+@end group
+@end smallexample
+
+@subheading The @code{-symbol-info-module-variables} Command
+@findex -symbol-info-module-variables
+@anchor{-symbol-info-module-variables}
+
+@subsubheading Synopsis
+
+@smallexample
+ -symbol-info-module-variables [--module @var{module_regexp}]
+                               [--name @var{name_regexp}]
+                               [--type @var{type_regexp}]
+@end smallexample
+
+@noindent
+Return a list containing the names of all known variables within all
+know Fortran modules.  The variables are grouped by source file and
+containing module, and shown with the line number on which each
+variable is defined.
+
+The option @code{--module} only returns results for modules matching
+@var{module_regexp}.  The option @code{--name} only returns variables
+whose name matches @var{name_regexp}, and @code{--type} only returns
+variables whose type matches @var{type_regexp}.
+
+@subsubheading @value{GDBN} Command
+
+The corresponding @value{GDBN} command is @samp{info module variables}.
+
+@subsubheading Example
+
+@smallexample
+@group
+(gdb)
+-symbol-info-module-variables
+^done,symbols=
+  [@{module="mod1",
+    files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+            fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+            symbols=[@{line="18",name="mod1::var_const",type="integer(kind=4)",
+                      description="integer(kind=4) mod1::var_const;"@},
+                     @{line="17",name="mod1::var_i",type="integer(kind=4)",
+                      description="integer(kind=4) mod1::var_i;"@}]@}]@},
+   @{module="mod2",
+    files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+            fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90",
+            symbols=[@{line="28",name="mod2::var_i",type="integer(kind=4)",
+                      description="integer(kind=4) mod2::var_i;"@}]@}]@},
+   @{module="mod3",
+    files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+            fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+            symbols=[@{line="18",name="mod3::mod1",type="integer(kind=4)",
+                      description="integer(kind=4) mod3::mod1;"@},
+                     @{line="17",name="mod3::mod2",type="integer(kind=4)",
+                      description="integer(kind=4) mod3::mod2;"@},
+                     @{line="19",name="mod3::var_i",type="integer(kind=4)",
+                      description="integer(kind=4) mod3::var_i;"@}]@}]@},
+   @{module="modmany",
+    files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+            fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+            symbols=[@{line="33",name="modmany::var_a",type="integer(kind=4)",
+                      description="integer(kind=4) modmany::var_a;"@},
+                     @{line="33",name="modmany::var_b",type="integer(kind=4)",
+                      description="integer(kind=4) modmany::var_b;"@},
+                     @{line="33",name="modmany::var_c",type="integer(kind=4)",
+                      description="integer(kind=4) modmany::var_c;"@},
+                     @{line="33",name="modmany::var_i",type="integer(kind=4)",
+                      description="integer(kind=4) modmany::var_i;"@}]@}]@},
+   @{module="moduse",
+    files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+            fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90",
+            symbols=[@{line="42",name="moduse::var_x",type="integer(kind=4)",
+                      description="integer(kind=4) moduse::var_x;"@},
+                     @{line="42",name="moduse::var_y",type="integer(kind=4)",
+                      description="integer(kind=4) moduse::var_y;"@}]@}]@}]
+@end group
+@end smallexample
+
 @subheading The @code{-symbol-info-modules} Command
 @findex -symbol-info-modules
 @anchor{-symbol-info-modules}
@@ -34066,6 +34214,8 @@ The corresponding @value{GDBN} command i
 
 @smallexample
  -symbol-info-modules [--name @var{name_regexp}]
+                      [--max-results @var{limit}]
+
 @end smallexample
 
 @noindent
@@ -34076,6 +34226,11 @@ which each modules is defined.
 The option @code{--name} allows the modules returned to be filtered
 based the name of the module.
 
+The option @code{--max-results} restricts the command to return no
+more than @var{limit} results.  If exactly @var{limit} results are
+returned then there might be additional results available if a higher
+limit is used.
+
 @subsubheading @value{GDBN} Command
 
 The corresponding @value{GDBN} command is @samp{info modules}.
@@ -34120,6 +34275,8 @@ The corresponding @value{GDBN} command i
 
 @smallexample
  -symbol-info-types [--name @var{name_regexp}]
+                    [--max-results @var{limit}]
+
 @end smallexample
 
 @noindent
@@ -34133,6 +34290,11 @@ line number.
 The option @code{--name} allows the list of types returned to be
 filtered by name.
 
+The option @code{--max-results} restricts the command to return no
+more than @var{limit} results.  If exactly @var{limit} results are
+returned then there might be additional results available if a higher
+limit is used.
+
 @subsubheading @value{GDBN} Command
 
 The corresponding @value{GDBN} command is @samp{info types}.
@@ -34180,6 +34342,8 @@ The corresponding @value{GDBN} command i
  -symbol-info-variables [--include-nondebug]
                         [--type @var{type_regexp}]
                         [--name @var{name_regexp}]
+                        [--max-results @var{limit}]
+
 @end smallexample
 
 @noindent
@@ -34195,6 +34359,11 @@ The options @code{--type} and @code{--na
 to be filtered based on either the name of the variable, or the type
 of the variable.
 
+The option @code{--max-results} restricts the command to return no
+more than @var{limit} results.  If exactly @var{limit} results are
+returned then there might be additional results available if a higher
+limit is used.
+
 @subsubheading @value{GDBN} Command
 
 The corresponding @value{GDBN} command is @samp{info variables}.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/dwarf2loc.c ./gdb/dwarf2loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/dwarf2loc.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/dwarf2loc.c	2019-12-05 01:49:57.000000000 +0000
@@ -1577,8 +1577,7 @@ rw_pieced_value (struct value *v, struct
   struct piece_closure *c
     = (struct piece_closure *) value_computed_closure (v);
   gdb::byte_vector buffer;
-  int bits_big_endian
-    = gdbarch_bits_big_endian (get_type_arch (value_type (v)));
+  bool bits_big_endian = type_byte_order (value_type (v)) == BFD_ENDIAN_BIG;
 
   if (from != NULL)
     {
@@ -2817,7 +2816,7 @@ access_memory (struct gdbarch *arch, str
   if (8 * nbytes == nbits)
     return;
 
-  if (gdbarch_bits_big_endian (arch))
+  if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG)
     {
       /* On a bits-big-endian machine, we want the high-order
 	 NBITS.  */
@@ -2867,7 +2866,7 @@ dwarf2_compile_expr_to_ax (struct agent_
   enum bfd_endian byte_order = gdbarch_byte_order (arch);
   ULONGEST bits_collected = 0;
   unsigned int addr_size_bits = 8 * addr_size;
-  int bits_big_endian = gdbarch_bits_big_endian (arch);
+  bool bits_big_endian = byte_order == BFD_ENDIAN_BIG;
 
   std::vector<int> offsets (op_end - op_ptr, -1);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/dwarf2read.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/dwarf2read.c	2019-12-05 01:49:57.000000000 +0000
@@ -15127,7 +15127,7 @@ dwarf2_add_field (struct field_info *fip
       attr = dwarf2_attr (die, DW_AT_bit_offset, cu);
       if (attr != nullptr)
 	{
-	  if (gdbarch_bits_big_endian (gdbarch))
+	  if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
 	    {
 	      /* For big endian bits, the DW_AT_bit_offset gives the
 	         additional bit offset from the MSB of the containing
@@ -16060,7 +16060,7 @@ process_structure_scope (struct die_info
      read the discriminant member, so we can record it later in the
      discriminant_info.  */
   bool is_variant_part = TYPE_FLAG_DISCRIMINATED_UNION (type);
-  sect_offset discr_offset;
+  sect_offset discr_offset {};
   bool has_template_parameters = false;
 
   if (is_variant_part)
@@ -17624,7 +17624,7 @@ read_typedef (struct die_info *die, stru
 
 static struct type *
 dwarf2_init_float_type (struct objfile *objfile, int bits, const char *name,
-			const char *name_hint)
+			const char *name_hint, enum bfd_endian byte_order)
 {
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
   const struct floatformat **format;
@@ -17632,7 +17632,7 @@ dwarf2_init_float_type (struct objfile *
 
   format = gdbarch_floatformat_for_type (gdbarch, name_hint, bits);
   if (format)
-    type = init_float_type (objfile, bits, name, format);
+    type = init_float_type (objfile, bits, name, format, byte_order);
   else
     type = init_type (objfile, TYPE_CODE_ERROR, bits, name);
 
@@ -17671,7 +17671,8 @@ dwarf2_init_integer_type (struct dwarf2_
 static struct type *
 dwarf2_init_complex_target_type (struct dwarf2_cu *cu,
 				 struct objfile *objfile,
-				 int bits, const char *name_hint)
+				 int bits, const char *name_hint,
+				 enum bfd_endian byte_order)
 {
   gdbarch *gdbarch = get_objfile_arch (objfile);
   struct type *tt = nullptr;
@@ -17720,7 +17721,7 @@ dwarf2_init_complex_target_type (struct 
     tt = nullptr;
 
   const char *name = (tt == nullptr) ? nullptr : TYPE_NAME (tt);
-  return dwarf2_init_float_type (objfile, bits, name, name_hint);
+  return dwarf2_init_float_type (objfile, bits, name, name_hint, byte_order);
 }
 
 /* Find a representation of a given base type and install
@@ -17733,7 +17734,6 @@ read_base_type (struct die_info *die, st
   struct type *type;
   struct attribute *attr;
   int encoding = 0, bits = 0;
-  int endianity = 0;
   const char *name;
   gdbarch *arch;
 
@@ -17746,11 +17746,29 @@ read_base_type (struct die_info *die, st
   name = dwarf2_name (die, cu);
   if (!name)
     complaint (_("DW_AT_name missing from DW_TAG_base_type"));
+
+  arch = get_objfile_arch (objfile);
+  enum bfd_endian byte_order = gdbarch_byte_order (arch);
+
   attr = dwarf2_attr (die, DW_AT_endianity, cu);
   if (attr)
-    endianity = DW_UNSND (attr);
+    {
+      int endianity = DW_UNSND (attr);
+
+      switch (endianity)
+	{
+	case DW_END_big:
+	  byte_order = BFD_ENDIAN_BIG;
+	  break;
+	case DW_END_little:
+	  byte_order = BFD_ENDIAN_LITTLE;
+	  break;
+	default:
+	  complaint (_("DW_AT_endianity has unrecognized value %d"), endianity);
+	  break;
+	}
+    }
 
-  arch = get_objfile_arch (objfile);
   switch (encoding)
     {
       case DW_ATE_address:
@@ -17762,14 +17780,15 @@ read_base_type (struct die_info *die, st
 	type = init_boolean_type (objfile, bits, 1, name);
 	break;
       case DW_ATE_complex_float:
-	type = dwarf2_init_complex_target_type (cu, objfile, bits / 2, name);
+	type = dwarf2_init_complex_target_type (cu, objfile, bits / 2, name,
+						byte_order);
 	type = init_complex_type (objfile, name, type);
 	break;
       case DW_ATE_decimal_float:
 	type = init_decfloat_type (objfile, bits, name);
 	break;
       case DW_ATE_float:
-	type = dwarf2_init_float_type (objfile, bits, name, name);
+	type = dwarf2_init_float_type (objfile, bits, name, name, byte_order);
 	break;
       case DW_ATE_signed:
 	type = dwarf2_init_integer_type (cu, objfile, bits, 0, name);
@@ -17827,17 +17846,7 @@ read_base_type (struct die_info *die, st
 
   maybe_set_alignment (cu, die, type);
 
-  switch (endianity)
-    {
-      case DW_END_big:
-        if (gdbarch_byte_order (arch) == BFD_ENDIAN_LITTLE)
-          TYPE_ENDIANITY_NOT_DEFAULT (type) = 1;
-        break;
-      case DW_END_little:
-        if (gdbarch_byte_order (arch) == BFD_ENDIAN_BIG)
-          TYPE_ENDIANITY_NOT_DEFAULT (type) = 1;
-        break;
-    }
+  TYPE_ENDIANITY_NOT_DEFAULT (type) = gdbarch_byte_order (arch) != byte_order;
 
   return set_die_type (die, type, cu);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/eval.c ./gdb/eval.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/eval.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/eval.c	2019-12-05 01:49:57.000000000 +0000
@@ -1547,7 +1547,7 @@ evaluate_subexp_standard (struct type *e
 		{
 		  int bit_index = (unsigned) range_low % TARGET_CHAR_BIT;
 
-		  if (gdbarch_bits_big_endian (exp->gdbarch))
+		  if (gdbarch_byte_order (exp->gdbarch) == BFD_ENDIAN_BIG)
 		    bit_index = TARGET_CHAR_BIT - 1 - bit_index;
 		  valaddr[(unsigned) range_low / TARGET_CHAR_BIT]
 		    |= 1 << bit_index;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/f-exp.c ./gdb/f-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/f-exp.c	2019-12-04 01:54:34.000000000 +0000
+++ ./gdb/f-exp.c	2019-12-05 01:54:15.000000000 +0000
@@ -167,28 +167,32 @@ static struct type *convert_to_kind_type
      REAL_KEYWORD = 274,
      REAL_S8_KEYWORD = 275,
      REAL_S16_KEYWORD = 276,
-     COMPLEX_S8_KEYWORD = 277,
-     COMPLEX_S16_KEYWORD = 278,
-     COMPLEX_S32_KEYWORD = 279,
-     BOOL_AND = 280,
-     BOOL_OR = 281,
-     BOOL_NOT = 282,
-     CHARACTER = 283,
-     DOLLAR_VARIABLE = 284,
-     ASSIGN_MODIFY = 285,
-     UNOP_INTRINSIC = 286,
-     BINOP_INTRINSIC = 287,
-     ABOVE_COMMA = 288,
-     NOTEQUAL = 289,
-     EQUAL = 290,
-     GEQ = 291,
-     LEQ = 292,
-     GREATERTHAN = 293,
-     LESSTHAN = 294,
-     RSH = 295,
-     LSH = 296,
-     STARSTAR = 297,
-     UNARY = 298
+     COMPLEX_KEYWORD = 277,
+     COMPLEX_S8_KEYWORD = 278,
+     COMPLEX_S16_KEYWORD = 279,
+     COMPLEX_S32_KEYWORD = 280,
+     BOOL_AND = 281,
+     BOOL_OR = 282,
+     BOOL_NOT = 283,
+     SINGLE = 284,
+     DOUBLE = 285,
+     PRECISION = 286,
+     CHARACTER = 287,
+     DOLLAR_VARIABLE = 288,
+     ASSIGN_MODIFY = 289,
+     UNOP_INTRINSIC = 290,
+     BINOP_INTRINSIC = 291,
+     ABOVE_COMMA = 292,
+     NOTEQUAL = 293,
+     EQUAL = 294,
+     GEQ = 295,
+     LEQ = 296,
+     GREATERTHAN = 297,
+     LESSTHAN = 298,
+     RSH = 299,
+     LSH = 300,
+     STARSTAR = 301,
+     UNARY = 302
    };
 #endif
 /* Tokens.  */
@@ -211,28 +215,32 @@ static struct type *convert_to_kind_type
 #define REAL_KEYWORD 274
 #define REAL_S8_KEYWORD 275
 #define REAL_S16_KEYWORD 276
-#define COMPLEX_S8_KEYWORD 277
-#define COMPLEX_S16_KEYWORD 278
-#define COMPLEX_S32_KEYWORD 279
-#define BOOL_AND 280
-#define BOOL_OR 281
-#define BOOL_NOT 282
-#define CHARACTER 283
-#define DOLLAR_VARIABLE 284
-#define ASSIGN_MODIFY 285
-#define UNOP_INTRINSIC 286
-#define BINOP_INTRINSIC 287
-#define ABOVE_COMMA 288
-#define NOTEQUAL 289
-#define EQUAL 290
-#define GEQ 291
-#define LEQ 292
-#define GREATERTHAN 293
-#define LESSTHAN 294
-#define RSH 295
-#define LSH 296
-#define STARSTAR 297
-#define UNARY 298
+#define COMPLEX_KEYWORD 277
+#define COMPLEX_S8_KEYWORD 278
+#define COMPLEX_S16_KEYWORD 279
+#define COMPLEX_S32_KEYWORD 280
+#define BOOL_AND 281
+#define BOOL_OR 282
+#define BOOL_NOT 283
+#define SINGLE 284
+#define DOUBLE 285
+#define PRECISION 286
+#define CHARACTER 287
+#define DOLLAR_VARIABLE 288
+#define ASSIGN_MODIFY 289
+#define UNOP_INTRINSIC 290
+#define BINOP_INTRINSIC 291
+#define ABOVE_COMMA 292
+#define NOTEQUAL 293
+#define EQUAL 294
+#define GEQ 295
+#define LEQ 296
+#define GREATERTHAN 297
+#define LESSTHAN 298
+#define RSH 299
+#define LSH 300
+#define STARSTAR 301
+#define UNARY 302
 
 
 
@@ -268,7 +276,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 272 "f-exp.c.tmp"
+#line 280 "f-exp.c.tmp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -287,7 +295,7 @@ static int parse_number (struct parser_s
 
 
 /* Line 264 of yacc.c  */
-#line 291 "f-exp.c.tmp"
+#line 299 "f-exp.c.tmp"
 
 #ifdef short
 # undef short
@@ -499,22 +507,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  53
+#define YYFINAL  60
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   668
+#define YYLAST   720
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  60
+#define YYNTOKENS  64
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  18
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  91
+#define YYNRULES  96
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  150
+#define YYNSTATES  157
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   298
+#define YYMAXUTOK   302
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -525,16 +533,16 @@ static const yytype_uint8 yytranslate[] 
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,    54,    39,     2,
-      56,    57,    51,    49,    33,    50,     2,    52,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    59,     2,
-       2,    35,     2,    36,    48,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,    58,    43,     2,
+      60,    61,    55,    53,    37,    54,     2,    56,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    63,     2,
+       2,    39,     2,    40,    52,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,    38,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,    42,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,    37,     2,    58,     2,     2,     2,
+       2,     2,     2,     2,    41,     2,    62,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -550,8 +558,9 @@ static const yytype_uint8 yytranslate[] 
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    34,    40,
-      41,    42,    43,    44,    45,    46,    47,    53,    55
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    38,    44,    45,    46,    47,    48,    49,    50,
+      51,    57,    59
 };
 
 #if YYDEBUG
@@ -568,55 +577,57 @@ static const yytype_uint16 yyprhs[] =
      200,   202,   205,   207,   210,   212,   215,   217,   221,   227,
      230,   233,   235,   238,   242,   244,   246,   248,   250,   252,
      254,   256,   258,   260,   262,   264,   266,   268,   270,   272,
-     276,   278
+     275,   278,   281,   284,   286,   290,   292
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      61,     0,    -1,    63,    -1,    62,    -1,    69,    -1,    56,
-      63,    57,    -1,    51,    63,    -1,    39,    63,    -1,    50,
-      63,    -1,    27,    63,    -1,    58,    63,    -1,    10,    63,
-      -1,    11,    56,    63,    57,    -1,    -1,    63,    56,    64,
-      65,    57,    -1,    31,    56,    63,    57,    -1,    32,    56,
-      63,    33,    63,    57,    -1,    -1,    63,    -1,    66,    -1,
-      65,    33,    63,    -1,    63,    59,    63,    -1,    63,    59,
-      -1,    59,    63,    -1,    59,    -1,    63,    33,    63,    -1,
-      56,    67,    57,    -1,    56,    69,    57,    63,    -1,    63,
-      54,    76,    -1,    63,    48,    63,    -1,    63,    53,    63,
-      -1,    63,    51,    63,    -1,    63,    52,    63,    -1,    63,
-      49,    63,    -1,    63,    50,    63,    -1,    63,    47,    63,
-      -1,    63,    46,    63,    -1,    63,    41,    63,    -1,    63,
-      40,    63,    -1,    63,    43,    63,    -1,    63,    42,    63,
-      -1,    63,    45,    63,    -1,    63,    44,    63,    -1,    63,
-      39,    63,    -1,    63,    38,    63,    -1,    63,    37,    63,
-      -1,    63,    25,    63,    -1,    63,    26,    63,    -1,    63,
-      35,    63,    -1,    63,    30,    63,    -1,     3,    -1,     9,
-      -1,     4,    -1,    68,    -1,    29,    -1,    10,    56,    69,
-      57,    -1,     6,    -1,     5,    -1,    77,    -1,    70,    -1,
-      74,    -1,    74,    71,    -1,    51,    -1,    51,    71,    -1,
-      39,    -1,    39,    71,    -1,    72,    -1,    56,    71,    57,
-      -1,    56,    11,    35,     3,    57,    -1,    51,     3,    -1,
-      72,    73,    -1,    73,    -1,    56,    57,    -1,    56,    75,
-      57,    -1,     8,    -1,    13,    -1,    14,    -1,    28,    -1,
+      65,     0,    -1,    67,    -1,    66,    -1,    73,    -1,    60,
+      67,    61,    -1,    55,    67,    -1,    43,    67,    -1,    54,
+      67,    -1,    28,    67,    -1,    62,    67,    -1,    10,    67,
+      -1,    11,    60,    67,    61,    -1,    -1,    67,    60,    68,
+      69,    61,    -1,    35,    60,    67,    61,    -1,    36,    60,
+      67,    37,    67,    61,    -1,    -1,    67,    -1,    70,    -1,
+      69,    37,    67,    -1,    67,    63,    67,    -1,    67,    63,
+      -1,    63,    67,    -1,    63,    -1,    67,    37,    67,    -1,
+      60,    71,    61,    -1,    60,    73,    61,    67,    -1,    67,
+      58,    80,    -1,    67,    52,    67,    -1,    67,    57,    67,
+      -1,    67,    55,    67,    -1,    67,    56,    67,    -1,    67,
+      53,    67,    -1,    67,    54,    67,    -1,    67,    51,    67,
+      -1,    67,    50,    67,    -1,    67,    45,    67,    -1,    67,
+      44,    67,    -1,    67,    47,    67,    -1,    67,    46,    67,
+      -1,    67,    49,    67,    -1,    67,    48,    67,    -1,    67,
+      43,    67,    -1,    67,    42,    67,    -1,    67,    41,    67,
+      -1,    67,    26,    67,    -1,    67,    27,    67,    -1,    67,
+      39,    67,    -1,    67,    34,    67,    -1,     3,    -1,     9,
+      -1,     4,    -1,    72,    -1,    33,    -1,    10,    60,    73,
+      61,    -1,     6,    -1,     5,    -1,    81,    -1,    74,    -1,
+      78,    -1,    78,    75,    -1,    55,    -1,    55,    75,    -1,
+      43,    -1,    43,    75,    -1,    76,    -1,    60,    75,    61,
+      -1,    60,    11,    39,     3,    61,    -1,    55,     3,    -1,
+      76,    77,    -1,    77,    -1,    60,    61,    -1,    60,    79,
+      61,    -1,     8,    -1,    13,    -1,    14,    -1,    32,    -1,
       17,    -1,    18,    -1,    16,    -1,    15,    -1,    19,    -1,
       20,    -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,
-      69,    -1,    75,    33,    69,    -1,     7,    -1,     7,    -1
+      25,    -1,    29,    31,    -1,    30,    31,    -1,    29,    22,
+      -1,    30,    22,    -1,    73,    -1,    79,    37,    73,    -1,
+       7,    -1,     7,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   203,   203,   204,   207,   213,   218,   222,   226,   230,
-     234,   238,   242,   252,   251,   262,   266,   270,   273,   277,
-     281,   287,   293,   299,   305,   311,   315,   323,   329,   337,
-     341,   345,   349,   353,   357,   361,   365,   369,   373,   377,
-     381,   385,   389,   393,   397,   401,   405,   410,   414,   418,
-     424,   431,   442,   449,   452,   455,   466,   473,   481,   513,
-     516,   517,   568,   570,   572,   574,   576,   579,   581,   583,
-     585,   587,   591,   593,   598,   600,   602,   604,   606,   608,
-     610,   612,   614,   616,   618,   620,   622,   624,   629,   634,
-     641,   645
+       0,   205,   205,   206,   209,   215,   220,   224,   228,   232,
+     236,   240,   244,   254,   253,   264,   268,   272,   275,   279,
+     283,   289,   295,   301,   307,   313,   317,   325,   331,   339,
+     343,   347,   351,   355,   359,   363,   367,   371,   375,   379,
+     383,   387,   391,   395,   399,   403,   407,   412,   416,   420,
+     426,   433,   444,   451,   454,   457,   468,   475,   483,   515,
+     518,   519,   570,   572,   574,   576,   578,   581,   583,   585,
+     587,   589,   593,   595,   600,   602,   604,   606,   608,   610,
+     612,   614,   616,   618,   620,   622,   624,   626,   628,   630,
+     632,   634,   636,   641,   646,   653,   657
 };
 #endif
 
@@ -629,17 +640,17 @@ static const char *const yytname[] =
   "BOOLEAN_LITERAL", "NAME", "TYPENAME", "NAME_OR_INT", "SIZEOF", "KIND",
   "ERROR", "INT_KEYWORD", "INT_S2_KEYWORD", "LOGICAL_S1_KEYWORD",
   "LOGICAL_S2_KEYWORD", "LOGICAL_S8_KEYWORD", "LOGICAL_KEYWORD",
-  "REAL_KEYWORD", "REAL_S8_KEYWORD", "REAL_S16_KEYWORD",
+  "REAL_KEYWORD", "REAL_S8_KEYWORD", "REAL_S16_KEYWORD", "COMPLEX_KEYWORD",
   "COMPLEX_S8_KEYWORD", "COMPLEX_S16_KEYWORD", "COMPLEX_S32_KEYWORD",
-  "BOOL_AND", "BOOL_OR", "BOOL_NOT", "CHARACTER", "DOLLAR_VARIABLE",
-  "ASSIGN_MODIFY", "UNOP_INTRINSIC", "BINOP_INTRINSIC", "','",
-  "ABOVE_COMMA", "'='", "'?'", "'|'", "'^'", "'&'", "NOTEQUAL", "EQUAL",
-  "GEQ", "LEQ", "GREATERTHAN", "LESSTHAN", "RSH", "LSH", "'@'", "'+'",
-  "'-'", "'*'", "'/'", "STARSTAR", "'%'", "UNARY", "'('", "')'", "'~'",
-  "':'", "$accept", "start", "type_exp", "exp", "$@1", "arglist",
-  "subrange", "complexnum", "variable", "type", "ptype", "abs_decl",
-  "direct_abs_decl", "func_mod", "typebase", "nonempty_typelist", "name",
-  "name_not_typename", 0
+  "BOOL_AND", "BOOL_OR", "BOOL_NOT", "SINGLE", "DOUBLE", "PRECISION",
+  "CHARACTER", "DOLLAR_VARIABLE", "ASSIGN_MODIFY", "UNOP_INTRINSIC",
+  "BINOP_INTRINSIC", "','", "ABOVE_COMMA", "'='", "'?'", "'|'", "'^'",
+  "'&'", "NOTEQUAL", "EQUAL", "GEQ", "LEQ", "GREATERTHAN", "LESSTHAN",
+  "RSH", "LSH", "'@'", "'+'", "'-'", "'*'", "'/'", "STARSTAR", "'%'",
+  "UNARY", "'('", "')'", "'~'", "':'", "$accept", "start", "type_exp",
+  "exp", "$@1", "arglist", "subrange", "complexnum", "variable", "type",
+  "ptype", "abs_decl", "direct_abs_decl", "func_mod", "typebase",
+  "nonempty_typelist", "name", "name_not_typename", 0
 };
 #endif
 
@@ -651,25 +662,26 @@ static const yytype_uint16 yytoknum[] =
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,    44,   288,    61,    63,   124,    94,    38,
-     289,   290,   291,   292,   293,   294,   295,   296,    64,    43,
-      45,    42,    47,   297,    37,   298,    40,    41,   126,    58
+     285,   286,   287,   288,   289,   290,   291,    44,   292,    61,
+      63,   124,    94,    38,   293,   294,   295,   296,   297,   298,
+     299,   300,    64,    43,    45,    42,    47,   301,    37,   302,
+      40,    41,   126,    58
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    60,    61,    61,    62,    63,    63,    63,    63,    63,
-      63,    63,    63,    64,    63,    63,    63,    65,    65,    65,
-      65,    66,    66,    66,    66,    67,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    68,    69,
-      70,    70,    71,    71,    71,    71,    71,    72,    72,    72,
-      72,    72,    73,    73,    74,    74,    74,    74,    74,    74,
-      74,    74,    74,    74,    74,    74,    74,    74,    75,    75,
-      76,    77
+       0,    64,    65,    65,    66,    67,    67,    67,    67,    67,
+      67,    67,    67,    68,    67,    67,    67,    69,    69,    69,
+      69,    70,    70,    70,    70,    71,    67,    67,    67,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    72,    73,
+      74,    74,    75,    75,    75,    75,    75,    76,    76,    76,
+      76,    76,    77,    77,    78,    78,    78,    78,    78,    78,
+      78,    78,    78,    78,    78,    78,    78,    78,    78,    78,
+      78,    78,    78,    79,    79,    80,    81
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -683,8 +695,8 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1,     1,     4,     1,     1,     1,     1,
        1,     2,     1,     2,     1,     2,     1,     3,     5,     2,
        2,     1,     2,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
-       1,     1
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     1,     3,     1,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -692,57 +704,59 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,    50,    52,    57,    56,    91,    74,    51,     0,     0,
+       0,    50,    52,    57,    56,    96,    74,    51,     0,     0,
       75,    76,    81,    80,    78,    79,    82,    83,    84,    85,
-      86,    87,     0,    77,    54,     0,     0,     0,     0,     0,
-       0,     0,     0,     3,     2,    53,     4,    59,    60,    58,
-       0,    11,     0,     9,     0,     0,     7,     8,     6,     0,
-       0,     0,    10,     1,     0,     0,     0,     0,     0,     0,
+      86,    87,    88,     0,     0,     0,    77,    54,     0,     0,
+       0,     0,     0,     0,     0,     0,     3,     2,    53,     4,
+      59,    60,    58,     0,    11,     0,     9,    91,    89,    92,
+      90,     0,     0,     7,     8,     6,     0,     0,     0,    10,
+       1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    13,    64,    62,     0,
-      61,    66,    71,     0,     0,     0,     0,     0,     5,    26,
-       0,    46,    47,    49,    48,    45,    44,    43,    38,    37,
-      40,    39,    42,    41,    36,    35,    29,    33,    34,    31,
-      32,    30,    90,    28,    17,    65,    69,    63,     0,    72,
-      88,     0,     0,     0,    70,    55,    12,    15,     0,    25,
-      27,    24,    18,     0,    19,     0,    67,     0,    73,     0,
-      23,    22,     0,    14,     0,    89,    16,    21,    20,    68
+       0,     0,     0,    13,    64,    62,     0,    61,    66,    71,
+       0,     0,     0,     0,     0,     5,    26,     0,    46,    47,
+      49,    48,    45,    44,    43,    38,    37,    40,    39,    42,
+      41,    36,    35,    29,    33,    34,    31,    32,    30,    95,
+      28,    17,    65,    69,    63,     0,    72,    93,     0,     0,
+       0,    70,    55,    12,    15,     0,    25,    27,    24,    18,
+       0,    19,     0,    67,     0,    73,     0,    23,    22,     0,
+      14,     0,    94,    16,    21,    20,    68
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    32,    33,    49,   114,   133,   134,    50,    35,   120,
-      37,    80,    81,    82,    38,   122,   113,    39
+      -1,    35,    36,    56,   121,   140,   141,    57,    38,   127,
+      40,    87,    88,    89,    41,   129,   120,    42
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -52
+#define YYPACT_NINF -59
 static const yytype_int16 yypact[] =
 {
-     145,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   182,   -51,
-     -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,   -52,
-     -52,   -52,   219,   -52,   -52,   -50,   -35,   219,   219,   219,
-     145,   219,    23,   -52,   482,   -52,   -52,   -52,    -5,   -52,
-     145,   -26,   219,   -26,   219,   219,   -26,   -26,   -26,   318,
-     -25,   -17,   -26,   -52,   219,   219,   219,   219,   219,   219,
-     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
-     219,   219,   219,   219,   219,    68,   -52,    -5,    73,    -4,
-     -52,    26,   -52,    29,   351,   384,   450,   219,   -52,   -52,
-     219,   532,   512,   482,   482,   551,   569,   586,   601,   601,
-     612,   612,   612,   612,   211,   211,   490,   -15,   -15,    54,
-      54,    54,   -52,   -52,    88,   -52,   -52,   -52,    53,   -52,
-     -52,    32,   -32,   265,   -52,    74,   -52,   -52,   219,   482,
-     -26,   219,   286,   -31,   -52,    93,   -52,   282,   -52,   417,
-     482,   219,   219,   -52,    43,   -52,   -52,   482,   482,   -52
+     147,   -59,   -59,   -59,   -59,   -59,   -59,   -59,   182,   -58,
+     -59,   -59,   -59,   -59,   -59,   -59,   -59,   -59,   -59,   -59,
+     -59,   -59,   -59,   217,    11,    16,   -59,   -59,   -54,   -53,
+     217,   217,   217,   147,   217,    22,   -59,   515,   -59,   -59,
+     -59,   -16,   -59,   147,   -25,   217,   -25,   -59,   -59,   -59,
+     -59,   217,   217,   -25,   -25,   -25,   336,   -24,   -21,   -25,
+     -59,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,    36,   -59,   -16,    -2,   278,   -59,   -11,   -59,
+      -1,   372,   408,   480,   217,   -59,   -59,   217,   591,   548,
+     515,   515,   610,   628,   645,   660,   660,    48,    48,    48,
+      48,    71,    71,   262,   139,   139,    35,    35,    35,   -59,
+     -59,    79,   -59,   -59,   -59,    20,   -59,   -59,    26,   -32,
+      -4,   -59,   252,   -59,   -59,   217,   515,   -25,   217,   301,
+     -13,   -59,    47,   -59,   599,   -59,   444,   515,   217,   217,
+     -59,    30,   -59,   -59,   515,   515,   -59
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
-     -52,   -52,   -52,     0,   -52,   -52,   -52,   -52,   -52,     3,
-     -52,   -29,   -52,    21,   -52,   -52,   -52,   -52
+     -59,   -59,   -59,     0,   -59,   -59,   -59,   -59,   -59,     3,
+     -59,   -30,   -59,     8,   -59,   -59,   -59,   -59
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -752,144 +766,156 @@ static const yytype_int8 yypgoto[] =
 #define YYTABLE_NINF -1
 static const yytype_uint8 yytable[] =
 {
-      34,   137,   142,    36,     6,    42,    44,   118,    41,    10,
+      37,   123,    45,    39,     6,   144,    51,    52,    44,    10,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    45,    43,    53,    23,   138,   143,    46,    47,    48,
-      76,    52,    89,    51,    77,    77,    72,    73,    74,    75,
-      90,    76,    84,    83,    85,    86,    78,    78,   115,   117,
-     121,    79,    79,   119,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   116,     1,     2,     3,
-       4,     5,   123,     7,     8,     9,   125,   129,   135,   136,
-     130,     1,     2,     3,     4,     5,   144,     7,     8,     9,
-     149,    22,   124,    24,     0,    25,    26,    74,    75,     0,
-      76,     0,    77,     0,   132,    22,     0,    24,     0,    25,
-      26,     0,     0,     0,    78,   130,     0,    27,   139,    79,
-      30,   140,    31,     0,     0,     0,     0,     0,    28,    29,
-     145,   147,   148,     0,    30,     0,    31,   131,     1,     2,
-       3,     4,     5,     6,     7,     8,     9,     0,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-       0,     0,    22,    23,    24,     0,    25,    26,     0,     0,
-       0,     0,     0,     0,    27,     1,     2,     3,     4,     5,
-       0,     7,     8,     9,     0,    28,    29,     0,     0,     0,
-       0,    30,     0,    31,     0,     0,     0,     0,     0,    22,
-       0,    24,     0,    25,    26,     0,     0,     0,     0,     0,
-       0,    27,     1,     2,     3,     4,     5,     0,     7,     8,
-       9,     0,    28,    29,     0,     0,     0,     0,    40,     0,
-      31,     0,     0,     0,     0,     0,    22,     0,    24,     0,
-      25,    26,     0,     0,     0,     0,     0,     0,    27,    69,
-      70,    71,    72,    73,    74,    75,     0,    76,     0,    28,
-      29,     0,     0,     6,     0,    30,     0,    31,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-       6,     0,     0,    23,     0,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,     0,     0,     0,
-      23,    54,    55,     0,     0,     0,    56,     0,     0,     0,
-       0,    57,   119,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,     0,    76,    54,    55,   141,     0,     0,    56,     0,
-       0,    87,     0,    57,     0,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,     0,    76,    88,    54,    55,     0,     0,
-       0,    56,     0,     0,     0,     0,    57,     0,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,     0,    76,   126,    54,
-      55,     0,     0,     0,    56,     0,     0,     0,     0,    57,
-       0,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,     0,
-      76,   127,    54,    55,     0,     0,     0,    56,     0,     0,
-       0,     0,    57,     0,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,     0,    76,   146,    54,    55,     0,     0,     0,
-      56,     0,     0,   128,     0,    57,     0,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,     0,    76,    54,    55,     0,
-       0,     0,    56,     0,     0,     0,     0,    57,     0,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    54,    76,    70,
-      71,    72,    73,    74,    75,     0,    76,     0,     0,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,     0,    76,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,     0,    76,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,     0,    76,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,     0,    76,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,     0,    76,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,     0,    76,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,     0,    76
+      21,    22,    60,    46,   149,    24,    25,    84,    26,   145,
+      53,    54,    55,    47,    59,    83,    58,    96,    49,    85,
+      97,    84,    48,   119,    86,    91,    90,    50,   150,   130,
+     151,    92,    93,    85,   122,   124,   128,   126,    86,   142,
+     132,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+     117,   118,     1,     2,     3,     4,     5,   143,     7,     8,
+       9,   156,    81,    82,   136,    83,   131,   137,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    23,    83,     0,
+       0,     0,    27,     0,    28,    29,     0,     0,     0,     0,
+       0,   139,    30,    76,    77,    78,    79,    80,    81,    82,
+       0,    83,   137,    31,    32,   146,     0,     0,   147,    33,
+       0,    34,   138,     0,     0,     0,     0,   152,   154,   155,
+       1,     2,     3,     4,     5,     6,     7,     8,     9,     0,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,     0,     0,    23,    24,    25,     0,    26,
+      27,     0,    28,    29,     0,     1,     2,     3,     4,     5,
+      30,     7,     8,     9,    79,    80,    81,    82,     0,    83,
+       0,    31,    32,     0,     0,     0,     0,    33,     0,    34,
+      23,     0,     0,     0,     0,    27,     0,    28,    29,     0,
+       1,     2,     3,     4,     5,    30,     7,     8,     9,     0,
+       0,     0,     0,     0,     0,     0,    31,    32,     0,     0,
+       0,     0,    43,     0,    34,    23,     0,     0,     0,     0,
+      27,     0,    28,    29,     0,     1,     2,     3,     4,     5,
+      30,     7,     8,     9,     0,     0,     0,     0,     0,     0,
+       0,    31,    32,     0,     0,     0,     0,    33,     0,    34,
+      23,     0,     0,     0,     0,    27,     6,    28,    29,   125,
+       0,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,     0,     0,     0,    24,    25,     0,
+      26,     0,    33,     0,    34,    77,    78,    79,    80,    81,
+      82,    84,    83,     0,     0,     0,     0,    61,    62,     0,
+       0,     0,     0,    85,     0,    63,     0,     0,    86,   126,
+      64,     0,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+       0,    83,    61,    62,   148,     0,     0,     0,     0,     0,
+      63,     0,     0,    94,     0,    64,     0,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,     0,    83,    95,    61,    62,
+       0,     0,     0,     0,     0,     0,    63,     0,     0,     0,
+       0,    64,     0,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,     0,    83,   133,    61,    62,     0,     0,     0,     0,
+       0,     0,    63,     0,     0,     0,     0,    64,     0,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,     0,    83,   134,
+      61,    62,     0,     0,     0,     0,     0,     0,    63,     0,
+       0,     0,     0,    64,     0,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,     0,    83,   153,    61,    62,     0,     0,
+       0,     0,     0,     0,    63,     0,     0,   135,     0,    64,
+       0,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,     0,
+      83,    61,    62,     0,     0,     0,     0,     0,     0,    63,
+       0,     0,     0,     0,    64,     0,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    82,    61,    83,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,     6,    83,     0,
+       0,     0,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,     0,     0,     0,    24,    25,
+       0,    26,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+       0,    83,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,     0,
+      83,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,     0,    83,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    82,     0,    83,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,     0,
+      83
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,    33,    33,     0,     8,    56,    56,    11,     8,    13,
+       0,     3,    60,     0,     8,    37,    60,    60,     8,    13,
       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    56,    22,     0,    28,    57,    57,    27,    28,    29,
-      56,    31,    57,    30,    39,    39,    51,    52,    53,    54,
-      57,    56,    42,    40,    44,    45,    51,    51,    77,    78,
-      79,    56,    56,    57,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,     7,     3,     3,     4,     5,
-       6,     7,    56,     9,    10,    11,    57,    87,    35,    57,
-      90,     3,     4,     5,     6,     7,     3,     9,    10,    11,
-      57,    27,    81,    29,    -1,    31,    32,    53,    54,    -1,
-      56,    -1,    39,    -1,   114,    27,    -1,    29,    -1,    31,
-      32,    -1,    -1,    -1,    51,   125,    -1,    39,   128,    56,
-      56,   131,    58,    -1,    -1,    -1,    -1,    -1,    50,    51,
-     137,   141,   142,    -1,    56,    -1,    58,    59,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    -1,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      -1,    -1,    27,    28,    29,    -1,    31,    32,    -1,    -1,
-      -1,    -1,    -1,    -1,    39,     3,     4,     5,     6,     7,
-      -1,     9,    10,    11,    -1,    50,    51,    -1,    -1,    -1,
-      -1,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,    27,
-      -1,    29,    -1,    31,    32,    -1,    -1,    -1,    -1,    -1,
-      -1,    39,     3,     4,     5,     6,     7,    -1,     9,    10,
-      11,    -1,    50,    51,    -1,    -1,    -1,    -1,    56,    -1,
-      58,    -1,    -1,    -1,    -1,    -1,    27,    -1,    29,    -1,
-      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    48,
-      49,    50,    51,    52,    53,    54,    -1,    56,    -1,    50,
-      51,    -1,    -1,     8,    -1,    56,    -1,    58,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-       8,    -1,    -1,    28,    -1,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    -1,    -1,    -1,
-      28,    25,    26,    -1,    -1,    -1,    30,    -1,    -1,    -1,
-      -1,    35,    57,    37,    38,    39,    40,    41,    42,    43,
+      24,    25,     0,    23,    37,    29,    30,    43,    32,    61,
+      30,    31,    32,    22,    34,    60,    33,    61,    22,    55,
+      61,    43,    31,     7,    60,    45,    43,    31,    61,    60,
+       3,    51,    52,    55,    84,    85,    86,    61,    60,    39,
+      61,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,     3,     4,     5,     6,     7,    61,     9,    10,
+      11,    61,    57,    58,    94,    60,    88,    97,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    28,    60,    -1,
+      -1,    -1,    33,    -1,    35,    36,    -1,    -1,    -1,    -1,
+      -1,   121,    43,    52,    53,    54,    55,    56,    57,    58,
+      -1,    60,   132,    54,    55,   135,    -1,    -1,   138,    60,
+      -1,    62,    63,    -1,    -1,    -1,    -1,   144,   148,   149,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    -1,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    -1,    -1,    28,    29,    30,    -1,    32,
+      33,    -1,    35,    36,    -1,     3,     4,     5,     6,     7,
+      43,     9,    10,    11,    55,    56,    57,    58,    -1,    60,
+      -1,    54,    55,    -1,    -1,    -1,    -1,    60,    -1,    62,
+      28,    -1,    -1,    -1,    -1,    33,    -1,    35,    36,    -1,
+       3,     4,     5,     6,     7,    43,     9,    10,    11,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
+      -1,    -1,    60,    -1,    62,    28,    -1,    -1,    -1,    -1,
+      33,    -1,    35,    36,    -1,     3,     4,     5,     6,     7,
+      43,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    54,    55,    -1,    -1,    -1,    -1,    60,    -1,    62,
+      28,    -1,    -1,    -1,    -1,    33,     8,    35,    36,    11,
+      -1,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    -1,    -1,    -1,    29,    30,    -1,
+      32,    -1,    60,    -1,    62,    53,    54,    55,    56,    57,
+      58,    43,    60,    -1,    -1,    -1,    -1,    26,    27,    -1,
+      -1,    -1,    -1,    55,    -1,    34,    -1,    -1,    60,    61,
+      39,    -1,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      -1,    60,    26,    27,    63,    -1,    -1,    -1,    -1,    -1,
+      34,    -1,    -1,    37,    -1,    39,    -1,    41,    42,    43,
       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    -1,    56,    25,    26,    59,    -1,    -1,    30,    -1,
-      -1,    33,    -1,    35,    -1,    37,    38,    39,    40,    41,
+      54,    55,    56,    57,    58,    -1,    60,    61,    26,    27,
+      -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,
+      -1,    39,    -1,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    -1,    60,    61,    26,    27,    -1,    -1,    -1,    -1,
+      -1,    -1,    34,    -1,    -1,    -1,    -1,    39,    -1,    41,
       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    -1,    56,    57,    25,    26,    -1,    -1,
-      -1,    30,    -1,    -1,    -1,    -1,    35,    -1,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    -1,    56,    57,    25,
-      26,    -1,    -1,    -1,    30,    -1,    -1,    -1,    -1,    35,
-      -1,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    -1,
-      56,    57,    25,    26,    -1,    -1,    -1,    30,    -1,    -1,
-      -1,    -1,    35,    -1,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    -1,    56,    57,    25,    26,    -1,    -1,    -1,
-      30,    -1,    -1,    33,    -1,    35,    -1,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    -1,    56,    25,    26,    -1,
-      -1,    -1,    30,    -1,    -1,    -1,    -1,    35,    -1,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    25,    56,    49,
-      50,    51,    52,    53,    54,    -1,    56,    -1,    -1,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    -1,    56,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    -1,    56,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    -1,    56,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    -1,    56,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    -1,    56,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    -1,    56,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    -1,    56
+      52,    53,    54,    55,    56,    57,    58,    -1,    60,    61,
+      26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,
+      -1,    -1,    -1,    39,    -1,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    -1,    60,    61,    26,    27,    -1,    -1,
+      -1,    -1,    -1,    -1,    34,    -1,    -1,    37,    -1,    39,
+      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
+      60,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    34,
+      -1,    -1,    -1,    -1,    39,    -1,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    26,    60,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,     8,    60,    -1,
+      -1,    -1,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    -1,    -1,    -1,    29,    30,
+      -1,    32,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      -1,    60,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
+      60,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,    -1,    60,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    -1,    60,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
+      60
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -898,19 +924,20 @@ static const yytype_uint8 yystos[] =
 {
        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    27,    28,    29,    31,    32,    39,    50,    51,
-      56,    58,    61,    62,    63,    68,    69,    70,    74,    77,
-      56,    63,    56,    63,    56,    56,    63,    63,    63,    63,
-      67,    69,    63,     0,    25,    26,    30,    35,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    56,    39,    51,    56,
-      71,    72,    73,    69,    63,    63,    63,    33,    57,    57,
-      57,    63,    63,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,     7,    76,    64,    71,     3,    71,    11,    57,
-      69,    71,    75,    56,    73,    57,    57,    57,    33,    63,
-      63,    59,    63,    65,    66,    35,    57,    33,    57,    63,
-      63,    59,    33,    57,     3,    69,    57,    63,    63,    57
+      23,    24,    25,    28,    29,    30,    32,    33,    35,    36,
+      43,    54,    55,    60,    62,    65,    66,    67,    72,    73,
+      74,    78,    81,    60,    67,    60,    67,    22,    31,    22,
+      31,    60,    60,    67,    67,    67,    67,    71,    73,    67,
+       0,    26,    27,    34,    39,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    60,    43,    55,    60,    75,    76,    77,
+      73,    67,    67,    67,    37,    61,    61,    61,    67,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    67,     7,
+      80,    68,    75,     3,    75,    11,    61,    73,    75,    79,
+      60,    77,    61,    61,    61,    37,    67,    67,    63,    67,
+      69,    70,    39,    61,    37,    61,    67,    67,    63,    37,
+      61,     3,    73,    61,    67,    67,    61
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -1724,7 +1751,7 @@ yyreduce:
         case 4:
 
 /* Line 1455 of yacc.c  */
-#line 208 "f-exp.y"
+#line 210 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_TYPE);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].tval));
 			  write_exp_elt_opcode (pstate, OP_TYPE); }
@@ -1733,70 +1760,70 @@ yyreduce:
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 214 "f-exp.y"
+#line 216 "f-exp.y"
     { }
     break;
 
   case 6:
 
 /* Line 1455 of yacc.c  */
-#line 219 "f-exp.y"
+#line 221 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_IND); }
     break;
 
   case 7:
 
 /* Line 1455 of yacc.c  */
-#line 223 "f-exp.y"
+#line 225 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_ADDR); }
     break;
 
   case 8:
 
 /* Line 1455 of yacc.c  */
-#line 227 "f-exp.y"
+#line 229 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_NEG); }
     break;
 
   case 9:
 
 /* Line 1455 of yacc.c  */
-#line 231 "f-exp.y"
+#line 233 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT); }
     break;
 
   case 10:
 
 /* Line 1455 of yacc.c  */
-#line 235 "f-exp.y"
+#line 237 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_COMPLEMENT); }
     break;
 
   case 11:
 
 /* Line 1455 of yacc.c  */
-#line 239 "f-exp.y"
+#line 241 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_SIZEOF); }
     break;
 
   case 12:
 
 /* Line 1455 of yacc.c  */
-#line 243 "f-exp.y"
+#line 245 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_FORTRAN_KIND); }
     break;
 
   case 13:
 
 /* Line 1455 of yacc.c  */
-#line 252 "f-exp.y"
+#line 254 "f-exp.y"
     { pstate->start_arglist (); }
     break;
 
   case 14:
 
 /* Line 1455 of yacc.c  */
-#line 254 "f-exp.y"
+#line 256 "f-exp.y"
     { write_exp_elt_opcode (pstate,
 						OP_F77_UNDETERMINED_ARGLIST);
 			  write_exp_elt_longcst (pstate,
@@ -1808,42 +1835,42 @@ yyreduce:
   case 15:
 
 /* Line 1455 of yacc.c  */
-#line 263 "f-exp.y"
+#line 265 "f-exp.y"
     { write_exp_elt_opcode (pstate, (yyvsp[(1) - (4)].opcode)); }
     break;
 
   case 16:
 
 /* Line 1455 of yacc.c  */
-#line 267 "f-exp.y"
+#line 269 "f-exp.y"
     { write_exp_elt_opcode (pstate, (yyvsp[(1) - (6)].opcode)); }
     break;
 
   case 18:
 
 /* Line 1455 of yacc.c  */
-#line 274 "f-exp.y"
+#line 276 "f-exp.y"
     { pstate->arglist_len = 1; }
     break;
 
   case 19:
 
 /* Line 1455 of yacc.c  */
-#line 278 "f-exp.y"
+#line 280 "f-exp.y"
     { pstate->arglist_len = 1; }
     break;
 
   case 20:
 
 /* Line 1455 of yacc.c  */
-#line 282 "f-exp.y"
+#line 284 "f-exp.y"
     { pstate->arglist_len++; }
     break;
 
   case 21:
 
 /* Line 1455 of yacc.c  */
-#line 288 "f-exp.y"
+#line 290 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE); 
 			  write_exp_elt_longcst (pstate, NONE_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1852,7 +1879,7 @@ yyreduce:
   case 22:
 
 /* Line 1455 of yacc.c  */
-#line 294 "f-exp.y"
+#line 296 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE);
 			  write_exp_elt_longcst (pstate, HIGH_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1861,7 +1888,7 @@ yyreduce:
   case 23:
 
 /* Line 1455 of yacc.c  */
-#line 300 "f-exp.y"
+#line 302 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE);
 			  write_exp_elt_longcst (pstate, LOW_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1870,7 +1897,7 @@ yyreduce:
   case 24:
 
 /* Line 1455 of yacc.c  */
-#line 306 "f-exp.y"
+#line 308 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_RANGE);
 			  write_exp_elt_longcst (pstate, BOTH_BOUND_DEFAULT);
 			  write_exp_elt_opcode (pstate, OP_RANGE); }
@@ -1879,14 +1906,14 @@ yyreduce:
   case 25:
 
 /* Line 1455 of yacc.c  */
-#line 312 "f-exp.y"
+#line 314 "f-exp.y"
     { }
     break;
 
   case 26:
 
 /* Line 1455 of yacc.c  */
-#line 316 "f-exp.y"
+#line 318 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_COMPLEX);
 			  write_exp_elt_type (pstate,
 					      parse_f_type (pstate)
@@ -1897,7 +1924,7 @@ yyreduce:
   case 27:
 
 /* Line 1455 of yacc.c  */
-#line 324 "f-exp.y"
+#line 326 "f-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_CAST);
 			  write_exp_elt_type (pstate, (yyvsp[(2) - (4)].tval));
 			  write_exp_elt_opcode (pstate, UNOP_CAST); }
@@ -1906,7 +1933,7 @@ yyreduce:
   case 28:
 
 /* Line 1455 of yacc.c  */
-#line 330 "f-exp.y"
+#line 332 "f-exp.y"
     { write_exp_elt_opcode (pstate, STRUCTOP_STRUCT);
                           write_exp_string (pstate, (yyvsp[(3) - (3)].sval));
                           write_exp_elt_opcode (pstate, STRUCTOP_STRUCT); }
@@ -1915,147 +1942,147 @@ yyreduce:
   case 29:
 
 /* Line 1455 of yacc.c  */
-#line 338 "f-exp.y"
+#line 340 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_REPEAT); }
     break;
 
   case 30:
 
 /* Line 1455 of yacc.c  */
-#line 342 "f-exp.y"
+#line 344 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EXP); }
     break;
 
   case 31:
 
 /* Line 1455 of yacc.c  */
-#line 346 "f-exp.y"
+#line 348 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_MUL); }
     break;
 
   case 32:
 
 /* Line 1455 of yacc.c  */
-#line 350 "f-exp.y"
+#line 352 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_DIV); }
     break;
 
   case 33:
 
 /* Line 1455 of yacc.c  */
-#line 354 "f-exp.y"
+#line 356 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ADD); }
     break;
 
   case 34:
 
 /* Line 1455 of yacc.c  */
-#line 358 "f-exp.y"
+#line 360 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_SUB); }
     break;
 
   case 35:
 
 /* Line 1455 of yacc.c  */
-#line 362 "f-exp.y"
+#line 364 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LSH); }
     break;
 
   case 36:
 
 /* Line 1455 of yacc.c  */
-#line 366 "f-exp.y"
+#line 368 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_RSH); }
     break;
 
   case 37:
 
 /* Line 1455 of yacc.c  */
-#line 370 "f-exp.y"
+#line 372 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_EQUAL); }
     break;
 
   case 38:
 
 /* Line 1455 of yacc.c  */
-#line 374 "f-exp.y"
+#line 376 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_NOTEQUAL); }
     break;
 
   case 39:
 
 /* Line 1455 of yacc.c  */
-#line 378 "f-exp.y"
+#line 380 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LEQ); }
     break;
 
   case 40:
 
 /* Line 1455 of yacc.c  */
-#line 382 "f-exp.y"
+#line 384 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GEQ); }
     break;
 
   case 41:
 
 /* Line 1455 of yacc.c  */
-#line 386 "f-exp.y"
+#line 388 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LESS); }
     break;
 
   case 42:
 
 /* Line 1455 of yacc.c  */
-#line 390 "f-exp.y"
+#line 392 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_GTR); }
     break;
 
   case 43:
 
 /* Line 1455 of yacc.c  */
-#line 394 "f-exp.y"
+#line 396 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_AND); }
     break;
 
   case 44:
 
 /* Line 1455 of yacc.c  */
-#line 398 "f-exp.y"
+#line 400 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_XOR); }
     break;
 
   case 45:
 
 /* Line 1455 of yacc.c  */
-#line 402 "f-exp.y"
+#line 404 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_BITWISE_IOR); }
     break;
 
   case 46:
 
 /* Line 1455 of yacc.c  */
-#line 406 "f-exp.y"
+#line 408 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_AND); }
     break;
 
   case 47:
 
 /* Line 1455 of yacc.c  */
-#line 411 "f-exp.y"
+#line 413 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_LOGICAL_OR); }
     break;
 
   case 48:
 
 /* Line 1455 of yacc.c  */
-#line 415 "f-exp.y"
+#line 417 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN); }
     break;
 
   case 49:
 
 /* Line 1455 of yacc.c  */
-#line 419 "f-exp.y"
+#line 421 "f-exp.y"
     { write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY);
 			  write_exp_elt_opcode (pstate, (yyvsp[(2) - (3)].opcode));
 			  write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); }
@@ -2064,7 +2091,7 @@ yyreduce:
   case 50:
 
 /* Line 1455 of yacc.c  */
-#line 425 "f-exp.y"
+#line 427 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val).type);
 			  write_exp_elt_longcst (pstate, (LONGEST) ((yyvsp[(1) - (1)].typed_val).val));
@@ -2074,7 +2101,7 @@ yyreduce:
   case 51:
 
 /* Line 1455 of yacc.c  */
-#line 432 "f-exp.y"
+#line 434 "f-exp.y"
     { YYSTYPE val;
 			  parse_number (pstate, (yyvsp[(1) - (1)].ssym).stoken.ptr,
 					(yyvsp[(1) - (1)].ssym).stoken.length, 0, &val);
@@ -2088,7 +2115,7 @@ yyreduce:
   case 52:
 
 /* Line 1455 of yacc.c  */
-#line 443 "f-exp.y"
+#line 445 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_FLOAT);
 			  write_exp_elt_type (pstate, (yyvsp[(1) - (1)].typed_val_float).type);
 			  write_exp_elt_floatcst (pstate, (yyvsp[(1) - (1)].typed_val_float).val);
@@ -2098,7 +2125,7 @@ yyreduce:
   case 55:
 
 /* Line 1455 of yacc.c  */
-#line 456 "f-exp.y"
+#line 458 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate,
 					      parse_f_type (pstate)
@@ -2112,7 +2139,7 @@ yyreduce:
   case 56:
 
 /* Line 1455 of yacc.c  */
-#line 467 "f-exp.y"
+#line 469 "f-exp.y"
     { write_exp_elt_opcode (pstate, OP_BOOL);
 			  write_exp_elt_longcst (pstate, (LONGEST) (yyvsp[(1) - (1)].lval));
 			  write_exp_elt_opcode (pstate, OP_BOOL);
@@ -2122,7 +2149,7 @@ yyreduce:
   case 57:
 
 /* Line 1455 of yacc.c  */
-#line 474 "f-exp.y"
+#line 476 "f-exp.y"
     {
 			  write_exp_elt_opcode (pstate, OP_STRING);
 			  write_exp_string (pstate, (yyvsp[(1) - (1)].sval));
@@ -2133,7 +2160,7 @@ yyreduce:
   case 58:
 
 /* Line 1455 of yacc.c  */
-#line 482 "f-exp.y"
+#line 484 "f-exp.y"
     { struct block_symbol sym = (yyvsp[(1) - (1)].ssym).sym;
 
 			  if (sym.symbol)
@@ -2167,7 +2194,7 @@ yyreduce:
   case 61:
 
 /* Line 1455 of yacc.c  */
-#line 518 "f-exp.y"
+#line 520 "f-exp.y"
     {
 		  /* This is where the interesting stuff happens.  */
 		  int done = 0;
@@ -2221,209 +2248,244 @@ yyreduce:
   case 62:
 
 /* Line 1455 of yacc.c  */
-#line 569 "f-exp.y"
+#line 571 "f-exp.y"
     { type_stack->push (tp_pointer); (yyval.voidval) = 0; }
     break;
 
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 571 "f-exp.y"
+#line 573 "f-exp.y"
     { type_stack->push (tp_pointer); (yyval.voidval) = (yyvsp[(2) - (2)].voidval); }
     break;
 
   case 64:
 
 /* Line 1455 of yacc.c  */
-#line 573 "f-exp.y"
+#line 575 "f-exp.y"
     { type_stack->push (tp_reference); (yyval.voidval) = 0; }
     break;
 
   case 65:
 
 /* Line 1455 of yacc.c  */
-#line 575 "f-exp.y"
+#line 577 "f-exp.y"
     { type_stack->push (tp_reference); (yyval.voidval) = (yyvsp[(2) - (2)].voidval); }
     break;
 
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 580 "f-exp.y"
+#line 582 "f-exp.y"
     { (yyval.voidval) = (yyvsp[(2) - (3)].voidval); }
     break;
 
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 582 "f-exp.y"
+#line 584 "f-exp.y"
     { push_kind_type ((yyvsp[(4) - (5)].typed_val).val, (yyvsp[(4) - (5)].typed_val).type); }
     break;
 
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 584 "f-exp.y"
+#line 586 "f-exp.y"
     { push_kind_type ((yyvsp[(2) - (2)].typed_val).val, (yyvsp[(2) - (2)].typed_val).type); }
     break;
 
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 586 "f-exp.y"
+#line 588 "f-exp.y"
     { type_stack->push (tp_function); }
     break;
 
   case 71:
 
 /* Line 1455 of yacc.c  */
-#line 588 "f-exp.y"
+#line 590 "f-exp.y"
     { type_stack->push (tp_function); }
     break;
 
   case 72:
 
 /* Line 1455 of yacc.c  */
-#line 592 "f-exp.y"
+#line 594 "f-exp.y"
     { (yyval.voidval) = 0; }
     break;
 
   case 73:
 
 /* Line 1455 of yacc.c  */
-#line 594 "f-exp.y"
+#line 596 "f-exp.y"
     { xfree ((yyvsp[(2) - (3)].tvec)); (yyval.voidval) = 0; }
     break;
 
   case 74:
 
 /* Line 1455 of yacc.c  */
-#line 599 "f-exp.y"
+#line 601 "f-exp.y"
     { (yyval.tval) = (yyvsp[(1) - (1)].tsym).type; }
     break;
 
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 601 "f-exp.y"
+#line 603 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_integer; }
     break;
 
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 603 "f-exp.y"
+#line 605 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_integer_s2; }
     break;
 
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 605 "f-exp.y"
+#line 607 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_character; }
     break;
 
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 607 "f-exp.y"
+#line 609 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical_s8; }
     break;
 
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 609 "f-exp.y"
+#line 611 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical; }
     break;
 
   case 80:
 
 /* Line 1455 of yacc.c  */
-#line 611 "f-exp.y"
+#line 613 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical_s2; }
     break;
 
   case 81:
 
 /* Line 1455 of yacc.c  */
-#line 613 "f-exp.y"
+#line 615 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_logical_s1; }
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 615 "f-exp.y"
+#line 617 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_real; }
     break;
 
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 617 "f-exp.y"
+#line 619 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_real_s8; }
     break;
 
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 619 "f-exp.y"
+#line 621 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_real_s16; }
     break;
 
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 621 "f-exp.y"
+#line 623 "f-exp.y"
     { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s8; }
     break;
 
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 623 "f-exp.y"
-    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s16; }
+#line 625 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s8; }
     break;
 
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 625 "f-exp.y"
-    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s32; }
+#line 627 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s16; }
     break;
 
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 630 "f-exp.y"
+#line 629 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s32; }
+    break;
+
+  case 89:
+
+/* Line 1455 of yacc.c  */
+#line 631 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_real;}
+    break;
+
+  case 90:
+
+/* Line 1455 of yacc.c  */
+#line 633 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_real_s8;}
+    break;
+
+  case 91:
+
+/* Line 1455 of yacc.c  */
+#line 635 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s8;}
+    break;
+
+  case 92:
+
+/* Line 1455 of yacc.c  */
+#line 637 "f-exp.y"
+    { (yyval.tval) = parse_f_type (pstate)->builtin_complex_s16;}
+    break;
+
+  case 93:
+
+/* Line 1455 of yacc.c  */
+#line 642 "f-exp.y"
     { (yyval.tvec) = (struct type **) xmalloc (sizeof (struct type *) * 2);
 		  (yyval.ivec)[0] = 1;	/* Number of types in vector */
 		  (yyval.tvec)[1] = (yyvsp[(1) - (1)].tval);
 		}
     break;
 
-  case 89:
+  case 94:
 
 /* Line 1455 of yacc.c  */
-#line 635 "f-exp.y"
+#line 647 "f-exp.y"
     { int len = sizeof (struct type *) * (++((yyvsp[(1) - (3)].ivec)[0]) + 1);
 		  (yyval.tvec) = (struct type **) xrealloc ((char *) (yyvsp[(1) - (3)].tvec), len);
 		  (yyval.tvec)[(yyval.ivec)[0]] = (yyvsp[(3) - (3)].tval);
 		}
     break;
 
-  case 90:
+  case 95:
 
 /* Line 1455 of yacc.c  */
-#line 642 "f-exp.y"
+#line 654 "f-exp.y"
     {  (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
 
 
 /* Line 1455 of yacc.c  */
-#line 2428 "f-exp.c.tmp"
+#line 2490 "f-exp.c.tmp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2635,7 +2697,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 655 "f-exp.y"
+#line 667 "f-exp.y"
 
 
 /* Take care of parsing a number (anything that starts with a digit).
@@ -2940,10 +3002,13 @@ static const struct token f77_keywords[]
   { "integer", INT_KEYWORD, BINOP_END, true },
   { "logical", LOGICAL_KEYWORD, BINOP_END, true },
   { "real_16", REAL_S16_KEYWORD, BINOP_END, true },
-  { "complex", COMPLEX_S8_KEYWORD, BINOP_END, true },
+  { "complex", COMPLEX_KEYWORD, BINOP_END, true },
   { "sizeof", SIZEOF, BINOP_END, true },
   { "real_8", REAL_S8_KEYWORD, BINOP_END, true },
   { "real", REAL_KEYWORD, BINOP_END, true },
+  { "single", SINGLE, BINOP_END, true },
+  { "double", DOUBLE, BINOP_END, true },
+  { "precision", PRECISION, BINOP_END, true },
   /* The following correspond to actual functions in Fortran and are case
      insensitive.  */
   { "kind", KIND, BINOP_END, false },
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/f-exp.y ./gdb/f-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/f-exp.y	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/f-exp.y	2019-12-05 01:49:57.000000000 +0000
@@ -167,8 +167,10 @@ static int parse_number (struct parser_s
 %token INT_KEYWORD INT_S2_KEYWORD LOGICAL_S1_KEYWORD LOGICAL_S2_KEYWORD 
 %token LOGICAL_S8_KEYWORD
 %token LOGICAL_KEYWORD REAL_KEYWORD REAL_S8_KEYWORD REAL_S16_KEYWORD 
+%token COMPLEX_KEYWORD
 %token COMPLEX_S8_KEYWORD COMPLEX_S16_KEYWORD COMPLEX_S32_KEYWORD 
 %token BOOL_AND BOOL_OR BOOL_NOT   
+%token SINGLE DOUBLE PRECISION
 %token <lval> CHARACTER 
 
 %token <voidval> DOLLAR_VARIABLE
@@ -617,12 +619,22 @@ typebase  /* Implements (approximately):
 			{ $$ = parse_f_type (pstate)->builtin_real_s8; }
 	|	REAL_S16_KEYWORD
 			{ $$ = parse_f_type (pstate)->builtin_real_s16; }
+	|	COMPLEX_KEYWORD
+			{ $$ = parse_f_type (pstate)->builtin_complex_s8; }
 	|	COMPLEX_S8_KEYWORD
 			{ $$ = parse_f_type (pstate)->builtin_complex_s8; }
 	|	COMPLEX_S16_KEYWORD 
 			{ $$ = parse_f_type (pstate)->builtin_complex_s16; }
 	|	COMPLEX_S32_KEYWORD 
 			{ $$ = parse_f_type (pstate)->builtin_complex_s32; }
+	|	SINGLE PRECISION
+			{ $$ = parse_f_type (pstate)->builtin_real;}
+	|	DOUBLE PRECISION
+			{ $$ = parse_f_type (pstate)->builtin_real_s8;}
+	|	SINGLE COMPLEX_KEYWORD
+			{ $$ = parse_f_type (pstate)->builtin_complex_s8;}
+	|	DOUBLE COMPLEX_KEYWORD
+			{ $$ = parse_f_type (pstate)->builtin_complex_s16;}
 	;
 
 nonempty_typelist
@@ -956,10 +968,13 @@ static const struct token f77_keywords[]
   { "integer", INT_KEYWORD, BINOP_END, true },
   { "logical", LOGICAL_KEYWORD, BINOP_END, true },
   { "real_16", REAL_S16_KEYWORD, BINOP_END, true },
-  { "complex", COMPLEX_S8_KEYWORD, BINOP_END, true },
+  { "complex", COMPLEX_KEYWORD, BINOP_END, true },
   { "sizeof", SIZEOF, BINOP_END, true },
   { "real_8", REAL_S8_KEYWORD, BINOP_END, true },
   { "real", REAL_KEYWORD, BINOP_END, true },
+  { "single", SINGLE, BINOP_END, true },
+  { "double", DOUBLE, BINOP_END, true },
+  { "precision", PRECISION, BINOP_END, true },
   /* The following correspond to actual functions in Fortran and are case
      insensitive.  */
   { "kind", KIND, BINOP_END, false },
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbarch.c ./gdb/gdbarch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbarch.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/gdbarch.c	2019-12-05 01:49:57.000000000 +0000
@@ -172,7 +172,6 @@ struct gdbarch
 
      */
 
-  int bits_big_endian;
   int short_bit;
   int int_bit;
   int long_bit;
@@ -389,7 +388,6 @@ gdbarch_alloc (const struct gdbarch_info
   gdbarch->target_desc = info->target_desc;
 
   /* Force the explicit initialization of these.  */
-  gdbarch->bits_big_endian = (gdbarch->byte_order == BFD_ENDIAN_BIG);
   gdbarch->short_bit = 2*TARGET_CHAR_BIT;
   gdbarch->int_bit = 4*TARGET_CHAR_BIT;
   gdbarch->long_bit = 4*TARGET_CHAR_BIT;
@@ -528,7 +526,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
   if (gdbarch->bfd_arch_info == NULL)
     log.puts ("\n\tbfd_arch_info");
   /* Check those that need to be defined for the given multi-arch level.  */
-  /* Skip verify of bits_big_endian, invalid_p == 0 */
   /* Skip verify of short_bit, invalid_p == 0 */
   /* Skip verify of int_bit, invalid_p == 0 */
   /* Skip verify of long_bit, invalid_p == 0 */
@@ -817,9 +814,6 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: bfd_arch_info = %s\n",
                       gdbarch_bfd_arch_info (gdbarch)->printable_name);
   fprintf_unfiltered (file,
-                      "gdbarch_dump: bits_big_endian = %s\n",
-                      plongest (gdbarch->bits_big_endian));
-  fprintf_unfiltered (file,
                       "gdbarch_dump: breakpoint_from_pc = <%s>\n",
                       host_address_to_string (gdbarch->breakpoint_from_pc));
   fprintf_unfiltered (file,
@@ -1565,23 +1559,6 @@ gdbarch_target_desc (struct gdbarch *gdb
 }
 
 int
-gdbarch_bits_big_endian (struct gdbarch *gdbarch)
-{
-  gdb_assert (gdbarch != NULL);
-  /* Skip verify of bits_big_endian, invalid_p == 0 */
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_bits_big_endian called\n");
-  return gdbarch->bits_big_endian;
-}
-
-void
-set_gdbarch_bits_big_endian (struct gdbarch *gdbarch,
-                             int bits_big_endian)
-{
-  gdbarch->bits_big_endian = bits_big_endian;
-}
-
-int
 gdbarch_short_bit (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbarch.h ./gdb/gdbarch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbarch.h	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/gdbarch.h	2019-12-05 01:49:57.000000000 +0000
@@ -146,12 +146,6 @@ extern const struct target_desc * gdbarc
 
 /* The following are initialized by the target dependent code.  */
 
-/* The bit byte-order has to do just with numbering of bits in debugging symbols
-   and such.  Conceptually, it's quite separate from byte/word byte order. */
-
-extern int gdbarch_bits_big_endian (struct gdbarch *gdbarch);
-extern void set_gdbarch_bits_big_endian (struct gdbarch *gdbarch, int bits_big_endian);
-
 /* Number of bits in a short or unsigned short for the target machine. */
 
 extern int gdbarch_short_bit (struct gdbarch *gdbarch);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbarch.sh ./gdb/gdbarch.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbarch.sh	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/gdbarch.sh	2019-12-05 01:49:57.000000000 +0000
@@ -347,10 +347,6 @@ i;enum gdb_osabi;osabi;;;GDB_OSABI_UNKNO
 #
 i;const struct target_desc *;target_desc;;;;;;;host_address_to_string (gdbarch->target_desc)
 
-# The bit byte-order has to do just with numbering of bits in debugging symbols
-# and such.  Conceptually, it's quite separate from byte/word byte order.
-v;int;bits_big_endian;;;1;(gdbarch->byte_order == BFD_ENDIAN_BIG);;0
-
 # Number of bits in a short or unsigned short for the target machine.
 v;int;short_bit;;;8 * sizeof (short);2*TARGET_CHAR_BIT;;0
 # Number of bits in an int or unsigned int for the target machine.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbsupport/filtered-iterator.h ./gdb/gdbsupport/filtered-iterator.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbsupport/filtered-iterator.h	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/gdbsupport/filtered-iterator.h	2019-12-05 01:49:57.000000000 +0000
@@ -64,10 +64,10 @@ public:
   }
 
   bool operator== (const self_type &other) const
-  { return *m_it == *other.m_it; }
+  { return m_it == other.m_it; }
 
   bool operator!= (const self_type &other) const
-  { return *m_it != *other.m_it; }
+  { return m_it != other.m_it; }
 
 private:
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbtypes.c ./gdb/gdbtypes.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbtypes.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/gdbtypes.c	2019-12-05 01:49:57.000000000 +0000
@@ -949,6 +949,9 @@ create_range_type (struct type *result_t
   if (high_bound->kind == PROP_CONST && high_bound->data.const_val < 0)
     TYPE_UNSIGNED (result_type) = 0;
 
+  TYPE_ENDIANITY_NOT_DEFAULT (result_type)
+    = TYPE_ENDIANITY_NOT_DEFAULT (index_type);
+
   return result_type;
 }
 
@@ -2976,15 +2979,22 @@ init_boolean_type (struct objfile *objfi
 /* Allocate a TYPE_CODE_FLT type structure associated with OBJFILE.
    BIT is the type size in bits; if BIT equals -1, the size is
    determined by the floatformat.  NAME is the type name.  Set the
-   TYPE_FLOATFORMAT from FLOATFORMATS.  */
+   TYPE_FLOATFORMAT from FLOATFORMATS.  BYTE_ORDER is the byte order
+   to use.  If it is BFD_ENDIAN_UNKNOWN (the default), then the byte
+   order of the objfile's architecture is used.  */
 
 struct type *
 init_float_type (struct objfile *objfile,
 		 int bit, const char *name,
-		 const struct floatformat **floatformats)
+		 const struct floatformat **floatformats,
+		 enum bfd_endian byte_order)
 {
-  struct gdbarch *gdbarch = get_objfile_arch (objfile);
-  const struct floatformat *fmt = floatformats[gdbarch_byte_order (gdbarch)];
+  if (byte_order == BFD_ENDIAN_UNKNOWN)
+    {
+      struct gdbarch *gdbarch = get_objfile_arch (objfile);
+      byte_order = gdbarch_byte_order (gdbarch);
+    }
+  const struct floatformat *fmt = floatformats[byte_order];
   struct type *t;
 
   bit = verify_floatformat (bit, fmt);
@@ -3416,6 +3426,26 @@ is_unique_ancestor (struct type *base, s
 				    value_address (val), val) == 1;
 }
 
+/* See gdbtypes.h.  */
+
+enum bfd_endian
+type_byte_order (const struct type *type)
+{
+  bfd_endian byteorder = gdbarch_byte_order (get_type_arch (type));
+  if (TYPE_ENDIANITY_NOT_DEFAULT (type))
+    {
+      if (byteorder == BFD_ENDIAN_BIG)
+        return BFD_ENDIAN_LITTLE;
+      else
+	{
+	  gdb_assert (byteorder == BFD_ENDIAN_LITTLE);
+	  return BFD_ENDIAN_BIG;
+	}
+    }
+
+  return byteorder;
+}
+
 
 /* Overload resolution.  */
 
@@ -5694,21 +5724,3 @@ _initialize_gdbtypes (void)
 			   show_strict_type_checking,
 			   &setchecklist, &showchecklist);
 }
-
-/* See gdbtypes.h.  */
-enum bfd_endian
-type_byte_order (const struct type *type)
-{
-  bfd_endian byteorder = gdbarch_byte_order (get_type_arch (type));
-  if (TYPE_ENDIANITY_NOT_DEFAULT (type))
-    {
-      if (byteorder == BFD_ENDIAN_BIG)
-        return BFD_ENDIAN_LITTLE;
-      else if (byteorder == BFD_ENDIAN_LITTLE)
-        return BFD_ENDIAN_BIG;
-      else
-        return BFD_ENDIAN_UNKNOWN;
-    }
-
-  return byteorder;
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbtypes.h ./gdb/gdbtypes.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/gdbtypes.h	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/gdbtypes.h	2019-12-05 01:49:57.000000000 +0000
@@ -552,10 +552,9 @@ union type_owner
 union field_location
 {
   /* * Position of this field, counting in bits from start of
-     containing structure.  For gdbarch_bits_big_endian=1
-     targets, it is the bit offset to the MSB.  For
-     gdbarch_bits_big_endian=0 targets, it is the bit offset to
-     the LSB.  */
+     containing structure.  For big-endian targets, it is the bit
+     offset to the MSB.  For little-endian targets, it is the bit
+     offset to the LSB.  */
 
   LONGEST bitpos;
 
@@ -1821,7 +1820,8 @@ extern struct type *init_character_type 
 extern struct type *init_boolean_type (struct objfile *, int, int,
 				       const char *);
 extern struct type *init_float_type (struct objfile *, int, const char *,
-				     const struct floatformat **);
+				     const struct floatformat **,
+				     enum bfd_endian = BFD_ENDIAN_UNKNOWN);
 extern struct type *init_decfloat_type (struct objfile *, int, const char *);
 extern struct type *init_complex_type (struct objfile *, const char *,
 				       struct type *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/go-valprint.c ./gdb/go-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/go-valprint.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/go-valprint.c	2019-12-05 01:49:57.000000000 +0000
@@ -29,6 +29,7 @@
 #include "go-lang.h"
 #include "c-lang.h"
 #include "valprint.h"
+#include "cli/cli-style.h"
 
 /* Print a Go string.
 
@@ -71,9 +72,9 @@ print_go_string (struct type *type,
 
   if (length < 0)
     {
-      fputs_filtered (_("<invalid length: "), stream);
-      fputs_filtered (plongest (addr), stream);
-      fputs_filtered (">", stream);
+      printf_filtered (_("<invalid length: %ps>"),
+		       styled_string (metadata_style.style (),
+				      plongest (addr)));
       return;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/Makefile.in	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/Makefile.in	2019-12-05 01:49:56.000000000 +0000
@@ -422,6 +422,7 @@ SUBDIR_UNITTESTS_SRCS = \
 	unittests/common-utils-selftests.c \
 	unittests/copy_bitwise-selftests.c \
 	unittests/environ-selftests.c \
+	unittests/filtered_iterator-selftests.c \
 	unittests/format_pieces-selftests.c \
 	unittests/function-view-selftests.c \
 	unittests/help-doc-selftests.c \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/mi/mi-cmds.c ./gdb/mi/mi-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/mi/mi-cmds.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/mi/mi-cmds.c	2019-12-05 01:49:57.000000000 +0000
@@ -155,6 +155,10 @@ static struct mi_cmd mi_cmds[] =
   DEF_MI_CMD_MI ("symbol-info-variables", mi_cmd_symbol_info_variables),
   DEF_MI_CMD_MI ("symbol-info-types", mi_cmd_symbol_info_types),
   DEF_MI_CMD_MI ("symbol-info-modules", mi_cmd_symbol_info_modules),
+  DEF_MI_CMD_MI ("symbol-info-module-functions",
+		 mi_cmd_symbol_info_module_functions),
+  DEF_MI_CMD_MI ("symbol-info-module-variables",
+		 mi_cmd_symbol_info_module_variables),
   DEF_MI_CMD_CLI ("target-attach", "attach", 1),
   DEF_MI_CMD_MI ("target-detach", mi_cmd_target_detach),
   DEF_MI_CMD_CLI ("target-disconnect", "disconnect", 0),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/mi/mi-cmds.h ./gdb/mi/mi-cmds.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/mi/mi-cmds.h	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/mi/mi-cmds.h	2019-12-05 01:49:57.000000000 +0000
@@ -95,6 +95,8 @@ extern mi_cmd_argv_ftype mi_cmd_stack_li
 extern mi_cmd_argv_ftype mi_cmd_stack_select_frame;
 extern mi_cmd_argv_ftype mi_cmd_symbol_list_lines;
 extern mi_cmd_argv_ftype mi_cmd_symbol_info_functions;
+extern mi_cmd_argv_ftype mi_cmd_symbol_info_module_functions;
+extern mi_cmd_argv_ftype mi_cmd_symbol_info_module_variables;
 extern mi_cmd_argv_ftype mi_cmd_symbol_info_modules;
 extern mi_cmd_argv_ftype mi_cmd_symbol_info_types;
 extern mi_cmd_argv_ftype mi_cmd_symbol_info_variables;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/mi/mi-symbol-cmds.c ./gdb/mi/mi-symbol-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/mi/mi-symbol-cmds.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/mi/mi-symbol-cmds.c	2019-12-05 01:49:57.000000000 +0000
@@ -111,11 +111,13 @@ output_nondebug_symbol (ui_out *uiout,
 
 static void
 mi_symbol_info (enum search_domain kind, const char *name_regexp,
-		const char *type_regexp, bool exclude_minsyms)
+		const char *type_regexp, bool exclude_minsyms,
+		size_t max_results)
 {
   global_symbol_searcher sym_search (kind, name_regexp);
   sym_search.set_symbol_type_regexp (type_regexp);
   sym_search.set_exclude_minsyms (exclude_minsyms);
+  sym_search.set_max_search_results (max_results);
   std::vector<symbol_search> symbols = sym_search.search ();
   ui_out *uiout = current_uiout;
   int i = 0;
@@ -166,25 +168,42 @@ mi_symbol_info (enum search_domain kind,
     }
 }
 
+/* Helper to parse the option text from an -max-results argument and return
+   the parsed value.  If the text can't be parsed then an error is thrown.  */
+
+static size_t
+parse_max_results_option (char *arg)
+{
+  char *ptr = arg;
+  long long val = strtoll (arg, &ptr, 10);
+  if (arg == ptr || *ptr != '\0' || val > SIZE_MAX || val < 0)
+    error (_("invalid value for --max-results argument"));
+  size_t max_results = (size_t) val;
+
+  return max_results;
+}
+
 /* Helper for mi_cmd_symbol_info_{functions,variables} - depending on KIND.
    Processes command line options from ARGV and ARGC.  */
 
 static void
 mi_info_functions_or_variables (enum search_domain kind, char **argv, int argc)
 {
+  size_t max_results = SIZE_MAX;
   const char *regexp = nullptr;
   const char *t_regexp = nullptr;
   bool exclude_minsyms = true;
 
   enum opt
     {
-     INCLUDE_NONDEBUG_OPT, TYPE_REGEXP_OPT, NAME_REGEXP_OPT
+     INCLUDE_NONDEBUG_OPT, TYPE_REGEXP_OPT, NAME_REGEXP_OPT, MAX_RESULTS_OPT
     };
   static const struct mi_opt opts[] =
   {
     {"-include-nondebug" , INCLUDE_NONDEBUG_OPT, 0},
     {"-type", TYPE_REGEXP_OPT, 1},
     {"-name", NAME_REGEXP_OPT, 1},
+    {"-max-results", MAX_RESULTS_OPT, 1},
     { 0, 0, 0 }
   };
 
@@ -210,10 +229,150 @@ mi_info_functions_or_variables (enum sea
 	case NAME_REGEXP_OPT:
 	  regexp = oarg;
 	  break;
+	case MAX_RESULTS_OPT:
+	  max_results = parse_max_results_option (oarg);
+	  break;
 	}
     }
 
-  mi_symbol_info (kind, regexp, t_regexp, exclude_minsyms);
+  mi_symbol_info (kind, regexp, t_regexp, exclude_minsyms, max_results);
+}
+
+/* Type for an iterator over a vector of module_symbol_search results.  */
+typedef std::vector<module_symbol_search>::const_iterator
+	module_symbol_search_iterator;
+
+/* Helper for mi_info_module_functions_or_variables.  Display the results
+   from ITER up to END or until we find a symbol that is in a different
+   module, or in a different symtab than the first symbol we print.  Update
+   and return the new value for ITER.  */
+static module_symbol_search_iterator
+output_module_symbols_in_single_module_and_file
+	(struct ui_out *uiout, module_symbol_search_iterator iter,
+	 const module_symbol_search_iterator end, enum search_domain kind)
+{
+  /* The symbol for the module in which the first result resides.  */
+  const symbol *first_module_symbol = iter->first.symbol;
+
+  /* The symbol for the first result, and the symtab in which it resides.  */
+  const symbol *first_result_symbol = iter->second.symbol;
+  symtab *first_symbtab = symbol_symtab (first_result_symbol);
+
+  /* Formatted output.  */
+  ui_out_emit_tuple current_file (uiout, nullptr);
+  uiout->field_string ("filename",
+		       symtab_to_filename_for_display (first_symbtab));
+  uiout->field_string ("fullname", symtab_to_fullname (first_symbtab));
+  ui_out_emit_list item_list (uiout, "symbols");
+
+  /* Repeatedly output result symbols until either we run out of symbols,
+     we change module, or we change symtab.  */
+  for (; (iter != end
+	  && first_module_symbol == iter->first.symbol
+	  && first_symbtab == symbol_symtab (iter->second.symbol));
+       ++iter)
+    output_debug_symbol (uiout, kind, iter->second.symbol,
+			 iter->second.block);
+
+  return iter;
+}
+
+/* Helper for mi_info_module_functions_or_variables.  Display the results
+   from ITER up to END or until we find a symbol that is in a different
+   module than the first symbol we print.  Update and return the new value
+   for ITER.  */
+static module_symbol_search_iterator
+output_module_symbols_in_single_module
+	(struct ui_out *uiout, module_symbol_search_iterator iter,
+	 const module_symbol_search_iterator end, enum search_domain kind)
+{
+  gdb_assert (iter->first.symbol != nullptr);
+  gdb_assert (iter->second.symbol != nullptr);
+
+  /* The symbol for the module in which the first result resides.  */
+  const symbol *first_module_symbol = iter->first.symbol;
+
+  /* Create output formatting.  */
+  ui_out_emit_tuple module_tuple (uiout, nullptr);
+  uiout->field_string ("module", first_module_symbol->print_name ());
+  ui_out_emit_list files_list (uiout, "files");
+
+  /* The results are sorted so that symbols within the same file are next
+     to each other in the list.  Calling the output function once will
+     print all results within a single file.  We keep calling the output
+     function until we change module.  */
+  while (iter != end && first_module_symbol == iter->first.symbol)
+    iter = output_module_symbols_in_single_module_and_file (uiout, iter,
+							    end, kind);
+  return iter;
+}
+
+/* Core of -symbol-info-module-functions and -symbol-info-module-variables.
+   KIND indicates what we are searching for, and ARGV and ARGC are the
+   command line options passed to the MI command.  */
+
+static void
+mi_info_module_functions_or_variables (enum search_domain kind,
+					char **argv, int argc)
+{
+  const char *module_regexp = nullptr;
+  const char *regexp = nullptr;
+  const char *type_regexp = nullptr;
+
+  /* Process the command line options.  */
+
+  enum opt
+    {
+     MODULE_REGEXP_OPT, TYPE_REGEXP_OPT, NAME_REGEXP_OPT
+    };
+  static const struct mi_opt opts[] =
+  {
+    {"-module", MODULE_REGEXP_OPT, 1},
+    {"-type", TYPE_REGEXP_OPT, 1},
+    {"-name", NAME_REGEXP_OPT, 1},
+    { 0, 0, 0 }
+  };
+
+  int oind = 0;
+  char *oarg = nullptr;
+
+  while (1)
+    {
+      const char *cmd_string
+	= ((kind == FUNCTIONS_DOMAIN)
+	   ? "-symbol-info-module-functions"
+	   : "-symbol-info-module-variables");
+      int opt = mi_getopt (cmd_string, argc, argv, opts, &oind, &oarg);
+      if (opt < 0)
+	break;
+      switch ((enum opt) opt)
+	{
+	case MODULE_REGEXP_OPT:
+	  module_regexp = oarg;
+	  break;
+	case TYPE_REGEXP_OPT:
+	  type_regexp = oarg;
+	  break;
+	case NAME_REGEXP_OPT:
+	  regexp = oarg;
+	  break;
+	}
+    }
+
+  std::vector<module_symbol_search> module_symbols
+    = search_module_symbols (module_regexp, regexp, type_regexp, kind);
+
+  struct ui_out *uiout = current_uiout;
+  ui_out_emit_list all_matching_symbols (uiout, "symbols");
+
+  /* The results in the module_symbols list are ordered so symbols in the
+     same module are next to each other.  Repeatedly call the output
+     function to print sequences of symbols that are in the same module
+     until we have no symbols left to print.  */
+  module_symbol_search_iterator iter = module_symbols.begin ();
+  const module_symbol_search_iterator end = module_symbols.end ();
+  while (iter != end)
+    iter = output_module_symbols_in_single_module (uiout, iter, end, kind);
 }
 
 /* Implement -symbol-info-functions command.  */
@@ -224,20 +383,40 @@ mi_cmd_symbol_info_functions (const char
   mi_info_functions_or_variables (FUNCTIONS_DOMAIN, argv, argc);
 }
 
+/* Implement -symbol-info-module-functions command.  */
+
+void
+mi_cmd_symbol_info_module_functions (const char *command, char **argv,
+				     int argc)
+{
+  mi_info_module_functions_or_variables (FUNCTIONS_DOMAIN, argv, argc);
+}
+
+/* Implement -symbol-info-module-variables command.  */
+
+void
+mi_cmd_symbol_info_module_variables (const char *command, char **argv,
+				     int argc)
+{
+  mi_info_module_functions_or_variables (VARIABLES_DOMAIN, argv, argc);
+}
+
 /* Implement -symbol-inf-modules command.  */
 
 void
 mi_cmd_symbol_info_modules (const char *command, char **argv, int argc)
 {
+  size_t max_results = SIZE_MAX;
   const char *regexp = nullptr;
 
   enum opt
     {
-     NAME_REGEXP_OPT
+     NAME_REGEXP_OPT, MAX_RESULTS_OPT
     };
   static const struct mi_opt opts[] =
   {
     {"-name", NAME_REGEXP_OPT, 1},
+    {"-max-results", MAX_RESULTS_OPT, 1},
     { 0, 0, 0 }
   };
 
@@ -255,10 +434,13 @@ mi_cmd_symbol_info_modules (const char *
 	case NAME_REGEXP_OPT:
 	  regexp = oarg;
 	  break;
+	case MAX_RESULTS_OPT:
+	  max_results = parse_max_results_option (oarg);
+	  break;
 	}
     }
 
-  mi_symbol_info (MODULES_DOMAIN, regexp, nullptr, true);
+  mi_symbol_info (MODULES_DOMAIN, regexp, nullptr, true, max_results);
 }
 
 /* Implement -symbol-info-types command.  */
@@ -266,15 +448,17 @@ mi_cmd_symbol_info_modules (const char *
 void
 mi_cmd_symbol_info_types (const char *command, char **argv, int argc)
 {
+  size_t max_results = SIZE_MAX;
   const char *regexp = nullptr;
 
   enum opt
     {
-     NAME_REGEXP_OPT
+     NAME_REGEXP_OPT, MAX_RESULTS_OPT
     };
   static const struct mi_opt opts[] =
   {
     {"-name", NAME_REGEXP_OPT, 1},
+    {"-max-results", MAX_RESULTS_OPT, 1},
     { 0, 0, 0 }
   };
 
@@ -292,10 +476,13 @@ mi_cmd_symbol_info_types (const char *co
 	case NAME_REGEXP_OPT:
 	  regexp = oarg;
 	  break;
+	case MAX_RESULTS_OPT:
+	  max_results = parse_max_results_option (oarg);
+	  break;
 	}
     }
 
-  mi_symbol_info (TYPES_DOMAIN, regexp, nullptr, true);
+  mi_symbol_info (TYPES_DOMAIN, regexp, nullptr, true, max_results);
 }
 
 /* Implement -symbol-info-variables command.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/NEWS	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/NEWS	2019-12-05 01:49:56.000000000 +0000
@@ -402,6 +402,10 @@ focus, winheight, +, -, >, <
 -symbol-info-modules, this is the MI equivalent of the CLI 'info
   modules' command.
 
+-symbol-info-module-functions and -symbol-info-module-variables.
+  These commands are the MI equivalent of the CLI commands 'info
+  module functions' and 'info module variables'.
+
 * Other MI changes
 
  ** The default version of the MI interpreter is now 3 (-i=mi3).
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/po/gdb.pot	2019-12-04 01:54:37.000000000 +0000
+++ ./gdb/po/gdb.pot	2019-12-05 01:54:17.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-12-04 01:54+0000\n"
+"POT-Creation-Date: 2019-12-05 01:54+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -129,96 +129,96 @@ msgid ""
 "triggers a breakpoint or watchpoint."
 msgstr ""
 
-#: aarch64-linux-tdep.c:255
+#: aarch64-linux-tdep.c:251
 #, possible-c-format
 msgid "Invalid vector length in signal frame %d vs %s."
 msgstr ""
 
-#: aarch64-linux-tdep.c:460
+#: aarch64-linux-tdep.c:456
 msgid "'.reg-aarch-sve' section in core file too small."
 msgstr ""
 
-#: aarch64-linux-tdep.c:466
+#: aarch64-linux-tdep.c:462
 msgid "Couldn't read sve header from '.reg-aarch-sve' section in core file."
 msgstr ""
 
-#: aarch64-linux-tdep.c:477
+#: aarch64-linux-tdep.c:473
 #, possible-c-format
 msgid ""
 "SVE Vector length in core file not supported by this version of GDB.  (VQ=%s)"
 msgstr ""
 
-#: aarch64-linux-tdep.c:483
+#: aarch64-linux-tdep.c:479
 #, possible-c-format
 msgid "SVE Vector length in core file is invalid. (VQ=%s"
 msgstr ""
 
-#: aarch64-linux-tdep.c:718 arm-linux-tdep.c:1204 i386-tdep.c:4133
+#: aarch64-linux-tdep.c:714 arm-linux-tdep.c:1204 i386-tdep.c:4133
 #: i386-tdep.c:4242 i386-tdep.c:4257 ppc-linux-tdep.c:1710 stap-probe.c:769
 #, possible-c-format
 msgid "Invalid register name `%s' on expression `%s'."
 msgstr ""
 
-#: aarch64-linux-tdep.c:1398 amd64-linux-tdep.c:1498 arm-linux-tdep.c:1666
+#: aarch64-linux-tdep.c:1394 amd64-linux-tdep.c:1498 arm-linux-tdep.c:1666
 #: i386-linux-tdep.c:468 s390-linux-tdep.c:817
 #, possible-c-format
 msgid "Process record and replay target doesn't support syscall number %s\n"
 msgstr ""
 
-#: aarch64-tdep.c:222
+#: aarch64-tdep.c:215
 #, possible-c-format
 msgid "AArch64 debugging is %s.\n"
 msgstr ""
 
-#: aarch64-tdep.c:1127 arm-tdep.c:3077
+#: aarch64-tdep.c:1120 arm-tdep.c:3077
 #, possible-c-format
 msgid "Unexpected register %d"
 msgstr ""
 
-#: aarch64-tdep.c:2439
+#: aarch64-tdep.c:2432
 #, possible-c-format
 msgid "aarch64_pseudo_register_name: bad register number %d"
 msgstr ""
 
-#: aarch64-tdep.c:2475
+#: aarch64-tdep.c:2468
 #, possible-c-format
 msgid "aarch64_pseudo_register_type: bad register number %d"
 msgstr ""
 
-#: aarch64-tdep.c:3089 gdbserver/linux-aarch64-tdesc.c:35
+#: aarch64-tdep.c:3082 gdbserver/linux-aarch64-tdesc.c:35
 #, possible-c-format
 msgid "VQ is %<PRIu64>, maximum supported value is %d"
 msgstr ""
 
-#: aarch64-tdep.c:3180
+#: aarch64-tdep.c:3173
 #, possible-c-format
 msgid "VQ out of bounds: %s (max %d)"
 msgstr ""
 
-#: aarch64-tdep.c:3223
+#: aarch64-tdep.c:3216
 msgid "Program contains both fpu and SVE features."
 msgstr ""
 
-#: aarch64-tdep.c:3405
+#: aarch64-tdep.c:3398
 #, possible-c-format
 msgid "aarch64_dump_tdep: Lowest pc = 0x%s"
 msgstr ""
 
 #. Debug this file's internals.
-#: aarch64-tdep.c:3423
+#: aarch64-tdep.c:3416
 msgid "Set AArch64 debugging."
 msgstr ""
 
-#: aarch64-tdep.c:3424
+#: aarch64-tdep.c:3417
 msgid "Show AArch64 debugging."
 msgstr ""
 
-#: aarch64-tdep.c:3425
+#: aarch64-tdep.c:3418
 msgid "When on, AArch64 specific debugging is enabled."
 msgstr ""
 
 #. We need to save SPSR value, which is not yet done.
-#: aarch64-tdep.c:4401 arm-tdep.c:11052 arm-tdep.c:12071
+#: aarch64-tdep.c:4394 arm-tdep.c:11052 arm-tdep.c:12071
 #, possible-c-format
 msgid "Process record does not support instruction 0x%0x at address %s.\n"
 msgstr ""
@@ -304,7 +304,7 @@ msgid "No definition of \"%s\" found."
 msgstr ""
 
 #: ada-exp.y:1327 c-exp.y:1088 c-exp.y:1141 cli/cli-cmds.c:1165 d-exp.y:493
-#: f-exp.y:504 go-exp.y:579 linespec.c:1623 linespec.c:3824 p-exp.y:707
+#: f-exp.y:506 go-exp.y:579 linespec.c:1623 linespec.c:3824 p-exp.y:707
 #: p-exp.y:766 source.c:214 symtab.c:4305
 msgid "No symbol table is loaded.  Use the \"file\" command."
 msgstr ""
@@ -2757,7 +2757,7 @@ msgid "ERR: error reading avr.io_reg:%x,
 msgstr ""
 
 #: avr-tdep.c:1632
-msgid "query remote avr target for io space register values"
+msgid "Query remote AVR target for I/O space register values."
 msgstr ""
 
 #: ax-gdb.c:512
@@ -3692,7 +3692,7 @@ msgstr ""
 msgid "Catchpoint %d (%s)"
 msgstr ""
 
-#: breakpoint.c:8065 stack.c:2385 symtab.c:4336 symtab.c:4534 symtab.c:4542
+#: breakpoint.c:8065 stack.c:2385 symtab.c:4336 symtab.c:4728 symtab.c:4736
 msgid "Invalid regexp"
 msgstr ""
 
@@ -5267,7 +5267,7 @@ msgstr ""
 msgid "No type \"%s\" within class or namespace \"%s\"."
 msgstr ""
 
-#: c-exp.y:1090 c-exp.y:1143 d-exp.y:455 d-exp.y:495 f-exp.y:506 go-exp.y:582
+#: c-exp.y:1090 c-exp.y:1143 d-exp.y:455 d-exp.y:495 f-exp.y:508 go-exp.y:582
 #: m2-exp.y:592 p-exp.y:710 p-exp.y:769 printcmd.c:1470 valops.c:2700
 #, possible-c-format
 msgid "No symbol \"%s\" in current context."
@@ -5302,7 +5302,7 @@ msgstr ""
 msgid "Unmatched single quote."
 msgstr ""
 
-#: c-exp.y:2732 d-exp.y:1176 f-exp.y:1200 go-exp.y:1148 m2-exp.y:919
+#: c-exp.y:2732 d-exp.y:1176 f-exp.y:1215 go-exp.y:1148 m2-exp.y:919
 #: p-exp.y:1300
 #, possible-c-format
 msgid "Invalid number \"%s\"."
@@ -5317,7 +5317,7 @@ msgid "Invalid character constant."
 msgstr ""
 
 #. We must have come across a bad character (e.g. ';').
-#: c-exp.y:2823 f-exp.y:1234 go-exp.y:1217 m2-exp.y:928 p-exp.y:1385
+#: c-exp.y:2823 f-exp.y:1249 go-exp.y:1217 m2-exp.y:928 p-exp.y:1385
 #, possible-c-format
 msgid "Invalid character '%c' in expression."
 msgstr ""
@@ -5326,7 +5326,7 @@ msgstr ""
 msgid "not reached"
 msgstr ""
 
-#: c-exp.y:3414 d-exp.y:1647 f-exp.y:1354 go-exp.y:1582 m2-exp.y:1053
+#: c-exp.y:3414 d-exp.y:1647 f-exp.y:1369 go-exp.y:1582 m2-exp.y:1053
 #: p-exp.y:1749
 #, possible-c-format
 msgid "A %s in expression, near `%s'."
@@ -6022,7 +6022,7 @@ msgstr ""
 msgid "Address range %s to %s:\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1391 dwarf2loc.c:574 dwarf2loc.c:2033 dwarf2loc.c:2069
+#: cli/cli-cmds.c:1391 dwarf2loc.c:574 dwarf2loc.c:2032 dwarf2loc.c:2068
 #: python/py-symbol.c:393 python/py-symbol.c:501 stack.c:2525 stack.c:2636
 #: valops.c:1291
 msgid "No frame selected."
@@ -7308,15 +7308,15 @@ msgid ""
 "current thread in compiled code."
 msgstr ""
 
-#: compile/compile-loc2c.c:876 dwarf2loc.c:3127
+#: compile/compile-loc2c.c:876 dwarf2loc.c:3126
 msgid "No block found for address"
 msgstr ""
 
-#: compile/compile-loc2c.c:881 dwarf2loc.c:3132
+#: compile/compile-loc2c.c:881 dwarf2loc.c:3131
 msgid "No function found for block"
 msgstr ""
 
-#: compile/compile-loc2c.c:958 dwarf2loc.c:3189
+#: compile/compile-loc2c.c:958 dwarf2loc.c:3188
 #, possible-c-format
 msgid "Unsupported size %d in %s"
 msgstr ""
@@ -8178,6 +8178,10 @@ msgstr ""
 msgid "<synthetic pointer>"
 msgstr ""
 
+#: cp-valprint.c:641 cp-valprint.c:673 p-valprint.c:868
+msgid "<same as static member of an already seen type>"
+msgstr ""
+
 #: cris-tdep.c:283 i386-linux-tdep.c:315
 msgid "Couldn't recognize signal trampoline."
 msgstr ""
@@ -9781,7 +9785,7 @@ msgstr ""
 msgid "DWARF-2 expression error: Loop detected (%d)."
 msgstr ""
 
-#: dwarf2expr.c:758 dwarf2loc.c:3043
+#: dwarf2expr.c:758 dwarf2loc.c:3042
 msgid "DW_OP_implicit_value: too few bytes available."
 msgstr ""
 
@@ -10092,200 +10096,200 @@ msgid ""
 "DW_OP_reg* or for DW_OP_fbreg(*)"
 msgstr ""
 
-#: dwarf2loc.c:1592
+#: dwarf2loc.c:1591
 msgid "Should not be able to create a lazy value with an enclosing type"
 msgstr ""
 
-#: dwarf2loc.c:1686
+#: dwarf2loc.c:1685
 msgid ""
 "Can't do read-modify-write to update bitfield; containing word has been "
 "optimized out"
 msgstr ""
 
-#: dwarf2loc.c:1691
+#: dwarf2loc.c:1690
 msgid ""
 "Can't do read-modify-write to update bitfield; containing word is unavailable"
 msgstr ""
 
-#: dwarf2loc.c:1845 dwarf2loc.c:2331
+#: dwarf2loc.c:1844 dwarf2loc.c:2330
 msgid "invalid location type"
 msgstr ""
 
-#: dwarf2loc.c:2026
+#: dwarf2loc.c:2025
 msgid "Invalid use of DW_OP_implicit_pointer"
 msgstr ""
 
-#: dwarf2loc.c:2222
+#: dwarf2loc.c:2221
 msgid "cannot use offset on synthetic pointer to register"
 msgstr ""
 
-#: dwarf2loc.c:2525
+#: dwarf2loc.c:2524
 msgid "cannot find reference address for offset property"
 msgstr ""
 
-#: dwarf2loc.c:2733
+#: dwarf2loc.c:2732
 #, possible-c-format
 msgid "DWARF operator %s cannot be translated to an agent expression"
 msgstr ""
 
-#: dwarf2loc.c:2736
+#: dwarf2loc.c:2735
 #, possible-c-format
 msgid ""
 "Unknown DWARF operator 0x%02x cannot be translated to an agent expression"
 msgstr ""
 
-#: dwarf2loc.c:2754
+#: dwarf2loc.c:2753
 #, possible-c-format
 msgid "bad DWARF register number %d"
 msgstr ""
 
-#: dwarf2loc.c:2769
+#: dwarf2loc.c:2768
 #, possible-c-format
 msgid "Unable to access DWARF register number %d"
 msgstr ""
 
-#: dwarf2loc.c:2770
+#: dwarf2loc.c:2769
 #, possible-c-format
 msgid "Unable to access DWARF register number %s"
 msgstr ""
 
-#: dwarf2loc.c:3045
+#: dwarf2loc.c:3044
 #, possible-c-format
 msgid "Cannot translate DW_OP_implicit_value of %d bytes"
 msgstr ""
 
-#: dwarf2loc.c:3408
+#: dwarf2loc.c:3407
 msgid "Cannot translate empty pieces to agent expressions"
 msgstr ""
 
-#: dwarf2loc.c:3421
+#: dwarf2loc.c:3420
 msgid "Expression pieces exceed word size"
 msgstr ""
 
-#: dwarf2loc.c:3510
+#: dwarf2loc.c:3509
 msgid "invalid label"
 msgstr ""
 
 #. The text is output as "$bad_register_number".
 #. That is why we use the underscores.
-#: dwarf2loc.c:3584
+#: dwarf2loc.c:3583
 msgid "bad_register_number"
 msgstr ""
 
-#: dwarf2loc.c:3607 dwarf2loc.c:3616
+#: dwarf2loc.c:3606 dwarf2loc.c:3615
 #, possible-c-format
 msgid "a variable in $%s"
 msgstr ""
 
-#: dwarf2loc.c:3637
+#: dwarf2loc.c:3636
 #, possible-c-format
 msgid "No block found for address for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3643
+#: dwarf2loc.c:3642
 #, possible-c-format
 msgid "No function found for block for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3656
+#: dwarf2loc.c:3655
 #, possible-c-format
 msgid "Unexpected opcode after DW_OP_breg%u for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3674
+#: dwarf2loc.c:3673
 #, possible-c-format
 msgid "a variable at frame base reg $%s offset %s+%s"
 msgstr ""
 
-#: dwarf2loc.c:3686
+#: dwarf2loc.c:3685
 #, possible-c-format
 msgid "a variable at offset %s from base reg $%s"
 msgstr ""
 
-#: dwarf2loc.c:3718 dwarf2loc.c:3742
+#: dwarf2loc.c:3717 dwarf2loc.c:3741
 #, possible-c-format
 msgid ""
 "a thread-local variable at offset 0x%s in the thread-local storage for `%s'"
 msgstr ""
 
-#: dwarf2loc.c:3753
+#: dwarf2loc.c:3752
 #, possible-c-format
 msgid "the constant %d"
 msgstr ""
 
-#: dwarf2loc.c:3787
+#: dwarf2loc.c:3786
 #, possible-c-format
 msgid "Unrecognized DWARF opcode 0x%02x at %ld"
 msgstr ""
 
-#: dwarf2loc.c:4162
+#: dwarf2loc.c:4161
 msgid ", and "
 msgstr ""
 
-#: dwarf2loc.c:4178
+#: dwarf2loc.c:4177
 msgid "a complex DWARF expression:\n"
 msgstr ""
 
-#: dwarf2loc.c:4200
+#: dwarf2loc.c:4199
 #, possible-c-format
 msgid "an empty %s-byte piece"
 msgstr ""
 
-#: dwarf2loc.c:4203
+#: dwarf2loc.c:4202
 #, possible-c-format
 msgid " [%s-byte piece]"
 msgstr ""
 
-#: dwarf2loc.c:4215
+#: dwarf2loc.c:4214
 #, possible-c-format
 msgid "an empty %s-bit piece"
 msgstr ""
 
-#: dwarf2loc.c:4219
+#: dwarf2loc.c:4218
 #, possible-c-format
 msgid " [%s-bit piece, offset %s bits]"
 msgstr ""
 
-#: dwarf2loc.c:4231
+#: dwarf2loc.c:4230
 #, possible-c-format
 msgid "Corrupted DWARF2 expression for \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:4285 dwarf2loc.c:4498
+#: dwarf2loc.c:4284 dwarf2loc.c:4497
 #, possible-c-format
 msgid "symbol \"%s\" is optimized out"
 msgstr ""
 
-#: dwarf2loc.c:4395
+#: dwarf2loc.c:4394
 msgid "multi-location:\n"
 msgstr ""
 
-#: dwarf2loc.c:4422
+#: dwarf2loc.c:4421
 #, possible-c-format
 msgid "  Base address %s"
 msgstr ""
 
-#: dwarf2loc.c:4430
+#: dwarf2loc.c:4429
 #, possible-c-format
 msgid "Corrupted DWARF expression for symbol \"%s\"."
 msgstr ""
 
 #. (It would improve readability to print only the minimum
 #. necessary digits of the second number of the range.)
-#: dwarf2loc.c:4448
+#: dwarf2loc.c:4447
 #, possible-c-format
 msgid "  Range %s-%s: "
 msgstr ""
 
-#: dwarf2loc.c:4523
+#: dwarf2loc.c:4522
 msgid "Set entry values and tail call frames debugging."
 msgstr ""
 
-#: dwarf2loc.c:4525
+#: dwarf2loc.c:4524
 msgid "Show entry values and tail call frames debugging."
 msgstr ""
 
-#: dwarf2loc.c:4527
+#: dwarf2loc.c:4526
 msgid ""
 "When non-zero, the process of determining parameter values from function "
 "entry point and tail call frames will be printed."
@@ -10638,7 +10642,7 @@ msgstr ""
 msgid "unhandled containing DIE tag %s for DIE at %s"
 msgstr ""
 
-#: dwarf2read.c:9269 dwarf2read.c:18770
+#: dwarf2read.c:9269 dwarf2read.c:18779
 msgid "malformed enumerator DIE ignored"
 msgstr ""
 
@@ -10649,15 +10653,15 @@ msgid ""
 "s]"
 msgstr ""
 
-#: dwarf2read.c:9361 dwarf2read.c:18990
+#: dwarf2read.c:9361 dwarf2read.c:18999
 msgid "ignoring absolute DW_AT_sibling"
 msgstr ""
 
-#: dwarf2read.c:9368 dwarf2read.c:18998
+#: dwarf2read.c:9368 dwarf2read.c:19007
 msgid "DW_AT_sibling points backwards"
 msgstr ""
 
-#: dwarf2read.c:9465 dwarf2read.c:19601
+#: dwarf2read.c:9465 dwarf2read.c:19610
 #, possible-c-format
 msgid "Dwarf Error: Cannot handle %s in DWARF reader [in module %s]"
 msgstr ""
@@ -11138,66 +11142,71 @@ msgstr ""
 msgid "DW_AT_name missing from DW_TAG_base_type"
 msgstr ""
 
-#: dwarf2read.c:17810
+#: dwarf2read.c:17767
+#, possible-c-format
+msgid "DW_AT_endianity has unrecognized value %d"
+msgstr ""
+
+#: dwarf2read.c:17829
 #, possible-c-format
 msgid "unsupported DW_ATE_UTF bit size: '%d'"
 msgstr ""
 
-#: dwarf2read.c:17819
+#: dwarf2read.c:17838
 #, possible-c-format
 msgid "unsupported DW_AT_encoding: '%s'"
 msgstr ""
 
-#: dwarf2read.c:18096
+#: dwarf2read.c:18105
 #, possible-c-format
 msgid "Missing DW_AT_lower_bound - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18117
+#: dwarf2read.c:18126
 #, possible-c-format
 msgid "Unresolved DW_AT_upper_bound - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18122
+#: dwarf2read.c:18131
 #, possible-c-format
 msgid "Unresolved DW_AT_count - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18168
+#: dwarf2read.c:18177
 #, possible-c-format
 msgid "Found DW_AT_bit_stride and DW_AT_byte_stride - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18372
+#: dwarf2read.c:18381
 #, possible-c-format
 msgid "Dwarf Error: could not find abbrev number %d [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18755
+#: dwarf2read.c:18764
 #, possible-c-format
 msgid ""
 "DW_TAG_typedef has childen - GCC PR debug/47510 bug - DIE at %s [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:19099
+#: dwarf2read.c:19108
 #, possible-c-format
 msgid "DW_AT_low_pc %s is zero for DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19111
+#: dwarf2read.c:19120
 #, possible-c-format
 msgid "DW_AT_low_pc %s is not < DW_AT_high_pc %s for DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19169
+#: dwarf2read.c:19178
 #, possible-c-format
 msgid ""
 "Dwarf Error: Type Unit at offset %s contains external reference to offset %s "
 "[in module %s].\n"
 msgstr ""
 
-#: dwarf2read.c:19204
+#: dwarf2read.c:19213
 #, possible-c-format
 msgid "could not find partial DIE %s in cache [from module %s]\n"
 msgstr ""
@@ -11206,141 +11215,141 @@ msgstr ""
 #. Later we can turn this into a complaint.
 #. For now flag a hard error.
 #. Later we can turn this into a complaint if warranted.
-#: dwarf2read.c:19548 dwarf2read.c:19565
+#: dwarf2read.c:19557 dwarf2read.c:19574
 #, possible-c-format
 msgid "Dwarf Error: %s found in non-DWO CU [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19621
+#: dwarf2read.c:19630
 #, possible-c-format
 msgid "Suspicious DW_AT_byte_size value treated as zero instead of %s"
 msgstr ""
 
-#: dwarf2read.c:19720
+#: dwarf2read.c:19729
 #, possible-c-format
 msgid "read_address: bad switch, signed [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19739
+#: dwarf2read.c:19748
 #, possible-c-format
 msgid "read_address: bad switch, unsigned [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19832
+#: dwarf2read.c:19841
 msgid "intermixed 32-bit and 64-bit DWARF sections"
 msgstr ""
 
-#: dwarf2read.c:19869
+#: dwarf2read.c:19878
 #, possible-c-format
 msgid "read_offset_1: bad switch [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19915
+#: dwarf2read.c:19924
 #, possible-c-format
 msgid "%s used without %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19918
+#: dwarf2read.c:19927
 #, possible-c-format
 msgid "%s pointing outside of %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19963
+#: dwarf2read.c:19972
 #, possible-c-format
 msgid "DW_FORM_GNU_strp_alt used without .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19967
+#: dwarf2read.c:19976
 #, possible-c-format
 msgid ""
 "DW_FORM_GNU_strp_alt pointing outside of .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20078
+#: dwarf2read.c:20087
 #, possible-c-format
 msgid "DW_FORM_addr_index used without .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20081
+#: dwarf2read.c:20090
 #, possible-c-format
 msgid ""
 "DW_FORM_addr_index pointing outside of .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20212
+#: dwarf2read.c:20221
 #, possible-c-format
 msgid ""
 "%s used without .debug_str.dwo section in CU at offset %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20216
+#: dwarf2read.c:20225
 #, possible-c-format
 msgid ""
 "%s used without .debug_str_offsets.dwo section in CU at offset %s [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:20220
+#: dwarf2read.c:20229
 #, possible-c-format
 msgid ""
 "%s pointing outside of .debug_str_offsets.dwo section in CU at offset %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:20230
+#: dwarf2read.c:20239
 #, possible-c-format
 msgid ""
 "Offset from %s pointing outside of .debug_str.dwo section in CU at offset %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20382
+#: dwarf2read.c:20391
 #, possible-c-format
 msgid "string type expected for attribute %s for DIE at %s in module %s"
 msgstr ""
 
-#: dwarf2read.c:20642
+#: dwarf2read.c:20651
 #, possible-c-format
 msgid "Unknown format content type %s"
 msgstr ""
 
-#: dwarf2read.c:20680
+#: dwarf2read.c:20689
 msgid "missing .debug_line.dwo section"
 msgstr ""
 
-#: dwarf2read.c:20682
+#: dwarf2read.c:20691
 msgid "missing .debug_line section"
 msgstr ""
 
 #. This is a version we don't understand.  The format could have
 #. changed in ways we don't handle properly so just punt.
-#: dwarf2read.c:20725
+#: dwarf2read.c:20734
 msgid "unsupported version in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:20740
+#: dwarf2read.c:20749
 #, possible-c-format
 msgid "unsupported segment selector size %u in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:20762
+#: dwarf2read.c:20771
 msgid "invalid maximum_ops_per_instruction in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:20835
+#: dwarf2read.c:20844
 msgid "line number info header doesn't fit in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:21300
+#: dwarf2read.c:21309
 #, possible-c-format
 msgid ".debug_line address at offset 0x%lx is 0 [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:21427 dwarf2read.c:21435
+#: dwarf2read.c:21436 dwarf2read.c:21444
 msgid "mangled .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:21818
+#: dwarf2read.c:21827
 msgid "file index out of range"
 msgstr ""
 
@@ -11348,59 +11357,59 @@ msgstr ""
 #. trash data, but since we must specifically ignore things
 #. we don't recognize, there is nothing else we should do at
 #. this point.
-#: dwarf2read.c:22120
+#: dwarf2read.c:22129
 #, possible-c-format
 msgid "unsupported tag: '%s'"
 msgstr ""
 
-#: dwarf2read.c:22280 dwarf2read.c:23788
+#: dwarf2read.c:22289 dwarf2read.c:23797
 #, possible-c-format
 msgid "unsupported const value attribute form: '%s'"
 msgstr ""
 
-#: dwarf2read.c:22394
+#: dwarf2read.c:22403
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem turning containing type into gdb type [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:22411
+#: dwarf2read.c:22420
 #, possible-c-format
 msgid "<unknown type in %s, CU %s, DIE %s>"
 msgstr ""
 
-#: dwarf2read.c:22463
+#: dwarf2read.c:22472
 #, possible-c-format
 msgid "Dwarf Error: Bad type attribute %s in DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:22591
+#: dwarf2read.c:22600
 #, possible-c-format
 msgid "unexpected tag in read_type_die: '%s'"
 msgstr ""
 
-#: dwarf2read.c:22805
+#: dwarf2read.c:22814
 #, possible-c-format
 msgid "template param type '%s' defined within parent '%s'"
 msgstr ""
 
-#: dwarf2read.c:23388
+#: dwarf2read.c:23397
 #, possible-c-format
 msgid "unsupported die ref attribute form: '%s'"
 msgstr ""
 
 #. For DW_FORM_data16 see attr_form_is_constant.
-#: dwarf2read.c:23410
+#: dwarf2read.c:23419
 #, possible-c-format
 msgid "Attribute value is not a constant (%s)"
 msgstr ""
 
-#: dwarf2read.c:23433
+#: dwarf2read.c:23442
 #, possible-c-format
 msgid "Dwarf Error: Expected reference attribute [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:23515
+#: dwarf2read.c:23524
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find DIE at %s referenced from DIE at %s [in module %s]"
@@ -11408,127 +11417,127 @@ msgstr ""
 
 #. We shouldn't get here for a dummy CU, but don't crash on the user.
 #. Instead just throw an error, not much else we can do.
-#: dwarf2read.c:23548 dwarf2read.c:23690
+#: dwarf2read.c:23557 dwarf2read.c:23699
 #, possible-c-format
 msgid "Dwarf Error: Dummy CU at %s referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:23554 dwarf2read.c:23696
+#: dwarf2read.c:23563 dwarf2read.c:23705
 #, possible-c-format
 msgid "Dwarf Error: Cannot find DIE at %s referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:23616
+#: dwarf2read.c:23625
 #, possible-c-format
 msgid ""
 "Dwarf Error: DIE at %s referenced in module %s is neither DW_FORM_block* nor "
 "DW_FORM_exprloc"
 msgstr ""
 
-#: dwarf2read.c:23902 dwarf2read.c:23940
+#: dwarf2read.c:23911 dwarf2read.c:23949
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find signatured DIE %s referenced from DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:23912 dwarf2read.c:23970
+#: dwarf2read.c:23921 dwarf2read.c:23979
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem reading signatured DIE %s referenced from DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:23961
+#: dwarf2read.c:23970
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot build signatured type %s referenced from DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:24005
+#: dwarf2read.c:24014
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_AT_signature has bad form %s in DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:24326
+#: dwarf2read.c:24335
 #, possible-c-format
 msgid "unsupported stack op: '%s'"
 msgstr ""
 
-#: dwarf2read.c:24329
+#: dwarf2read.c:24338
 #, possible-c-format
 msgid "unsupported stack op: '%02x'"
 msgstr ""
 
-#: dwarf2read.c:24340
+#: dwarf2read.c:24349
 msgid "location description stack overflow"
 msgstr ""
 
-#: dwarf2read.c:24346
+#: dwarf2read.c:24355
 msgid "location description stack underflow"
 msgstr ""
 
-#: dwarf2read.c:24409
+#: dwarf2read.c:24418
 #, possible-c-format
 msgid "bad file number in macro information (%d)"
 msgstr ""
 
-#: dwarf2read.c:24472
+#: dwarf2read.c:24481
 #, possible-c-format
 msgid ""
 "macro definition contains spaces in formal argument list:\n"
 "`%s'"
 msgstr ""
 
-#: dwarf2read.c:24703
+#: dwarf2read.c:24712
 #, possible-c-format
 msgid "invalid form 0x%x in `%s'"
 msgstr ""
 
-#: dwarf2read.c:24730
+#: dwarf2read.c:24739
 #, possible-c-format
 msgid "unrecognized DW_MACFINO opcode 0x%x"
 msgstr ""
 
-#: dwarf2read.c:24775
+#: dwarf2read.c:24784
 #, possible-c-format
 msgid "unrecognized version `%d' in .debug_macro section"
 msgstr ""
 
 #. DWARF violation as no main source is present.
-#: dwarf2read.c:24924
+#: dwarf2read.c:24933
 #, possible-c-format
 msgid "debug info with no main source gives macro %s on line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:24926 dwarf2read.c:24934 dwarf2read.c:24948
+#: dwarf2read.c:24935 dwarf2read.c:24943 dwarf2read.c:24957
 msgid "definition"
 msgstr ""
 
-#: dwarf2read.c:24926 dwarf2read.c:24934 dwarf2read.c:24948
+#: dwarf2read.c:24935 dwarf2read.c:24943 dwarf2read.c:24957
 msgid "undefinition"
 msgstr ""
 
-#: dwarf2read.c:24932
+#: dwarf2read.c:24941
 #, possible-c-format
 msgid "debug info gives %s macro %s with %s line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:24933 dwarf2read.c:24947 dwarf2read.c:24977
+#: dwarf2read.c:24942 dwarf2read.c:24956 dwarf2read.c:24986
 msgid "command-line"
 msgstr ""
 
-#: dwarf2read.c:24933 dwarf2read.c:24947
+#: dwarf2read.c:24942 dwarf2read.c:24956
 msgid "in-file"
 msgstr ""
 
-#: dwarf2read.c:24935 dwarf2read.c:24978
+#: dwarf2read.c:24944 dwarf2read.c:24987
 msgid "zero"
 msgstr ""
 
-#: dwarf2read.c:24935 dwarf2read.c:24978
+#: dwarf2read.c:24944 dwarf2read.c:24987
 msgid "non-zero"
 msgstr ""
 
@@ -11537,162 +11546,162 @@ msgstr ""
 #.
 #. For more info, see
 #. https://bugzilla.redhat.com/show_bug.cgi?id=1708786
-#: dwarf2read.c:24944
+#: dwarf2read.c:24953
 #, possible-c-format
 msgid ""
 "debug info gives %s invalid macro %s without body (corrupted?) at line %d on "
 "file %s"
 msgstr ""
 
-#: dwarf2read.c:24975
+#: dwarf2read.c:24984
 #, possible-c-format
 msgid "debug info gives source %d included from %s at %s line %d"
 msgstr ""
 
-#: dwarf2read.c:24977 skip.c:336
+#: dwarf2read.c:24986 skip.c:336
 msgid "file"
 msgstr ""
 
-#: dwarf2read.c:24994
+#: dwarf2read.c:25003
 msgid "macro debug info has an unmatched `close_file' directive"
 msgstr ""
 
-#: dwarf2read.c:25021
+#: dwarf2read.c:25030
 msgid "no terminating 0-type entry for macros in `.debug_macinfo' section"
 msgstr ""
 
 #. This has actually happened; see
 #. http://sourceware.org/bugzilla/show_bug.cgi?id=13568.
-#: dwarf2read.c:25062
+#: dwarf2read.c:25071
 msgid "recursive DW_MACRO_import in .debug_macro section"
 msgstr ""
 
-#: dwarf2read.c:25156
+#: dwarf2read.c:25165
 #, possible-c-format
 msgid "missing %s section"
 msgstr ""
 
-#: dwarf2read.c:25453
+#: dwarf2read.c:25462
 msgid "Location list used without specifying the CU base address."
 msgstr ""
 
-#: dwarf2read.c:25644
+#: dwarf2read.c:25653
 #, possible-c-format
 msgid ""
 "Dwarf Error: could not find partial DIE containing offset %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:25657
+#: dwarf2read.c:25666
 #, possible-c-format
 msgid "invalid dwarf2 offset %s"
 msgstr ""
 
-#: dwarf2read.c:25878
+#: dwarf2read.c:25887
 #, possible-c-format
 msgid "DW_AT_allocated has the wrong form (%s) at DIE %s"
 msgstr ""
 
-#: dwarf2read.c:25894
+#: dwarf2read.c:25903
 #, possible-c-format
 msgid "DW_AT_associated has the wrong form (%s) at DIE %s"
 msgstr ""
 
-#: dwarf2read.c:25923
+#: dwarf2read.c:25932
 #, possible-c-format
 msgid "A problem internal to GDB: DIE %s has type already set"
 msgstr ""
 
-#: dwarf2read.c:26082
+#: dwarf2read.c:26091
 #, possible-c-format
 msgid "Whether to always disassemble DWARF expressions is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:26092
+#: dwarf2read.c:26101
 #, possible-c-format
 msgid "Whether to check \"physname\" is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:26099
+#: dwarf2read.c:26108
 msgid ""
 "Set DWARF specific variables.\n"
 "Configure DWARF variables such as the cache size."
 msgstr ""
 
 #. allow-unknown
-#: dwarf2read.c:26105
+#: dwarf2read.c:26114
 msgid ""
 "Show DWARF specific variables.\n"
 "Show DWARF variables such as the cache size."
 msgstr ""
 
-#: dwarf2read.c:26112
+#: dwarf2read.c:26121
 msgid "Set the upper bound on the age of cached DWARF compilation units."
 msgstr ""
 
-#: dwarf2read.c:26113
+#: dwarf2read.c:26122
 msgid "Show the upper bound on the age of cached DWARF compilation units."
 msgstr ""
 
-#: dwarf2read.c:26114
+#: dwarf2read.c:26123
 msgid ""
 "A higher limit means that cached compilation units will be stored\n"
 "in memory longer, and more total memory will be used.  Zero disables\n"
 "caching, which can slow down startup."
 msgstr ""
 
-#: dwarf2read.c:26124
+#: dwarf2read.c:26133
 msgid "Set whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:26125
+#: dwarf2read.c:26134
 msgid "Show whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:26126
+#: dwarf2read.c:26135
 msgid ""
 "When enabled, DWARF expressions are always printed in an assembly-like\n"
 "syntax.  When disabled, expressions will be printed in a more\n"
 "conversational style, when possible."
 msgstr ""
 
-#: dwarf2read.c:26135
+#: dwarf2read.c:26144
 msgid "Set debugging of the DWARF reader."
 msgstr ""
 
-#: dwarf2read.c:26136
+#: dwarf2read.c:26145
 msgid "Show debugging of the DWARF reader."
 msgstr ""
 
-#: dwarf2read.c:26137
+#: dwarf2read.c:26146
 msgid ""
 "When enabled (non-zero), debugging messages are printed during DWARF\n"
 "reading and symtab expansion.  A value of 1 (one) provides basic\n"
 "information.  A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:26145
+#: dwarf2read.c:26154
 msgid "Set debugging of the DWARF DIE reader."
 msgstr ""
 
-#: dwarf2read.c:26146
+#: dwarf2read.c:26155
 msgid "Show debugging of the DWARF DIE reader."
 msgstr ""
 
-#: dwarf2read.c:26147
+#: dwarf2read.c:26156
 msgid ""
 "When enabled (non-zero), DIEs are dumped after they are read in.\n"
 "The value is the maximum depth to print."
 msgstr ""
 
-#: dwarf2read.c:26154
+#: dwarf2read.c:26163
 msgid "Set debugging of the dwarf line reader."
 msgstr ""
 
-#: dwarf2read.c:26155
+#: dwarf2read.c:26164
 msgid "Show debugging of the dwarf line reader."
 msgstr ""
 
-#: dwarf2read.c:26156
+#: dwarf2read.c:26165
 msgid ""
 "When enabled (non-zero), line number entries are dumped as they are read "
 "in.\n"
@@ -11700,29 +11709,29 @@ msgid ""
 "A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:26164
+#: dwarf2read.c:26173
 msgid "Set cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:26165
+#: dwarf2read.c:26174
 msgid "Show cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:26166
+#: dwarf2read.c:26175
 msgid ""
 "When enabled, GDB's internal \"physname\" code is checked against\n"
 "the demangler."
 msgstr ""
 
-#: dwarf2read.c:26173
+#: dwarf2read.c:26182
 msgid "Set whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:26174
+#: dwarf2read.c:26183
 msgid "Show whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:26175
+#: dwarf2read.c:26184
 msgid ""
 "When enabled, deprecated .gdb_index sections are used anyway.\n"
 "Normally they are ignored either because of a missing feature or\n"
@@ -12455,15 +12464,15 @@ msgstr ""
 msgid "Cannot find thread-local variables on this target"
 msgstr ""
 
-#: f-exp.y:760 m2-exp.y:687
+#: f-exp.y:772 m2-exp.y:687
 msgid "Overflow on numeric constant."
 msgstr ""
 
-#: f-exp.y:822 f-exp.y:828
+#: f-exp.y:834 f-exp.y:840
 msgid "kind value out of range"
 msgstr ""
 
-#: f-exp.y:889
+#: f-exp.y:901
 #, possible-c-format
 msgid "unsupported kind %d for type %s"
 msgstr ""
@@ -12967,38 +12976,38 @@ msgstr ""
 msgid "Architecture debugging is %s.\n"
 msgstr ""
 
-#: gdbarch.c:729
+#: gdbarch.c:726
 #, possible-c-format
 msgid "verify_gdbarch: the following are invalid ...%s"
 msgstr ""
 
-#: gdbarch.c:5345
+#: gdbarch.c:5322
 msgid "gdbarch_architecture_names: multi-arch unknown"
 msgstr ""
 
-#: gdbarch.c:5371
+#: gdbarch.c:5348
 #, possible-c-format
 msgid "gdbarch: Attempt to register unknown architecture (%d)"
 msgstr ""
 
-#: gdbarch.c:5382
+#: gdbarch.c:5359
 #, possible-c-format
 msgid "gdbarch: Duplicate registration of architecture (%s)"
 msgstr ""
 
-#: gdbarch.c:5577
+#: gdbarch.c:5554
 msgid "Set architecture debugging."
 msgstr ""
 
-#: gdbarch.c:5578
+#: gdbarch.c:5555
 msgid "Show architecture debugging."
 msgstr ""
 
-#: gdbarch.c:5579
+#: gdbarch.c:5556
 msgid "When non-zero, architecture debugging is enabled."
 msgstr ""
 
-#: gdbarch-selftests.c:77 regcache.c:1526 regcache.c:1693
+#: gdbarch-selftests.c:77 regcache.c:1526 regcache.c:1694
 msgid "target already pushed"
 msgstr ""
 
@@ -13545,67 +13554,67 @@ msgstr ""
 msgid "Unknown address space specifier: \"%s\""
 msgstr ""
 
-#: gdbtypes.c:1544
+#: gdbtypes.c:1547
 #, possible-c-format
 msgid "Invalid anonymous type %s [in module %s], GCC PR debug/47510 bug?"
 msgstr ""
 
-#: gdbtypes.c:1567
+#: gdbtypes.c:1570
 #, possible-c-format
 msgid "No type named %s."
 msgstr ""
 
-#: gdbtypes.c:1609 objc-lang.c:96
+#: gdbtypes.c:1612 objc-lang.c:96
 #, possible-c-format
 msgid "No struct type named %s."
 msgstr ""
 
-#: gdbtypes.c:1613 gdbtypes.c:1688 objc-lang.c:103
+#: gdbtypes.c:1616 gdbtypes.c:1691 objc-lang.c:103
 #, possible-c-format
 msgid "This context has class, union or enum %s, not a struct."
 msgstr ""
 
-#: gdbtypes.c:1631
+#: gdbtypes.c:1634
 #, possible-c-format
 msgid "No union type named %s."
 msgstr ""
 
 #. If we get here, it's not a union.
-#: gdbtypes.c:1639
+#: gdbtypes.c:1642
 #, possible-c-format
 msgid "This context has class, struct or enum %s, not a union."
 msgstr ""
 
-#: gdbtypes.c:1654
+#: gdbtypes.c:1657
 #, possible-c-format
 msgid "No enum type named %s."
 msgstr ""
 
-#: gdbtypes.c:1658
+#: gdbtypes.c:1661
 #, possible-c-format
 msgid "This context has class, struct or union %s, not an enum."
 msgstr ""
 
-#: gdbtypes.c:1684
+#: gdbtypes.c:1687
 #, possible-c-format
 msgid "No template type named %s."
 msgstr ""
 
-#: gdbtypes.c:1714
+#: gdbtypes.c:1717
 #, possible-c-format
 msgid "Type %s is not a structure or union type."
 msgstr ""
 
-#: gdbtypes.c:1750
+#: gdbtypes.c:1753
 #, possible-c-format
 msgid "Type %s has no component named %s."
 msgstr ""
 
-#: gdbtypes.c:1915
+#: gdbtypes.c:1918
 msgid "stub type has NULL name"
 msgstr ""
 
-#: gdbtypes.c:2073
+#: gdbtypes.c:2076
 msgid ""
 "bit strides that are not a multiple of the byte size are currently not "
 "supported"
@@ -13614,80 +13623,80 @@ msgstr ""
 #. Could be a bug in our code, but it could also happen
 #. if the DWARF info is not correct.  Issue a warning,
 #. and assume no byte/bit stride (leave bit_stride = 0).
-#: gdbtypes.c:2155
+#: gdbtypes.c:2158
 #, possible-c-format
 msgid "cannot determine array stride for type %s"
 msgstr ""
 
-#: gdbtypes.c:2245
+#: gdbtypes.c:2248
 msgid "Cannot determine struct field location (invalid location kind)"
 msgstr ""
 
-#: gdbtypes.c:2697
+#: gdbtypes.c:2700
 #, possible-c-format
 msgid "Internal: Cannot demangle mangled name `%s'."
 msgstr ""
 
-#: gdbtypes.c:3758
+#: gdbtypes.c:3788
 #, possible-c-format
 msgid "Unsupported field kind %d by check_types_equal"
 msgstr ""
 
-#: gdbtypes.c:4428
+#: gdbtypes.c:4458
 #, possible-c-format
 msgid ") length %d\n"
 msgstr ""
 
-#: gdbtypes.c:4577
+#: gdbtypes.c:4607
 msgid " <same as already seen type>\n"
 msgstr ""
 
-#: gdbtypes.c:5024
+#: gdbtypes.c:5054
 #, possible-c-format
 msgid "Unexpected type field location kind: %d"
 msgstr ""
 
-#: gdbtypes.c:5669
+#: gdbtypes.c:5699
 msgid "Set debugging of C++ overloading."
 msgstr ""
 
-#: gdbtypes.c:5670
+#: gdbtypes.c:5700
 msgid "Show debugging of C++ overloading."
 msgstr ""
 
-#: gdbtypes.c:5671
+#: gdbtypes.c:5701
 msgid "When enabled, ranking of the functions is displayed."
 msgstr ""
 
-#: gdbtypes.c:5680
+#: gdbtypes.c:5710
 msgid ""
 "Set resolution of opaque struct/class/union types (if set before loading "
 "symbols)."
 msgstr ""
 
-#: gdbtypes.c:5682
+#: gdbtypes.c:5712
 msgid ""
 "Show resolution of opaque struct/class/union types (if set before loading "
 "symbols)."
 msgstr ""
 
-#: gdbtypes.c:5691
+#: gdbtypes.c:5721
 msgid "Set strict type checking."
 msgstr ""
 
-#: gdbtypes.c:5692
+#: gdbtypes.c:5722
 msgid "Show strict type checking."
 msgstr ""
 
 #. * A helper macro that returns the name of a type or "unnamed type"
 #. if the type has no name.
-#: gdbtypes.h:1601
+#: gdbtypes.h:1600
 msgid "<unnamed type>"
 msgstr ""
 
 #. * A helper macro that returns the name of an error type.  If the
 #. type has a name, it is used; otherwise, a default is used.
-#: gdbtypes.h:1607
+#: gdbtypes.h:1606
 msgid "<error type>"
 msgstr ""
 
@@ -14341,16 +14350,17 @@ msgstr ""
 msgid "Unknown function in `unsafe' package: %s"
 msgstr ""
 
-#: go-valprint.c:59
+#: go-valprint.c:60
 msgid "Unable to read string address"
 msgstr ""
 
-#: go-valprint.c:63
+#: go-valprint.c:64
 msgid "Unable to read string length"
 msgstr ""
 
-#: go-valprint.c:74
-msgid "<invalid length: "
+#: go-valprint.c:75
+#, possible-c-format
+msgid "<invalid length: %ps>"
 msgstr ""
 
 #: guile/scm-symbol.c:275
@@ -20275,6 +20285,10 @@ msgstr ""
 msgid "-symbol-list-lines: Unknown source file name."
 msgstr ""
 
+#: mi/mi-symbol-cmds.c:180
+msgid "invalid value for --max-results argument"
+msgstr ""
+
 #: mi/mi-cmd-target.c:40
 msgid "-target-file-get: Usage: REMOTE_FILE LOCAL_FILE"
 msgstr ""
@@ -20405,7 +20419,7 @@ msgstr ""
 msgid "-var-set-update-range: Usage: VAROBJ FROM TO"
 msgstr ""
 
-#: mi/mi-cmds.c:275
+#: mi/mi-cmds.c:279
 #, possible-c-format
 msgid "command `%s' appears to be duplicated"
 msgstr ""
@@ -24509,7 +24523,7 @@ msgstr ""
 msgid "Register cache flushed.\n"
 msgstr ""
 
-#: regcache.c:1809
+#: regcache.c:1810
 msgid "Force gdb to flush its register cache (maintainer command)."
 msgstr ""
 
@@ -29592,129 +29606,129 @@ msgstr ""
 msgid "Source files for which symbols will be read in on demand:\n"
 msgstr ""
 
-#: symtab.c:4809
+#: symtab.c:4854
 #, possible-c-format
 msgid ""
 "\n"
 "File %ps:\n"
 msgstr ""
 
-#: symtab.c:4845
+#: symtab.c:4890
 #, possible-c-format
 msgid "%ps  %ps\n"
 msgstr ""
 
-#: symtab.c:4881
+#: symtab.c:4926
 #, possible-c-format
 msgid ""
 "All %ss matching regular expression \"%s\" with type matching regular "
 "expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4885
+#: symtab.c:4930
 #, possible-c-format
 msgid "All %ss matching regular expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4892
+#: symtab.c:4937
 #, possible-c-format
 msgid "All defined %ss with type matching regular expression \"%s\" :\n"
 msgstr ""
 
-#: symtab.c:4896
+#: symtab.c:4941
 #, possible-c-format
 msgid "All defined %ss:\n"
 msgstr ""
 
-#: symtab.c:4909
+#: symtab.c:4954
 msgid ""
 "\n"
 "Non-debugging symbols:\n"
 msgstr ""
 
-#: symtab.c:6421
+#: symtab.c:6466
 msgid "All variables in all modules:"
 msgstr ""
 
-#: symtab.c:6422
+#: symtab.c:6467
 msgid "All functions in all modules:"
 msgstr ""
 
-#: symtab.c:6426
+#: symtab.c:6471
 #, possible-c-format
 msgid "All variables matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6428
+#: symtab.c:6473
 #, possible-c-format
 msgid "All functions matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6437
+#: symtab.c:6482
 #, possible-c-format
 msgid ""
 "All variables with type matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6439
+#: symtab.c:6484
 #, possible-c-format
 msgid ""
 "All functions with type matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6445
+#: symtab.c:6490
 #, possible-c-format
 msgid ""
 "All variables matching regular expression \"%s\",\n"
 "\twith type matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6448
+#: symtab.c:6493
 #, possible-c-format
 msgid ""
 "All functions matching regular expression \"%s\",\n"
 "\twith type matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6461
+#: symtab.c:6506
 #, possible-c-format
 msgid "All variables in all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6463
+#: symtab.c:6508
 #, possible-c-format
 msgid "All functions in all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6469
+#: symtab.c:6514
 #, possible-c-format
 msgid ""
 "All variables matching regular expression \"%s\",\n"
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6472
+#: symtab.c:6517
 #, possible-c-format
 msgid ""
 "All functions matching regular expression \"%s\",\n"
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6482
+#: symtab.c:6527
 #, possible-c-format
 msgid ""
 "All variables with type matching regular expression \"%s\"\n"
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6485
+#: symtab.c:6530
 #, possible-c-format
 msgid ""
 "All functions with type matching regular expression \"%s\"\n"
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6492
+#: symtab.c:6537
 #, possible-c-format
 msgid ""
 "All variables matching regular expression \"%s\",\n"
@@ -29722,7 +29736,7 @@ msgid ""
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6496
+#: symtab.c:6541
 #, possible-c-format
 msgid ""
 "All functions matching regular expression \"%s\",\n"
@@ -29730,41 +29744,41 @@ msgid ""
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6535
+#: symtab.c:6580
 #, possible-c-format
 msgid "Module \"%s\":\n"
 msgstr ""
 
-#: symtab.c:6657
+#: symtab.c:6702
 msgid ""
 "All global and static variable names or those matching REGEXPs.\n"
 "Usage: info variables [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the global and static variables.\n"
 msgstr ""
 
-#: symtab.c:6661 symtab.c:6671
+#: symtab.c:6706 symtab.c:6716
 msgid "global and static variables"
 msgstr ""
 
-#: symtab.c:6667
+#: symtab.c:6712
 msgid ""
 "All global and static variable names, or those matching REGEXPs.\n"
 "Usage: whereis [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the global and static variables.\n"
 msgstr ""
 
-#: symtab.c:6677
+#: symtab.c:6722
 msgid ""
 "All function names or those matching REGEXPs.\n"
 "Usage: info functions [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the functions.\n"
 msgstr ""
 
-#: symtab.c:6681
+#: symtab.c:6726
 msgid "functions"
 msgstr ""
 
-#: symtab.c:6685
+#: symtab.c:6730
 msgid ""
 "All type names, or those matching REGEXP.\n"
 "Usage: info types [-q] [REGEXP]\n"
@@ -29772,7 +29786,7 @@ msgid ""
 "REGEXP is given.  The optional flag -q disables printing of headers."
 msgstr ""
 
-#: symtab.c:6695
+#: symtab.c:6740
 msgid ""
 "All source files in the program or those matching REGEXP.\n"
 "Usage: info sources [OPTION]... [REGEXP]\n"
@@ -29782,15 +29796,15 @@ msgid ""
 "%OPTIONS%"
 msgstr ""
 
-#: symtab.c:6708
+#: symtab.c:6753
 msgid "All module names, or those matching REGEXP."
 msgstr ""
 
-#: symtab.c:6711
+#: symtab.c:6756
 msgid "Print information about modules."
 msgstr ""
 
-#: symtab.c:6716
+#: symtab.c:6761
 msgid ""
 "Display functions arranged by modules.\n"
 "Usage: info module functions [-q] [-m MODREGEXP] [-t TYPEREGEXP] [REGEXP]\n"
@@ -29806,7 +29820,7 @@ msgid ""
 "The -q flag suppresses printing some header information."
 msgstr ""
 
-#: symtab.c:6733
+#: symtab.c:6778
 msgid ""
 "Display variables arranged by modules.\n"
 "Usage: info module variables [-q] [-m MODREGEXP] [-t TYPEREGEXP] [REGEXP]\n"
@@ -29822,32 +29836,32 @@ msgid ""
 "The -q flag suppresses printing some header information."
 msgstr ""
 
-#: symtab.c:6751
+#: symtab.c:6796
 msgid "Set a breakpoint for all functions matching REGEXP."
 msgstr ""
 
-#: symtab.c:6755
+#: symtab.c:6800
 msgid "Set how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6756
+#: symtab.c:6801
 msgid "Show how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6757
+#: symtab.c:6802
 msgid ""
 "Valid values are \"ask\", \"all\", \"cancel\", and the default is \"all\"."
 msgstr ""
 
-#: symtab.c:6762
+#: symtab.c:6807
 msgid "Set whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6763
+#: symtab.c:6808
 msgid "Show whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6764
+#: symtab.c:6809
 msgid ""
 "(A \"base name\" is the name of a file with the directory part removed.\n"
 "Example: The base name of \"/home/user/hello.c\" is \"hello.c\".)\n"
@@ -29858,60 +29872,60 @@ msgid ""
 "one base name, and gdb will do file name comparisons more efficiently."
 msgstr ""
 
-#: symtab.c:6776
+#: symtab.c:6821
 msgid "Set debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6777
+#: symtab.c:6822
 msgid "Show debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6777
+#: symtab.c:6822
 msgid ""
 "When enabled (non-zero), debugging messages are printed when building\n"
 "symbol tables.  A value of 1 (one) normally provides enough information.\n"
 "A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: symtab.c:6786
+#: symtab.c:6831
 msgid "Set debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6787
+#: symtab.c:6832
 msgid "Show debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6788
+#: symtab.c:6833
 msgid "When enabled (non-zero), symbol lookups are logged."
 msgstr ""
 
-#: symtab.c:6795
+#: symtab.c:6840
 msgid "Set the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6796
+#: symtab.c:6841
 msgid "Show the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6796
+#: symtab.c:6841
 msgid ""
 "The size of the symbol cache.\n"
 "If zero then the symbol cache is disabled."
 msgstr ""
 
-#: symtab.c:6804
+#: symtab.c:6849
 msgid "Dump the symbol cache for each program space."
 msgstr ""
 
-#: symtab.c:6809
+#: symtab.c:6854
 msgid "Print symbol cache statistics for each program space."
 msgstr ""
 
-#: symtab.c:6814
+#: symtab.c:6859
 msgid "Flush the symbol cache for each program space."
 msgstr ""
 
-#: symtab.h:1335
+#: symtab.h:1336
 msgid "Section index is uninitialized"
 msgstr ""
 
@@ -33423,6 +33437,11 @@ msgstr ""
 msgid " <repeats %u times>"
 msgstr ""
 
+#: valprint.c:2900
+#, possible-c-format
+msgid "<error: %ps>"
+msgstr ""
+
 #: valprint.c:2914
 #, possible-c-format
 msgid "Maximum print depth is %s.\n"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/p-valprint.c ./gdb/p-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/p-valprint.c	2019-12-04 01:50:06.000000000 +0000
+++ ./gdb/p-valprint.c	2019-12-05 01:49:57.000000000 +0000
@@ -865,9 +865,9 @@ pascal_object_print_static_field (struct
 	{
 	  if (value_address (val) == first_dont_print[i])
 	    {
-	      fputs_filtered ("\
-<same as static member of an already seen type>",
-			      stream);
+	      fputs_styled (_("\
+<same as static member of an already seen type>"),
+			    metadata_style.style (), stream);
 	      return;
 	    }
 	}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/regcache.c ./gdb/regcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/regcache.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/regcache.c	2019-12-05 01:49:57.000000000 +0000
@@ -1535,6 +1535,7 @@ cooked_read_test (struct gdbarch *gdbarc
   mock_inferior.gdbarch = gdbarch;
   mock_inferior.aspace = &mock_aspace;
   thread_info mock_thread (&mock_inferior, mock_ptid);
+  mock_inferior.thread_list = &mock_thread;
 
   /* Add the mock inferior to the inferior list so that look ups by
      target+ptid can find it.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/symtab.c ./gdb/symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/symtab.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/symtab.c	2019-12-05 01:49:57.000000000 +0000
@@ -4383,8 +4383,8 @@ file_matches (const char *file, const st
   return false;
 }
 
-/* Helper function for sort_search_symbols_remove_dups and qsort.  Can only
-   sort symbols, not minimal symbols.  */
+/* Helper function for std::sort on symbol_search objects.  Can only sort
+   symbols, not minimal symbols.  */
 
 int
 symbol_search::compare_search_syms (const symbol_search &sym_a,
@@ -4445,15 +4445,233 @@ treg_matches_sym_type_name (const compil
   return treg.exec (printed_sym_type_name.c_str (), 0, NULL, 0) == 0;
 }
 
+/* See symtab.h.  */
 
-/* Sort the symbols in RESULT and remove duplicates.  */
+bool
+global_symbol_searcher::is_suitable_msymbol
+	(const enum search_domain kind, const minimal_symbol *msymbol)
+{
+  switch (MSYMBOL_TYPE (msymbol))
+    {
+    case mst_data:
+    case mst_bss:
+    case mst_file_data:
+    case mst_file_bss:
+      return kind == VARIABLES_DOMAIN;
+    case mst_text:
+    case mst_file_text:
+    case mst_solib_trampoline:
+    case mst_text_gnu_ifunc:
+      return kind == FUNCTIONS_DOMAIN;
+    default:
+      return false;
+    }
+}
 
-static void
-sort_search_symbols_remove_dups (std::vector<symbol_search> *result)
+/* See symtab.h.  */
+
+bool
+global_symbol_searcher::expand_symtabs
+	(objfile *objfile, const gdb::optional<compiled_regex> &preg) const
+{
+  enum search_domain kind = m_kind;
+  bool found_msymbol = false;
+
+  if (objfile->sf)
+    objfile->sf->qf->expand_symtabs_matching
+      (objfile,
+       [&] (const char *filename, bool basenames)
+       {
+	 return file_matches (filename, filenames, basenames);
+       },
+       lookup_name_info::match_any (),
+       [&] (const char *symname)
+       {
+	 return (!preg.has_value ()
+		 || preg->exec (symname, 0, NULL, 0) == 0);
+       },
+       NULL,
+       kind);
+
+  /* Here, we search through the minimal symbol tables for functions and
+     variables that match, and force their symbols to be read.  This is in
+     particular necessary for demangled variable names, which are no longer
+     put into the partial symbol tables.  The symbol will then be found
+     during the scan of symtabs later.
+
+     For functions, find_pc_symtab should succeed if we have debug info for
+     the function, for variables we have to call
+     lookup_symbol_in_objfile_from_linkage_name to determine if the
+     variable has debug info.  If the lookup fails, set found_msymbol so
+     that we will rescan to print any matching symbols without debug info.
+     We only search the objfile the msymbol came from, we no longer search
+     all objfiles.  In large programs (1000s of shared libs) searching all
+     objfiles is not worth the pain.  */
+  if (filenames.empty ()
+      && (kind == VARIABLES_DOMAIN || kind == FUNCTIONS_DOMAIN))
+    {
+      for (minimal_symbol *msymbol : objfile->msymbols ())
+	{
+	  QUIT;
+
+	  if (msymbol->created_by_gdb)
+	    continue;
+
+	  if (is_suitable_msymbol (kind, msymbol))
+	    {
+	      if (!preg.has_value ()
+		  || preg->exec (msymbol->natural_name (), 0,
+				 NULL, 0) == 0)
+		{
+		  /* An important side-effect of these lookup functions is
+		     to expand the symbol table if msymbol is found, later
+		     in the process we will add matching symbols or
+		     msymbols to the results list, and that requires that
+		     the symbols tables are expanded.  */
+		  if (kind == FUNCTIONS_DOMAIN
+		      ? (find_pc_compunit_symtab
+			 (MSYMBOL_VALUE_ADDRESS (objfile, msymbol))
+			 == NULL)
+		      : (lookup_symbol_in_objfile_from_linkage_name
+			 (objfile, msymbol->linkage_name (),
+			  VAR_DOMAIN)
+			 .symbol == NULL))
+		    found_msymbol = true;
+		}
+	    }
+	}
+    }
+
+  return found_msymbol;
+}
+
+/* See symtab.h.  */
+
+bool
+global_symbol_searcher::add_matching_symbols
+	(objfile *objfile,
+	 const gdb::optional<compiled_regex> &preg,
+	 const gdb::optional<compiled_regex> &treg,
+	 std::set<symbol_search> *result_set) const
 {
-  std::sort (result->begin (), result->end ());
-  result->erase (std::unique (result->begin (), result->end ()),
-		 result->end ());
+  enum search_domain kind = m_kind;
+
+  /* Add matching symbols (if not already present).  */
+  for (compunit_symtab *cust : objfile->compunits ())
+    {
+      const struct blockvector *bv  = COMPUNIT_BLOCKVECTOR (cust);
+
+      for (block_enum block : { GLOBAL_BLOCK, STATIC_BLOCK })
+	{
+	  struct block_iterator iter;
+	  struct symbol *sym;
+	  const struct block *b = BLOCKVECTOR_BLOCK (bv, block);
+
+	  ALL_BLOCK_SYMBOLS (b, iter, sym)
+	    {
+	      struct symtab *real_symtab = symbol_symtab (sym);
+
+	      QUIT;
+
+	      /* Check first sole REAL_SYMTAB->FILENAME.  It does
+		 not need to be a substring of symtab_to_fullname as
+		 it may contain "./" etc.  */
+	      if ((file_matches (real_symtab->filename, filenames, false)
+		   || ((basenames_may_differ
+			|| file_matches (lbasename (real_symtab->filename),
+					 filenames, true))
+		       && file_matches (symtab_to_fullname (real_symtab),
+					filenames, false)))
+		  && ((!preg.has_value ()
+		       || preg->exec (sym->natural_name (), 0,
+				      NULL, 0) == 0)
+		      && ((kind == VARIABLES_DOMAIN
+			   && SYMBOL_CLASS (sym) != LOC_TYPEDEF
+			   && SYMBOL_CLASS (sym) != LOC_UNRESOLVED
+			   && SYMBOL_CLASS (sym) != LOC_BLOCK
+			   /* LOC_CONST can be used for more than
+			      just enums, e.g., c++ static const
+			      members.  We only want to skip enums
+			      here.  */
+			   && !(SYMBOL_CLASS (sym) == LOC_CONST
+				&& (TYPE_CODE (SYMBOL_TYPE (sym))
+				    == TYPE_CODE_ENUM))
+			   && (!treg.has_value ()
+			       || treg_matches_sym_type_name (*treg, sym)))
+			  || (kind == FUNCTIONS_DOMAIN
+			      && SYMBOL_CLASS (sym) == LOC_BLOCK
+			      && (!treg.has_value ()
+				  || treg_matches_sym_type_name (*treg,
+								 sym)))
+			  || (kind == TYPES_DOMAIN
+			      && SYMBOL_CLASS (sym) == LOC_TYPEDEF
+			      && SYMBOL_DOMAIN (sym) != MODULE_DOMAIN)
+			  || (kind == MODULES_DOMAIN
+			      && SYMBOL_DOMAIN (sym) == MODULE_DOMAIN
+			      && SYMBOL_LINE (sym) != 0))))
+		{
+		  if (result_set->size () < m_max_search_results)
+		    {
+		      /* Match, insert if not already in the results.  */
+		      symbol_search ss (block, sym);
+		      if (result_set->find (ss) == result_set->end ())
+			result_set->insert (ss);
+		    }
+		  else
+		    return false;
+		}
+	    }
+	}
+    }
+
+  return true;
+}
+
+/* See symtab.h.  */
+
+bool
+global_symbol_searcher::add_matching_msymbols
+	(objfile *objfile, const gdb::optional<compiled_regex> &preg,
+	 std::vector<symbol_search> *results) const
+{
+  enum search_domain kind = m_kind;
+
+  for (minimal_symbol *msymbol : objfile->msymbols ())
+    {
+      QUIT;
+
+      if (msymbol->created_by_gdb)
+	continue;
+
+      if (is_suitable_msymbol (kind, msymbol))
+	{
+	  if (!preg.has_value ()
+	      || preg->exec (msymbol->natural_name (), 0,
+			     NULL, 0) == 0)
+	    {
+	      /* For functions we can do a quick check of whether the
+		 symbol might be found via find_pc_symtab.  */
+	      if (kind != FUNCTIONS_DOMAIN
+		  || (find_pc_compunit_symtab
+		      (MSYMBOL_VALUE_ADDRESS (objfile, msymbol))
+		      == NULL))
+		{
+		  if (lookup_symbol_in_objfile_from_linkage_name
+		      (objfile, msymbol->linkage_name (),
+		       VAR_DOMAIN).symbol == NULL)
+		    {
+		      /* Matching msymbol, add it to the results list.  */
+		      if (results->size () < m_max_search_results)
+			results->emplace_back (GLOBAL_BLOCK, msymbol, objfile);
+		      else
+			return false;
+		    }
+		}
+	    }
+	}
+    }
+
+  return true;
 }
 
 /* See symtab.h.  */
@@ -4461,35 +4679,11 @@ sort_search_symbols_remove_dups (std::ve
 std::vector<symbol_search>
 global_symbol_searcher::search () const
 {
-  const struct blockvector *bv;
-  const struct block *b;
-  int i = 0;
-  struct block_iterator iter;
-  struct symbol *sym;
-  int found_misc = 0;
-  static const enum minimal_symbol_type types[]
-    = {mst_data, mst_text, mst_unknown};
-  static const enum minimal_symbol_type types2[]
-    = {mst_bss, mst_file_text, mst_unknown};
-  static const enum minimal_symbol_type types3[]
-    = {mst_file_data, mst_solib_trampoline, mst_unknown};
-  static const enum minimal_symbol_type types4[]
-    = {mst_file_bss, mst_text_gnu_ifunc, mst_unknown};
-  enum minimal_symbol_type ourtype;
-  enum minimal_symbol_type ourtype2;
-  enum minimal_symbol_type ourtype3;
-  enum minimal_symbol_type ourtype4;
-  std::vector<symbol_search> result;
   gdb::optional<compiled_regex> preg;
   gdb::optional<compiled_regex> treg;
 
   gdb_assert (m_kind != ALL_DOMAIN);
 
-  ourtype = types[m_kind];
-  ourtype2 = types2[m_kind];
-  ourtype3 = types3[m_kind];
-  ourtype4 = types4[m_kind];
-
   if (m_symbol_name_regexp != NULL)
     {
       const char *symbol_name_regexp = m_symbol_name_regexp;
@@ -4542,187 +4736,38 @@ global_symbol_searcher::search () const
 		    _("Invalid regexp"));
     }
 
-  /* Search through the partial symtabs *first* for all symbols matching
-     the m_symbol_name_regexp (in preg).  That way we don't have to
-     reproduce all of the machinery below.  */
-  expand_symtabs_matching ([&] (const char *filename, bool basenames)
-			   {
-			     return file_matches (filename, filenames,
-						  basenames);
-			   },
-			   lookup_name_info::match_any (),
-			   [&] (const char *symname)
-			   {
-			     return (!preg.has_value ()
-				     || preg->exec (symname,
-						    0, NULL, 0) == 0);
-			   },
-			   NULL,
-			   m_kind);
-
-  /* Here, we search through the minimal symbol tables for functions
-     and variables that match, and force their symbols to be read.
-     This is in particular necessary for demangled variable names,
-     which are no longer put into the partial symbol tables.
-     The symbol will then be found during the scan of symtabs below.
-
-     For functions, find_pc_symtab should succeed if we have debug info
-     for the function, for variables we have to call
-     lookup_symbol_in_objfile_from_linkage_name to determine if the variable
-     has debug info.
-     If the lookup fails, set found_misc so that we will rescan to print
-     any matching symbols without debug info.
-     We only search the objfile the msymbol came from, we no longer search
-     all objfiles.  In large programs (1000s of shared libs) searching all
-     objfiles is not worth the pain.  */
-
-  if (filenames.empty () && (m_kind == VARIABLES_DOMAIN
-			     || m_kind == FUNCTIONS_DOMAIN))
-    {
-      for (objfile *objfile : current_program_space->objfiles ())
-	{
-	  for (minimal_symbol *msymbol : objfile->msymbols ())
-	    {
-	      QUIT;
-
-	      if (msymbol->created_by_gdb)
-		continue;
-
-	      if (MSYMBOL_TYPE (msymbol) == ourtype
-		  || MSYMBOL_TYPE (msymbol) == ourtype2
-		  || MSYMBOL_TYPE (msymbol) == ourtype3
-		  || MSYMBOL_TYPE (msymbol) == ourtype4)
-		{
-		  if (!preg.has_value ()
-		      || preg->exec (msymbol->natural_name (), 0,
-				     NULL, 0) == 0)
-		    {
-		      /* Note: An important side-effect of these
-			 lookup functions is to expand the symbol
-			 table if msymbol is found, for the benefit of
-			 the next loop on compunits.  */
-		      if (m_kind == FUNCTIONS_DOMAIN
-			  ? (find_pc_compunit_symtab
-			     (MSYMBOL_VALUE_ADDRESS (objfile, msymbol))
-			     == NULL)
-			  : (lookup_symbol_in_objfile_from_linkage_name
-			     (objfile, msymbol->linkage_name (), VAR_DOMAIN)
-			     .symbol == NULL))
-			found_misc = 1;
-		    }
-		}
-	    }
-	}
-    }
-
+  bool found_msymbol = false;
+  std::set<symbol_search> result_set;
   for (objfile *objfile : current_program_space->objfiles ())
     {
-      for (compunit_symtab *cust : objfile->compunits ())
-	{
-	  bv = COMPUNIT_BLOCKVECTOR (cust);
-	  for (i = GLOBAL_BLOCK; i <= STATIC_BLOCK; i++)
-	    {
-	      b = BLOCKVECTOR_BLOCK (bv, i);
-	      ALL_BLOCK_SYMBOLS (b, iter, sym)
-		{
-		  struct symtab *real_symtab = symbol_symtab (sym);
-
-		  QUIT;
-
-		  /* Check first sole REAL_SYMTAB->FILENAME.  It does
-		     not need to be a substring of symtab_to_fullname as
-		     it may contain "./" etc.  */
-		  if ((file_matches (real_symtab->filename, filenames, false)
-		       || ((basenames_may_differ
-			    || file_matches (lbasename (real_symtab->filename),
-					     filenames, true))
-			   && file_matches (symtab_to_fullname (real_symtab),
-					    filenames, false)))
-		      && ((!preg.has_value ()
-			   || preg->exec (sym->natural_name (), 0,
-					  NULL, 0) == 0)
-			  && ((m_kind == VARIABLES_DOMAIN
-			       && SYMBOL_CLASS (sym) != LOC_TYPEDEF
-			       && SYMBOL_CLASS (sym) != LOC_UNRESOLVED
-			       && SYMBOL_CLASS (sym) != LOC_BLOCK
-			       /* LOC_CONST can be used for more than
-				  just enums, e.g., c++ static const
-				  members.  We only want to skip enums
-				  here.  */
-			       && !(SYMBOL_CLASS (sym) == LOC_CONST
-				    && (TYPE_CODE (SYMBOL_TYPE (sym))
-					== TYPE_CODE_ENUM))
-			       && (!treg.has_value ()
-				   || treg_matches_sym_type_name (*treg, sym)))
-			      || (m_kind == FUNCTIONS_DOMAIN
-				  && SYMBOL_CLASS (sym) == LOC_BLOCK
-				  && (!treg.has_value ()
-				      || treg_matches_sym_type_name (*treg,
-								     sym)))
-			      || (m_kind == TYPES_DOMAIN
-				  && SYMBOL_CLASS (sym) == LOC_TYPEDEF
-				  && SYMBOL_DOMAIN (sym) != MODULE_DOMAIN)
-			      || (m_kind == MODULES_DOMAIN
-				  && SYMBOL_DOMAIN (sym) == MODULE_DOMAIN
-				  && SYMBOL_LINE (sym) != 0))))
-		    {
-		      /* match */
-		      result.emplace_back (i, sym);
-		    }
-		}
-	    }
-	}
+      /* Expand symtabs within objfile that possibly contain matching
+	 symbols.  */
+      found_msymbol |= expand_symtabs (objfile, preg);
+
+      /* Find matching symbols within OBJFILE and add them in to the
+	 RESULT_SET set.  Use a set here so that we can easily detect
+	 duplicates as we go, and can therefore track how many unique
+	 matches we have found so far.  */
+      if (!add_matching_symbols (objfile, preg, treg, &result_set))
+	break;
     }
 
-  if (!result.empty ())
-    sort_search_symbols_remove_dups (&result);
+  /* Convert the result set into a sorted result list, as std::set is
+     defined to be sorted then no explicit call to std::sort is needed.  */
+  std::vector<symbol_search> result (result_set.begin (), result_set.end ());
 
   /* If there are no debug symbols, then add matching minsyms.  But if the
-     user wants to see symbols matching a type m_symbol_type_regexp, then
-     never give a minimal symbol, as we assume that a minimal symbol does
-     not have a type.  */
-
-  if ((found_misc || (filenames.empty () && m_kind != FUNCTIONS_DOMAIN))
+     user wants to see symbols matching a type regexp, then never give a
+     minimal symbol, as we assume that a minimal symbol does not have a
+     type.  */
+  if ((found_msymbol || (filenames.empty () && m_kind == VARIABLES_DOMAIN))
       && !m_exclude_minsyms
       && !treg.has_value ())
     {
+      gdb_assert (m_kind == VARIABLES_DOMAIN || m_kind == FUNCTIONS_DOMAIN);
       for (objfile *objfile : current_program_space->objfiles ())
-	{
-	  for (minimal_symbol *msymbol : objfile->msymbols ())
-	    {
-	      QUIT;
-
-	      if (msymbol->created_by_gdb)
-		continue;
-
-	      if (MSYMBOL_TYPE (msymbol) == ourtype
-		  || MSYMBOL_TYPE (msymbol) == ourtype2
-		  || MSYMBOL_TYPE (msymbol) == ourtype3
-		  || MSYMBOL_TYPE (msymbol) == ourtype4)
-		{
-		  if (!preg.has_value ()
-		      || preg->exec (msymbol->natural_name (), 0,
-				     NULL, 0) == 0)
-		    {
-		      /* For functions we can do a quick check of whether the
-			 symbol might be found via find_pc_symtab.  */
-		      if (m_kind != FUNCTIONS_DOMAIN
-			  || (find_pc_compunit_symtab
-			      (MSYMBOL_VALUE_ADDRESS (objfile, msymbol))
-			      == NULL))
-			{
-			  if (lookup_symbol_in_objfile_from_linkage_name
-			      (objfile, msymbol->linkage_name (), VAR_DOMAIN)
-			      .symbol == NULL)
-			    {
-			      /* match */
-			      result.emplace_back (i, msymbol, objfile);
-			    }
-			}
-		    }
-		}
-	    }
-	}
+	if (!add_matching_msymbols (objfile, preg, &result))
+	  break;
     }
 
   return result;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/symtab.h ./gdb/symtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/symtab.h	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/symtab.h	2019-12-05 01:49:57.000000000 +0000
@@ -23,6 +23,7 @@
 #include <array>
 #include <vector>
 #include <string>
+#include <set>
 #include "gdbsupport/gdb_vecs.h"
 #include "gdbtypes.h"
 #include "gdb_obstack.h"
@@ -2092,6 +2093,12 @@ public:
     m_exclude_minsyms = exclude_minsyms;
   }
 
+  /* Set the maximum number of search results to be returned.  */
+  void set_max_search_results (size_t max_search_results)
+  {
+    m_max_search_results = max_search_results;
+  }
+
   /* Search the symbols from all objfiles in the current program space
      looking for matches as defined by the current state of this object.
 
@@ -2124,6 +2131,41 @@ private:
   /* When this flag is false then minsyms that match M_SYMBOL_REGEXP will
      be included in the results, otherwise they are excluded.  */
   bool m_exclude_minsyms = false;
+
+  /* Maximum number of search results.  We currently impose a hard limit
+     of SIZE_MAX, there is no "unlimited".  */
+  size_t m_max_search_results = SIZE_MAX;
+
+  /* Expand symtabs in OBJFILE that match PREG, are of type M_KIND.  Return
+     true if any msymbols were seen that we should later consider adding to
+     the results list.  */
+  bool expand_symtabs (objfile *objfile,
+		       const gdb::optional<compiled_regex> &preg) const;
+
+  /* Add symbols from symtabs in OBJFILE that match PREG, and TREG, and are
+     of type M_KIND, to the results set RESULTS_SET.  Return false if we
+     stop adding results early due to having already found too many results
+     (based on M_MAX_SEARCH_RESULTS limit), otherwise return true.
+     Returning true does not indicate that any results were added, just
+     that we didn't _not_ add a result due to reaching MAX_SEARCH_RESULTS.  */
+  bool add_matching_symbols (objfile *objfile,
+			     const gdb::optional<compiled_regex> &preg,
+			     const gdb::optional<compiled_regex> &treg,
+			     std::set<symbol_search> *result_set) const;
+
+  /* Add msymbols from OBJFILE that match PREG and M_KIND, to the results
+     vector RESULTS.  Return false if we stop adding results early due to
+     having already found too many results (based on max search results
+     limit M_MAX_SEARCH_RESULTS), otherwise return true.  Returning true
+     does not indicate that any results were added, just that we didn't
+     _not_ add a result due to reaching MAX_SEARCH_RESULTS.  */
+  bool add_matching_msymbols (objfile *objfile,
+			      const gdb::optional<compiled_regex> &preg,
+			      std::vector<symbol_search> *results) const;
+
+  /* Return true if MSYMBOL is of type KIND.  */
+  static bool is_suitable_msymbol (const enum search_domain kind,
+				   const minimal_symbol *msymbol);
 };
 
 /* When searching for Fortran symbols within modules (functions/variables)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/target-descriptions.c ./gdb/target-descriptions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/target-descriptions.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/target-descriptions.c	2019-12-05 01:49:57.000000000 +0000
@@ -224,7 +224,7 @@ make_gdb_type (struct gdbarch *gdbarch, 
 		 the total size of the structure.  */
 	      bitsize = f.end - f.start + 1;
 	      total_size = e->size * TARGET_CHAR_BIT;
-	      if (gdbarch_bits_big_endian (m_gdbarch))
+	      if (gdbarch_byte_order (m_gdbarch) == BFD_ENDIAN_BIG)
 		SET_FIELD_BITPOS (fld[0], total_size - f.start - bitsize);
 	      else
 		SET_FIELD_BITPOS (fld[0], f.start);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/ChangeLog	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2019-12-05 01:49:57.000000000 +0000
@@ -1,3 +1,46 @@
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* lib/gdb.exp (gdb_compile): Add -J compiler option when building
+	Fortran tests.
+	* gdb.mi/mi-fortran-modules.exp: Compile source files in correct
+	order.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/type-kinds.exp (test_cast_1_to_type_kind): Handle
+	casting to type with no kind specified.
+	(test_basic_parsing_of_type_kinds): Additional tests for types
+	with no kind specified, and add tests for single/double
+	precision/complex types.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.base/endianity.c (struct other) <x>: New field.
+	(main): Initialize it.
+	* gdb.base/endianity.exp: Update.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.ada/scalar_storage/storage.adb: New file.
+	* gdb.ada/scalar_storage/pck.adb: New file.
+	* gdb.ada/scalar_storage/pck.ads: New file.
+	* gdb.ada/scalar_storage.exp: New file.
+
+2019-12-04  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.base/endianity.c (struct otherendian) <f>: New field.
+	(main): Initialize it.
+	* gdb.base/endianity.exp: Update.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.mi/mi-sym-info.exp: Add tests for -max-results parameter.
+
+2019-12-04  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.mi/mi-fortran-modules.exp: Add additional tests for
+	-symbol-info-module-functions and -symbol-info-module-variables.
+
 2019-12-01  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.fortran/array-slices.exp: Add test for dynamic strings.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage/pck.adb ./gdb/testsuite/gdb.ada/scalar_storage/pck.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage/pck.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scalar_storage/pck.adb	2019-12-05 01:49:57.000000000 +0000
@@ -0,0 +1,21 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program 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 General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+package body Pck is
+   procedure Do_Nothing (A : System.Address) is
+   begin
+      null;
+   end Do_Nothing;
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage/pck.ads ./gdb/testsuite/gdb.ada/scalar_storage/pck.ads
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage/pck.ads	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scalar_storage/pck.ads	2019-12-05 01:49:57.000000000 +0000
@@ -0,0 +1,19 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program 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 General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with System;
+package Pck is
+   procedure Do_Nothing (A : System.Address);
+end Pck;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage/storage.adb ./gdb/testsuite/gdb.ada/scalar_storage/storage.adb
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage/storage.adb	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scalar_storage/storage.adb	2019-12-05 01:49:57.000000000 +0000
@@ -0,0 +1,47 @@
+--  Copyright 2019 Free Software Foundation, Inc.
+--
+--  This program is free software; you can redistribute it and/or modify
+--  it under the terms of the GNU General Public License as published by
+--  the Free Software Foundation; either version 3 of the License, or
+--  (at your option) any later version.
+--
+--  This program 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 General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License
+--  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+with Pck; use Pck;
+with System.Storage_Elements; use System.Storage_Elements;
+
+procedure Storage is
+   subtype Some_Range is Natural range 0..127;
+
+   type Rec is record
+      Value : Some_Range;
+   end record;
+   
+   for Rec use record
+      Value at 0 range 0..127;
+   end record;
+
+   type Rec_LE is new Rec;
+   for Rec_LE'Bit_Order use System.Low_Order_First;
+   for Rec_LE'Scalar_Storage_Order use System.Low_Order_First;
+
+   type Rec_BE is new Rec;
+   for Rec_BE'Bit_Order use System.High_Order_First;
+   for Rec_BE'Scalar_Storage_Order use System.High_Order_First;
+
+   V_LE : Rec_LE;
+   V_BE : Rec_BE;
+
+begin
+   V_LE.Value := 126;
+   V_BE.Value := 126;
+
+   Do_Nothing (V_LE'Address);  --  START
+   Do_Nothing (V_BE'Address);
+end Storage;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage.exp ./gdb/testsuite/gdb.ada/scalar_storage.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.ada/scalar_storage.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scalar_storage.exp	2019-12-05 01:49:57.000000000 +0000
@@ -0,0 +1,36 @@
+# Copyright 2019 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test that range types with scalar storage order are handled
+# properly.
+
+load_lib "ada.exp"
+
+standard_ada_testfile storage
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
+  return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "START" ${testdir}/storage.adb]
+if ![runto "storage.adb:$bp_location" ] then {
+  perror "Couldn't run ${testfile}"
+  return
+}
+
+gdb_test "print V_LE" "= \\(value => 126\\)"
+gdb_test "print V_BE" "= \\(value => 126\\)"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.base/endianity.c ./gdb/testsuite/gdb.base/endianity.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.base/endianity.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/gdb.base/endianity.c	2019-12-05 01:49:57.000000000 +0000
@@ -21,6 +21,10 @@ struct otherendian
 {
   int v;
   short w;
+  unsigned x : 3;
+  float f;
+  __complex__ float cplx;
+  double d;
 }
 #if defined __GNUC__ && (__GNUC__ >= 6)
 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
@@ -39,7 +43,7 @@ do_nothing (struct otherendian *c)
 int
 main (void)
 {
-  struct otherendian o = {3,2};
+  struct otherendian o = {3, 2, 7, 23.5, 1.25 + 7.25i, 75};
 
   do_nothing (&o); /* START */
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.base/endianity.exp ./gdb/testsuite/gdb.base/endianity.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.base/endianity.exp	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/gdb.base/endianity.exp	2019-12-05 01:49:57.000000000 +0000
@@ -25,10 +25,14 @@ if ![runto "endianity.c:$bp_location" ] 
   return -1
 }
 
-gdb_test "print o" "= {v = 3, w = 2}" "print o before assignment"
+gdb_test "print o" "= {v = 3, w = 2, x = 7, f = 23.5, cplx = 1.25 \\+ 7.25 \\* I, d = 75}" \
+    "print o before assignment"
 
 gdb_test "print o.v = 4" "= 4"
 gdb_test "print o.w = 3" "= 3"
+gdb_test "print o.x = 2" "= 2"
+gdb_test "print o.f = 1.5" "= 1.5"
+gdb_test "print o.d = -23.125" "= -23.125"
 
 # scalar_storage_order requires gcc >= 6
 if { ([test_compiler_info {gcc-[0-5]-*}] || ![test_compiler_info gcc*]) } {
@@ -37,4 +41,5 @@ if { ([test_compiler_info {gcc-[0-5]-*}]
 gdb_test "x/x &o.v" "0x04000000"
 gdb_test "x/xh &o.w" "0x0300"
 
-gdb_test "print o" "= {v = 4, w = 3}" "print o after assignment"
+gdb_test "print o" "= {v = 4, w = 3, x = 2, f = 1.5, cplx = 1.25 \\+ 7.25 \\* I, d = -23.125}" \
+    "print o after assignment"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.fortran/type-kinds.exp ./gdb/testsuite/gdb.fortran/type-kinds.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.fortran/type-kinds.exp	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/type-kinds.exp	2019-12-05 01:49:57.000000000 +0000
@@ -23,9 +23,15 @@ if { [skip_fortran_tests] } { continue }
 
 # Cast the value 1 to the type 'BASE_TYPE (kind=TYPE_KIND)'.  The
 # expected result of the cast is CAST_RESULT, and the size of the
-# value returned by the cast should be SIZE_RESULT.
+# value returned by the cast should be SIZE_RESULT.  If TYPE_KIND is
+# the empty string then the cast is done to just 'BASE_TYPE'.
 proc test_cast_1_to_type_kind {base_type type_kind cast_result size_result} {
-    set type_string "$base_type (kind=$type_kind)"
+    if { $type_kind != "" } {
+	set kind_string " (kind=$type_kind)"
+    } else {
+	set kind_string ""
+    }
+    set type_string "${base_type}${kind_string}"
     gdb_test "p (($type_string) 1)" " = $cast_result"
     gdb_test "p sizeof (($type_string) 1)" " = $size_result"
 }
@@ -34,21 +40,31 @@ proc test_cast_1_to_type_kind {base_type
 proc test_basic_parsing_of_type_kinds {} {
     test_cast_1_to_type_kind "character" "1" "1 '\\\\001'" "1"
 
+    test_cast_1_to_type_kind "complex" "" "\\(1,0\\)" "8"
     test_cast_1_to_type_kind "complex" "4" "\\(1,0\\)" "8"
     test_cast_1_to_type_kind "complex" "8" "\\(1,0\\)" "16"
     test_cast_1_to_type_kind "complex" "16" "\\(1,0\\)" "32"
 
+    test_cast_1_to_type_kind "real" "" "1" "4"
     test_cast_1_to_type_kind "real" "4" "1" "4"
     test_cast_1_to_type_kind "real" "8" "1" "8"
     test_cast_1_to_type_kind "real" "16" "1" "16"
 
+    test_cast_1_to_type_kind "logical" "" "\\.TRUE\\." "4"
     test_cast_1_to_type_kind "logical" "1" "\\.TRUE\\." "1"
     test_cast_1_to_type_kind "logical" "4" "\\.TRUE\\." "4"
     test_cast_1_to_type_kind "logical" "8" "\\.TRUE\\." "8"
 
+    test_cast_1_to_type_kind "integer" "" "1" "4"
     test_cast_1_to_type_kind "integer" "2" "1" "2"
     test_cast_1_to_type_kind "integer" "4" "1" "4"
     test_cast_1_to_type_kind "integer" "8" "1" "8"
+
+    test_cast_1_to_type_kind "double precision" "" "1" "8"
+    test_cast_1_to_type_kind "single precision" "" "1" "4"
+
+    test_cast_1_to_type_kind "double complex" "" "\\(1,0\\)" "16"
+    test_cast_1_to_type_kind "single complex" "" "\\(1,0\\)" "8"
 }
 
 proc test_parsing_invalid_type_kinds {} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.mi/mi-fortran-modules.exp ./gdb/testsuite/gdb.mi/mi-fortran-modules.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.mi/mi-fortran-modules.exp	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-fortran-modules.exp	2019-12-05 01:49:57.000000000 +0000
@@ -22,7 +22,7 @@ set MIFLAGS "-i=mi"
 standard_testfile "mi-fortran-modules.f90" "mi-fortran-modules-2.f90"
 
 if {[prepare_for_testing "failed to prepare" ${testfile} \
-	 [list $srcfile $srcfile2] {debug f90}]} {
+	 [list $srcfile2 $srcfile] {debug f90}]} {
     return -1
 }
 
@@ -45,7 +45,30 @@ mi_gdb_test "103-symbol-info-modules --n
     "103\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"41\",name=\"moduse\"\}\\\]\}\\\]\}" \
     "-symbol-info-modules --name moduse"
 
-
+mi_gdb_test "104-symbol-info-module-functions" \
+    [join \
+     [list \
+      "104\\^done,symbols=\\\[\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"mod1::check_all\",type=\"void \\(void\\)\",description=\"void mod1::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"30\",name=\"mod2::check_var_i\",type=\"void \\(void\\)\",description=\"void mod2::check_var_i\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"21\",name=\"mod3::check_all\",type=\"void \\(void\\)\",description=\"void mod3::check_all\\(void\\);\"\},\{line=\"27\",name=\"mod3::check_mod2\",type=\"void \\(void\\)\",description=\"void mod3::check_mod2\\(void\\);\"\}\\\]\}\\\]\}," \
+	  "\{module=\"modmany\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"35\",name=\"modmany::check_some\",type=\"void \\(void\\)\",description=\"void modmany::check_some\\(void\\);\"\}\\\]\}\\\]\},\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"44\",name=\"moduse::check_all\",type=\"void \\(void\\)\",description=\"void moduse::check_all\\(void\\);\"\},\{line=\"49\",name=\"moduse::check_var_x\",type=\"void \\(void\\)\",description=\"void moduse::check_var_x\\(void\\);\"\}\\\]\}\\\]\}\\\]" ] "" ] \
+    "-symbol-info-module-functions"
+
+mi_gdb_test "105-symbol-info-module-functions --name _all" \
+    "105\\^done,symbols=\\\[\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"mod1::check_all\",type=\"void \\(void\\)\",description=\"void mod1::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"21\",name=\"mod3::check_all\",type=\"void \\(void\\)\",description=\"void mod3::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"44\",name=\"moduse::check_all\",type=\"void \\(void\\)\",description=\"void moduse::check_all\\(void\\);\"\}\\\]\}\\\]\}\\\]" \
+    "-symbol-info-module-functions --name _all"
+
+mi_gdb_test "106-symbol-info-module-functions --module mod\[123\]" \
+    "106\\^done,symbols=\\\[\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"mod1::check_all\",type=\"void \\(void\\)\",description=\"void mod1::check_all\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"30\",name=\"mod2::check_var_i\",type=\"void \\(void\\)\",description=\"void mod2::check_var_i\\(void\\);\"\}\\\]\}\\\]\},\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"21\",name=\"mod3::check_all\",type=\"void \\(void\\)\",description=\"void mod3::check_all\\(void\\);\"\},\{line=\"27\",name=\"mod3::check_mod2\",type=\"void \\(void\\)\",description=\"void mod3::check_mod2\\(void\\);\"\}\\\]\}\\\]\}\\\]" \
+    "-symbol-info-module-functions --module mod\[123\]"
+
+set int4 [fortran_int4]
+
+mi_gdb_test "107-symbol-info-module-variables" \
+    [join \
+     [list \
+      "107\\^done,symbols=\\\[\{module=\"mod1\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"18\",name=\"mod1::var_const\",type=\"$int4\",description=\"$int4 mod1::var_const;\"\},\{line=\"17\",name=\"mod1::var_i\",type=\"$int4\",description=\"$int4 mod1::var_i;\"\}\\\]\}\\\]\},\{module=\"mod2\",files=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"28\",name=\"mod2::var_i\",type=\"$int4\",description=\"$int4 mod2::var_i;\"\}\\\]\}\\\]\}," \
+	  "\{module=\"mod3\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"18\",name=\"mod3::mod1\",type=\"$int4\",description=\"$int4 mod3::mod1;\"\},\{line=\"17\",name=\"mod3::mod2\",type=\"$int4\",description=\"$int4 mod3::mod2;\"\},\{line=\"19\",name=\"mod3::var_i\",type=\"$int4\",description=\"$int4 mod3::var_i;\"\}\\\]\}\\\]\},\{module=\"modmany\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"33\",name=\"modmany::var_a\",type=\"$int4\",description=\"$int4 modmany::var_a;\"\}," \
+	  "\{line=\"33\",name=\"modmany::var_b\",type=\"$int4\",description=\"$int4 modmany::var_b;\"\},\{line=\"33\",name=\"modmany::var_c\",type=\"$int4\",description=\"$int4 modmany::var_c;\"\},\{line=\"33\",name=\"modmany::var_i\",type=\"$int4\",description=\"$int4 modmany::var_i;\"\}\\\]\}\\\]\},\{module=\"moduse\",files=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"42\",name=\"moduse::var_x\",type=\"$int4\",description=\"$int4 moduse::var_x;\"\},\{line=\"42\",name=\"moduse::var_y\",type=\"$int4\",description=\"$int4 moduse::var_y;\"\}\\\]\}\\\]\}\\\]" ] "" ] \
+    "-symbol-info-module-variables"
 
 
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.mi/mi-sym-info.exp ./gdb/testsuite/gdb.mi/mi-sym-info.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/gdb.mi/mi-sym-info.exp	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-sym-info.exp	2019-12-05 01:49:57.000000000 +0000
@@ -127,3 +127,24 @@ set lineno2 [gdb_get_line_number "typede
 mi_gdb_test "120-symbol-info-types --name _int_" \
     "120\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"27\",name=\"my_int_t\"\}\\\]\},\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"23\",name=\"another_int_t\"\}\\\]\}\\\]\}" \
     "List all types matching _int_"
+
+# Test the --max-results parameter.
+mi_gdb_test "121-symbol-info-functions --max-results 0" \
+    "121\\^done,symbols=\{\}" \
+    "-symbol-info-functions --max-results 0"
+
+mi_gdb_test "122-symbol-info-functions --max-results 1" \
+    "122\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"39\",name=\"f3\",type=\"int \\(another_int_t\\)\",description=\"int f3\\(another_int_t\\);\"\}\\\]\}\\\]\}" \
+    "-symbol-info-functions --max-results 1"
+
+mi_gdb_test "123-symbol-info-functions --max-results 2" \
+    "123\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"33\",name=\"f2\",type=\"float \\(another_float_t\\)\",description=\"float f2\\(another_float_t\\);\"\},\{line=\"39\",name=\"f3\",type=\"int \\(another_int_t\\)\",description=\"int f3\\(another_int_t\\);\"\}\\\]\}\\\]\}" \
+    "-symbol-info-functions --max-results 2"
+
+mi_gdb_test "124-symbol-info-variables --max-results 3" \
+    "124\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"21\",name=\"global_f2\",type=\"int\",description=\"int global_f2;\"\},\{line=\"20\",name=\"global_i2\",type=\"int\",description=\"int global_i2;\"\},\{line=\"19\",name=\"global_f1\",type=\"float\",description=\"static float global_f1;\"\}\\\]\}\\\]\}" \
+    "-symbol-info-variables --max-results 3"
+
+mi_gdb_test "125-symbol-info-types --max-results 4" \
+    "125\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"24\",name=\"another_float_t\"\},\{line=\"23\",name=\"another_int_t\"\},\{name=\"float\"\},\{name=\"int\"\}\\\]\}\\\]\}" \
+    "-symbol-info-types --max-results 4"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/lib/gdb.exp ./gdb/testsuite/lib/gdb.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/testsuite/lib/gdb.exp	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/testsuite/lib/gdb.exp	2019-12-05 01:49:57.000000000 +0000
@@ -3719,6 +3719,16 @@ proc gdb_compile {source dest type optio
     } else {
 	set new_options [universal_compile_options]
     }
+
+    # Place (and look for) Fortran `.mod` files in the output
+    # directory for this specific test.
+    if {[lsearch -exact $options f77] != -1 \
+	    || [lsearch -exact $options f90] != -1 } {
+	# Fortran compile.
+	set mod_path [standard_output_file ""]
+	lappend new_options "additional_flags=-J${mod_path}"
+    }
+
     set shlib_found 0
     set shlib_load 0
     set getting_compiler_info 0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/unittests/filtered_iterator-selftests.c ./gdb/unittests/filtered_iterator-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/unittests/filtered_iterator-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/filtered_iterator-selftests.c	2019-12-05 01:49:57.000000000 +0000
@@ -0,0 +1,165 @@
+/* Self tests for the filtered_iterator class.
+
+   Copyright (C) 2019 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "gdbsupport/common-defs.h"
+#include "gdbsupport/selftest.h"
+#include "gdbsupport/filtered-iterator.h"
+
+#include <iterator>
+
+namespace selftests {
+
+/* An iterator class that iterates on integer arrays.  */
+
+struct int_array_iterator
+{
+  using value_type = int;
+  using reference = int &;
+  using pointer = int *;
+  using iterator_category = std::forward_iterator_tag;
+  using difference_type = int;
+
+  /* Create an iterator that points at the first element of an integer
+     array at ARRAY of size SIZE.  */
+  int_array_iterator (int *array, size_t size)
+    : m_array (array), m_size (size)
+  {}
+
+  /* Create a past-the-end iterator.  */
+  int_array_iterator ()
+    : m_array (nullptr), m_size (0)
+  {}
+
+  bool operator== (const int_array_iterator &other) const
+  {
+    /* If both are past-the-end, they are equal.  */
+    if (m_array == nullptr && other.m_array == nullptr)
+      return true;
+
+    /* If just one of them is past-the-end, they are not equal.  */
+    if (m_array == nullptr || other.m_array == nullptr)
+      return false;
+
+    /* If they are both not past-the-end, make sure they iterate on the
+       same array (we shouldn't compare iterators that iterate on different
+       things).  */
+    gdb_assert (m_array == other.m_array);
+
+    /* They are equal if they have the same current index.  */
+    return m_cur_idx == other.m_cur_idx;
+  }
+
+  bool operator!= (const int_array_iterator &other) const
+  {
+    return !(*this == other);
+  }
+
+  void operator++ ()
+  {
+    /* Make sure nothing tries to increment a past the end iterator. */
+    gdb_assert (m_cur_idx < m_size);
+
+    m_cur_idx++;
+
+    /* Mark the iterator as "past-the-end" if we have reached the end.  */
+    if (m_cur_idx == m_size)
+      m_array = nullptr;
+  }
+
+  int operator* () const
+  {
+    /* Make sure nothing tries to dereference a past the end iterator.  */
+    gdb_assert (m_cur_idx < m_size);
+
+    return m_array[m_cur_idx];
+  }
+
+private:
+  /* A nullptr value in M_ARRAY indicates a past-the-end iterator.  */
+  int *m_array;
+  size_t m_size;
+  size_t m_cur_idx = 0;
+};
+
+/* Filter to only keep the even numbers.  */
+
+struct even_numbers_only
+{
+  bool operator() (int n)
+  {
+    return n % 2 == 0;
+  }
+};
+
+/* Test typical usage.  */
+
+static void
+test_filtered_iterator ()
+{
+  int array[] = { 4, 4, 5, 6, 7, 8, 9 };
+  std::vector<int> even_ints;
+  const std::vector<int> expected_even_ints { 4, 4, 6, 8 };
+
+  filtered_iterator<int_array_iterator, even_numbers_only>
+    iter (array, ARRAY_SIZE (array));
+  filtered_iterator<int_array_iterator, even_numbers_only> end;
+
+  for (; iter != end; ++iter)
+    even_ints.push_back (*iter);
+
+  gdb_assert (even_ints == expected_even_ints);
+}
+
+/* Test operator== and operator!=. */
+
+static void
+test_filtered_iterator_eq ()
+{
+  int array[] = { 4, 4, 5, 6, 7, 8, 9 };
+
+  filtered_iterator<int_array_iterator, even_numbers_only>
+    iter1(array, ARRAY_SIZE (array));
+  filtered_iterator<int_array_iterator, even_numbers_only>
+    iter2(array, ARRAY_SIZE (array));
+
+  /* They start equal.  */
+  gdb_assert (iter1 == iter2);
+  gdb_assert (!(iter1 != iter2));
+
+  /* Advance 1, now they aren't equal (despite pointing to equal values).  */
+  ++iter1;
+  gdb_assert (!(iter1 == iter2));
+  gdb_assert (iter1 != iter2);
+
+  /* Advance 2, now they are equal again.  */
+  ++iter2;
+  gdb_assert (iter1 == iter2);
+  gdb_assert (!(iter1 != iter2));
+}
+
+} /* namespace selftests */
+
+void
+_initialize_filtered_iterator_selftests ()
+{
+  selftests::register_test ("filtered_iterator",
+			    selftests::test_filtered_iterator);
+  selftests::register_test ("filtered_iterator_eq",
+			    selftests::test_filtered_iterator_eq);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/unittests/tui-selftests.c ./gdb/unittests/tui-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/unittests/tui-selftests.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/unittests/tui-selftests.c	2019-12-05 01:49:57.000000000 +0000
@@ -19,10 +19,11 @@
 
 #include "defs.h"
 #include "gdbsupport/selftest.h"
-#include "tui/tui-winsource.h"
 
 #ifdef TUI
 
+#include "tui/tui-winsource.h"
+
 namespace selftests {
 namespace tui {
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/valarith.c ./gdb/valarith.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/valarith.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/valarith.c	2019-12-05 01:49:57.000000000 +0000
@@ -1723,7 +1723,7 @@ value_bit_index (struct type *type, cons
   word = extract_unsigned_integer (valaddr + (rel_index / TARGET_CHAR_BIT), 1,
 				   type_byte_order (type));
   rel_index %= TARGET_CHAR_BIT;
-  if (gdbarch_bits_big_endian (gdbarch))
+  if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
     rel_index = TARGET_CHAR_BIT - 1 - rel_index;
   return (word >> rel_index) & 1;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/valprint.c ./gdb/valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/valprint.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/valprint.c	2019-12-05 01:49:57.000000000 +0000
@@ -2897,9 +2897,9 @@ val_print_string (struct type *elttype, 
     {
       std::string str = memory_error_message (TARGET_XFER_E_IO, gdbarch, addr);
 
-      fprintf_filtered (stream, "<error: ");
-      fputs_filtered (str.c_str (), stream);
-      fprintf_filtered (stream, ">");
+      fprintf_filtered (stream, _("<error: %ps>"),
+			styled_string (metadata_style.style (),
+				       str.c_str ()));
     }
 
   return (bytes_read / width);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/value.c ./gdb/value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/value.c	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/value.c	2019-12-05 01:49:57.000000000 +0000
@@ -273,8 +273,8 @@ struct value
   LONGEST bitsize = 0;
 
   /* Only used for bitfields; position of start of field.  For
-     gdbarch_bits_big_endian=0 targets, it is the position of the LSB.  For
-     gdbarch_bits_big_endian=1 targets, it is the position of the MSB.  */
+     little-endian targets, it is the position of the LSB.  For
+     big-endian targets, it is the position of the MSB.  */
   LONGEST bitpos = 0;
 
   /* The number of references to this value.  When a value is created,
@@ -3135,7 +3135,7 @@ unpack_bits_as_long (struct type *field_
 
   /* Extract bits.  See comment above.  */
 
-  if (gdbarch_bits_big_endian (get_type_arch (field_type)))
+  if (byte_order == BFD_ENDIAN_BIG)
     lsbcount = (bytes_read * 8 - bitpos % 8 - bitsize);
   else
     lsbcount = (bitpos % 8);
@@ -3311,7 +3311,7 @@ modify_field (struct type *type, gdb_byt
   oword = extract_unsigned_integer (addr, bytesize, byte_order);
 
   /* Shifting for bit field depends on endianness of the target machine.  */
-  if (gdbarch_bits_big_endian (get_type_arch (type)))
+  if (byte_order == BFD_ENDIAN_BIG)
     bitpos = bytesize * 8 - bitpos - bitsize;
 
   oword &= ~(mask << bitpos);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/value.h ./gdb/value.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/gdb/value.h	2019-12-04 01:50:07.000000000 +0000
+++ ./gdb/value.h	2019-12-05 01:49:57.000000000 +0000
@@ -146,8 +146,8 @@ extern LONGEST value_bitsize (const stru
 extern void set_value_bitsize (struct value *, LONGEST bit);
 
 /* Only used for bitfields; position of start of field.  For
-   gdbarch_bits_big_endian=0 targets, it is the position of the LSB.  For
-   gdbarch_bits_big_endian=1 targets, it is the position of the MSB.  */
+   little-endian targets, it is the position of the LSB.  For
+   big-endian targets, it is the position of the MSB.  */
 
 extern LONGEST value_bitpos (const struct value *);
 extern void set_value_bitpos (struct value *, LONGEST bit);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/md5.sum	2019-12-04 01:55:30.000000000 +0000
+++ ./md5.sum	2019-12-05 01:54:52.000000000 +0000
@@ -36,7 +36,7 @@ a8bf329c24203303d1343c3eed58c07b  bfd/el
 5cb0eef365977eb8c7430c04738a9e2c  bfd/wasm-module.c
 ce93ef6cd4c0ba0799b9d6d75b36638a  bfd/elf64-mips.c
 c4d082a9c0c27456afe3357c4987b675  bfd/cpu-m9s12x.c
-cdafa56c26648e82806b661fe47b837c  bfd/version.h
+5d503cffdd6072b5a3f303cc407aff4f  bfd/version.h
 f635e95e06957e744083b2160029e168  bfd/cpu-tilegx.c
 f2af796af1efd1971472837a26010b6f  bfd/coff-mcore.c
 89637e92fbef834ef0c545805106bcc4  bfd/cpu-avr.c
@@ -733,7 +733,7 @@ d3b4d67e5858562f6201c1f31ca7baa8  gdb/mi
 f9fff0e0f36607e3ec93b63d2013023c  gdb/memrange.h
 486f3e7893a237571bed6316f6b0bf81  gdb/solib-svr4.c
 fd601b5312a3f82c5f513f8788d83e9e  gdb/ChangeLog-2013
-24a9207ebf549c985a53348e1891ec92  gdb/f-exp.c
+75e6b31aa290f8b1d4905be6cf01fadc  gdb/f-exp.c
 922523cd1b563bedcb2e90b3a38b9ae7  gdb/remote.h
 cc2084317970add66c3a0a173724b149  gdb/gdb_regex.h
 5eba1ff21922e43de2653317d14042c1  gdb/defs.h
@@ -776,12 +776,12 @@ e4ad0e0363c34db7802550035d3757aa  gdb/tr
 ffb3b80a0279866c6948e1131f589266  gdb/gdb-demangle.h
 02f0c034ef0f6c556acfed96a299d6a2  gdb/process-stratum-target.c
 78c6359a047e4d5483a90c021196a18a  gdb/ravenscar-thread.c
-58ed9442653c0a565056a4af93f393b2  gdb/Makefile.in
+ca28d4cdbf084b2dacb08e9c48af0071  gdb/Makefile.in
 a76da13e8bc37fdb10451c8e325b8baf  gdb/btrace.h
 ed316f4adf752b73da1c357437cfa771  gdb/x86-bsd-nat.c
 2cc0e89d09628e04609b0d799c1784bf  gdb/windows-nat.h
 abd6c78ba2ba4e76bbdfe089c8f88265  gdb/sparc64-linux-tdep.c
-af6e6bf4407d462a3b8c6811e3130aac  gdb/gdbtypes.h
+d10347ce85f5b53b296b933c0fe13865  gdb/gdbtypes.h
 a3e2eab3f675ede38d26697497bc0000  gdb/sim-regno.h
 e6441bf52ce0c783b9536b4cede70f4e  gdb/mips64-obsd-tdep.c
 08cfa0e1d1851e99aae2024bcf989b74  gdb/ia64-libunwind-tdep.c
@@ -971,8 +971,8 @@ ec1db2f79eb0f24ba67be0a43de2ee2e  gdb/na
 006e71d4db65f6476e3296f63268da9c  gdb/nat/aarch64-sve-linux-ptrace.h
 b9aac858de41b445c1517352fd65e139  gdb/nat/linux-personality.c
 d995828d8ddf49372908cf07d229a686  gdb/nat/linux-waitpid.c
-7a0f9fe89b5a1826ca4282dd192a9d47  gdb/go-valprint.c
-b516ff00780fcce8855eab106416697a  gdb/dwarf2loc.c
+2c145de5b031f60cd0035de93f90cb22  gdb/go-valprint.c
+73eeced8dfa4488d428637246d57e6a1  gdb/dwarf2loc.c
 02c50a8251b0ddad2c026aa558add95e  gdb/tracepoint.h
 af0985d648de398a33ca6e6f0632d0ef  gdb/gnu-v3-abi.c
 5f7961a97b9443179074b345b9491d94  gdb/extension.h
@@ -1149,10 +1149,10 @@ e3eacfa14bfda41e07058fd6c5cabdc6  gdb/da
 7653d011da75c74a03bc1604dca44ac9  gdb/ada-typeprint.c
 e432650f349837ea0344c360fdbc4092  gdb/sparc64-nbsd-tdep.c
 f971d36e35ec0c3fce64b819d7891f15  gdb/ChangeLog-1993
-f9cc8b094bb2d94a31214e353808d959  gdb/regcache.c
+97cf02bb61361edc782a95cfc85a6deb  gdb/regcache.c
 1cf32c1dc17ab8f2a21e63ce12ecb109  gdb/thread.c
 60b4873a6bdd481029ee36a2c1c9280b  gdb/gdb_buildall.sh
-d0968c7adf9964741d77eef328cbb935  gdb/target-descriptions.c
+22f9ab581da39cb6855ad86fcd1af298  gdb/target-descriptions.c
 14f14413e6f9397edd41ce8b7da5aee5  gdb/target.c
 8ad91bd6c1979a05d058b1ae52274de5  gdb/remote-sim.c
 ab960dd28873265f19e9a83458aa498e  gdb/rl78-tdep.c
@@ -1175,7 +1175,7 @@ dddb3052d3013584839f41f44ea31015  gdb/go
 ce8e906ee5a9523e760c2ac9d2b7fd5a  gdb/dbxread.c
 a12c129c6a322b6da6f3be28d5c64855  gdb/remote-notif.c
 1b9023495f4606b354761e1adc7fbf38  gdb/aarch64-linux-tdep.h
-5241e5be3915f50b85756f742ec519bd  gdb/aarch64-linux-tdep.c
+db8b760630f344c7331dcd04ed1f16c1  gdb/aarch64-linux-tdep.c
 9ea56b4b5732ba3a33ba731792957d2e  gdb/f-lang.c
 5849b004ac8a54dad31586d8124b58ec  gdb/break-catch-throw.c
 3456e2eb17d78fe98353c160e67c309d  gdb/rs6000-aix-tdep.h
@@ -1184,7 +1184,7 @@ fe457323b648ee915db69d8eca7fe933  gdb/gn
 46d4d315ccc5bbd3d3c8a7489262aa53  gdb/.gitignore
 78ade55423ae602ce2cba2cfe099b65e  gdb/alpha-bsd-tdep.h
 5d142d839ac9dbde744d4ca119fd796b  gdb/x86-tdep.c
-f08e468cf6f7b43b9ea4f7d338e23e7b  gdb/aarch64-tdep.c
+0e8361742fe4ef8ebdb61bea5c2d4bdc  gdb/aarch64-tdep.c
 87659b373492330002b3aa4944d094b5  gdb/sparc-ravenscar-thread.h
 b57cda336e0adf8ed7402d4504ea1bbf  gdb/m68k-tdep.h
 72b9132dd27b0f307057c6413bee6aa4  gdb/typeprint.c
@@ -1206,7 +1206,7 @@ cdaa654bddaff716531556c9f599dfd5  gdb/ty
 ad0a28559cae16d5c6917cd8223dec0f  gdb/m32r-linux-nat.c
 963c0b6541094fe70dd3a064c26c13f9  gdb/sparc64-nbsd-nat.c
 96b992596bf1d8f56076097f3c55b099  gdb/gdb_bfd.c
-dd0a66bc41611a3557b1ca0bca200ce9  gdb/NEWS
+e3ea4aae0db254970838e32ded539a4b  gdb/NEWS
 97fdbf06d19ca02ff16730e400dc2cfc  gdb/x86-nat.c
 80a4f4781f91d134f9322ebbea92bec8  gdb/dcache.c
 c4f2c8bc152abb23fccef51af4ead140  gdb/ada-lex.l
@@ -1228,13 +1228,13 @@ de92338af06804cabbd9474f079cfea3  gdb/gd
 520e1e0227ceb78f4416f30b5a7feafe  gdb/obsd-tdep.c
 5052b57de2fd8b3515777bb814bcd394  gdb/ChangeLog-1999
 b13fde9edb40fab4501119ba2e871168  gdb/process-stratum-target.h
-33f218649697efaa527503835ad603d1  gdb/f-exp.y
+edd3c10173ec034477ae0f189cb173e6  gdb/f-exp.y
 fd9b3c0ae37d28574d58d5988e1c1dce  gdb/jit.h
 1a4a74e2b2f223e57a2d53945ef0bb7c  gdb/psymtab.c
 947db8806599d27ba20f03a38fe3762f  gdb/stack.h
 da71c479b68a4d95a79d36640b93c9c3  gdb/ChangeLog-2000
 2ec9c6a0e2976473bcab0c31abd74118  gdb/tic6x-linux-tdep.c
-09d4d9d7517382ca8c4e306ef493def9  gdb/gdbarch.c
+f3959dc91a2a3d8f109228f96524d32f  gdb/gdbarch.c
 73ff81d7ca3612e32f29c6f5fc9bec63  gdb/CONTRIBUTE
 9126f596b7e73921ac9876348bdc7be0  gdb/mep-tdep.c
 d20daf76f7f251adc4f6dff9ccaea99c  gdb/opencl-lang.c
@@ -1318,13 +1318,13 @@ e3ceb61f3a5426777dd350624ad8d628  gdb/gd
 2f2fd214ba892502b48b2b3fd2af7bd7  gdb/findvar.c
 ec428e55811d8f7050bf2716871f68a9  gdb/alpha-tdep.h
 e702c76e3ff96a6c491fa0781e028a59  gdb/ser-pipe.c
-4517d870cd7d7537bc8c3b88b0d64324  gdb/p-valprint.c
+1c9b353b195c2a70836b9001133a5b6b  gdb/p-valprint.c
 9d8bd968edfea3a04797f421ccaed2a2  gdb/producer.c
 72aab1b5819a06aa387d860586f4ff19  gdb/macrocmd.c
 28c0a137c3fd5a9c49015ea95aae8780  gdb/arch-utils.c
-499d9b971299640d8c2db6b2d0e5d3c2  gdb/cp-valprint.c
+932dcdf746fc31b64f43a12704c2ab0c  gdb/cp-valprint.c
 df393c602e6b20bc1b0caa1b02df828f  gdb/disable-implicit-rules.mk
-822d1296479b56e5a791e1b6cfc9838f  gdb/dwarf2read.c
+681669f524673c45e4adc51df80b1ba5  gdb/dwarf2read.c
 8f9dcb34c25a585309cf4701768ae8a9  gdb/or1k-tdep.c
 3b50204234e7134ded67613004098c2e  gdb/amd64-windows-tdep.c
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/cygmon.exp
@@ -1883,7 +1883,7 @@ aa72c9eeb4f4d7034731458617b8303e  gdb/te
 3b642b7e4302fbf6bf56235e6ccc7e00  gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
 e7cb20e68fc6bb8dfaf4a51dd9cad8da  gdb/testsuite/gdb.mi/pr11022.c
 3dc1b104660ab4c437b5d8eee5ba1760  gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
-481031b3fe16f4dd98c268ea82d92d45  gdb/testsuite/gdb.mi/mi-fortran-modules.exp
+3bac3e9c71cab514d805e173fd5724b6  gdb/testsuite/gdb.mi/mi-fortran-modules.exp
 dafea5ce5b67848d17781aba9106a646  gdb/testsuite/gdb.mi/mi-until.exp
 6f3f75b9ab538b2e2c0c265c84df43ce  gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
 6fae9a7302efd1408dead21e8aa07364  gdb/testsuite/gdb.mi/mi-async-run.exp
@@ -1912,7 +1912,7 @@ f525e617551741bb042b36a16da75346  gdb/te
 943eaf98cd48863c39058b07604f860f  gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
 ccd01123ef1ef463ecd1f0cc394dcebd  gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
 2ee09bceb4e05d993c58fc572a3c3d1d  gdb/testsuite/gdb.mi/mi-regs.exp
-1230de42d306fc698da4736e1f8010d1  gdb/testsuite/gdb.mi/mi-sym-info.exp
+f72a476ab30312844f3cd482e4ba28b0  gdb/testsuite/gdb.mi/mi-sym-info.exp
 dd9c725b18bf560e560a546ed6405536  gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
 bb14dbfe59cfd2ed78301914e3c6f5e1  gdb/testsuite/gdb.mi/mi-file.exp
 85d2706223a2de58af6607aea6dd94cf  gdb/testsuite/gdb.mi/mi-pthreads.exp
@@ -2628,7 +2628,7 @@ b9ace2bad3fcabaae9ad3c687d2d13f2  gdb/te
 d107f5705153d3695b752ab65edaf4e8  gdb/testsuite/gdb.base/symfile-warn.exp
 1f47bb467369ca4f95f786f615da24fd  gdb/testsuite/gdb.base/charset.exp
 470ae0b4e06b0d922c46cdf10c260a63  gdb/testsuite/gdb.base/printcmds.exp
-425915e673813bab2e167cd12d52b991  gdb/testsuite/gdb.base/endianity.exp
+1ea21f67dda541053ae3dfa1276345a6  gdb/testsuite/gdb.base/endianity.exp
 dbfcac0e69a636942e22be1a7504cddc  gdb/testsuite/gdb.base/sizeof.c
 493a25aacccfcbff65458ff401a2d8b9  gdb/testsuite/gdb.base/catch-fork-kill.c
 9485d1fe84ba7bb2d59cd480a5436c7d  gdb/testsuite/gdb.base/hbreak.exp
@@ -2909,7 +2909,7 @@ a985956d276bc37cce2a02ef4f31e0f8  gdb/te
 35f9b1e01c3cba562cbab33f6c7d6ec1  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
 f68bbe40f7d84f1254fa81cfcc147c55  gdb/testsuite/gdb.base/completion.exp
 402cc909db764f91bfbf4f06c9df0f65  gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
-93ab8727b4efd19443c1d6436c51a586  gdb/testsuite/gdb.base/endianity.c
+fd3d33c46f2d3431d7d4ab1447b07ef6  gdb/testsuite/gdb.base/endianity.c
 2887ca0fc8efc53ca576113d62231ab4  gdb/testsuite/gdb.base/info-var-f2.c
 1ab9639092e5e659e1244929aba6a5db  gdb/testsuite/gdb.base/attach-pie-noexec.exp
 74f9f9ccb79f9760385bcfa9b4aba80b  gdb/testsuite/gdb.base/gdbindex-stabs.c
@@ -3313,7 +3313,7 @@ a1eb647994f7aec7696a1bbb3cbb015e  gdb/te
 9ea552c1ea45f06c772c7e090e4c4bc4  gdb/testsuite/gdb.fortran/vla-ptype.exp
 8287b34a073eb0050f2da89e82baf1d2  gdb/testsuite/gdb.fortran/nested-funcs-2.f90
 088fc01d2a072fb3d78fcc1e90e52c9f  gdb/testsuite/gdb.fortran/vla-ptr-info.exp
-81112d97fd08cc4836f56e35814a15a9  gdb/testsuite/gdb.fortran/type-kinds.exp
+e8a72eb42e3f549eb1b2a395c1b4ac0e  gdb/testsuite/gdb.fortran/type-kinds.exp
 7bd63ea304ad437c9a8d0a223b91d057  gdb/testsuite/gdb.fortran/multi-dim.exp
 66046bb37d7298553b200ae7577d63b8  gdb/testsuite/gdb.fortran/array-bounds.exp
 9e7e114c093d30d1affc3c20d1d25b7f  gdb/testsuite/gdb.fortran/logical.exp
@@ -4092,7 +4092,7 @@ ad7c35ff788ad968c44b9b05d466bdd9  gdb/te
 449fdf67df4f576905fe2d430029f636  gdb/testsuite/lib/prelink-support.exp
 02afb85a1fb26fbc069e4c97b3933a8f  gdb/testsuite/lib/opencl.exp
 0d0ccc80941c04e2e66a189f3faa1fb9  gdb/testsuite/lib/perftest.exp
-71f7a5064d73def3552ac214ffea0633  gdb/testsuite/lib/gdb.exp
+136261e074f71215d89f7f1bd7be7405  gdb/testsuite/lib/gdb.exp
 544c015f3560780d7f4e07786e8abcc7  gdb/testsuite/lib/compiler.cc
 2ce5f63e3001d2cbd1ad5daf077b18a0  gdb/testsuite/lib/opencl_hostapp.c
 4c4f00f092de08a5b41182a813508d9f  gdb/testsuite/lib/valgrind.exp
@@ -4449,7 +4449,7 @@ a73456a413ec206c45a1c05bede47b75  gdb/te
 3ae360ac3827f64fb894dcbec57961b3  gdb/testsuite/gdb.go/max-depth.go
 68d17058fa82304a192749f0eadc138d  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-e30c3c4c66b7e0a0a19ca1c9c6ef8207  gdb/testsuite/ChangeLog
+7d36bda7ce0409bfd2d37bc38d818d34  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
 f2ba3acca1442df88b4c0ee97da94c54  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
@@ -4629,6 +4629,7 @@ dbbc7e8dc8114b3eccab5035caeded80  gdb/te
 42d53d1e72d8b3d0b2fc4b91f74a033e  gdb/testsuite/gdb.ada/frame_args/foo.adb
 e53d9a480de23698f9bdd9a5bdd51e0b  gdb/testsuite/gdb.ada/frame_args/pck.ads
 16bf09b9f89ac6c4bf30d1f66e569f8f  gdb/testsuite/gdb.ada/frame_args/pck.adb
+a61d28b31e7cac6597c55e4309bc826c  gdb/testsuite/gdb.ada/scalar_storage.exp
 2ba5181b65a67a54efdd674eaf19a7c7  gdb/testsuite/gdb.ada/array_bounds/bar.adb
 1f4faba55f50981a0fb5f49edaeb9613  gdb/testsuite/gdb.ada/funcall_ptr/foo.adb
 4691d080dc1eae2ce4e94abe01359ace  gdb/testsuite/gdb.ada/funcall_ptr/pck.ads
@@ -4997,6 +4998,9 @@ bbbd5971b84127f4b7e48ae18b13687b  gdb/te
 f45358a40d38500432ef8baf91272e2c  gdb/testsuite/gdb.ada/access_tagged_param/pck.ads
 1539954b473bea1603d9ed3c2a3a1581  gdb/testsuite/gdb.ada/access_tagged_param/pck.adb
 7a823edd682c3982f269e0c15dc10231  gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
+f89e07ae542db0759ff68e377f4a3955  gdb/testsuite/gdb.ada/scalar_storage/pck.ads
+a39284ca73ec84264978656627d99e18  gdb/testsuite/gdb.ada/scalar_storage/pck.adb
+e9e16977fe81c5f5c561ebc64c5d287d  gdb/testsuite/gdb.ada/scalar_storage/storage.adb
 f019fd93474c505f2007b53582f8ee41  gdb/testsuite/gdb.ada/byte_packed_arr.exp
 0b869f92bac44e0ca7ff427caa990658  gdb/testsuite/gdb.ada/formatted_ref.exp
 2054a7c75a5d4d27d9ae4ff60ebd345b  gdb/testsuite/gdb.ada/mi_ref_changeable.exp
@@ -5276,48 +5280,48 @@ fc41122ade5af8a08f4674de7e688c82  gdb/te
 9ac5514a454173af6d2ce46435dde817  gdb/testsuite/gdb.modula2/unbounded1.c
 9bbed41578331d2318d5d7ddb0fe58d6  gdb/testsuite/gdb.modula2/max-depth.c
 29e88756c6c310c96a2006047bfcbe23  gdb/tilegx-tdep.h
-214e0bd6827421a4af7917d419b87a17  gdb/symtab.h
+e80b03a7b7627b45d3215a1080f61615  gdb/symtab.h
 518eeb650ede533c76597c3a1c3b5b5f  gdb/f-valprint.c
 b4661232e1c651351e7aab789eebdb61  gdb/gdb_curses.h
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-b00e5fde0fe83487caa0bf063e3c33e5  gdb/doc/gdb.info-3
-e374fef3c4e4ca61d93860a1f01eda73  gdb/doc/gdb.info-4
+f29cf9ae5f2e6d1f3a994c75419dd661  gdb/doc/gdb.info-3
+414944e4c1e5d4dfb2610cb495b5016a  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 5db562992b3f0178f803b66c2b2337fd  gdb/doc/Makefile.in
-3866eaae584dddcf902adc4e416f99c8  gdb/doc/gdb.info-7
-943c8cd041c1881df1c492beb6831557  gdb/doc/gdbserver.1
+49db18f06534574883acdb725aad8878  gdb/doc/gdb.info-7
+89bca0fbb1d87581e755dcdf7fdd8967  gdb/doc/gdbserver.1
 34e70c52a663f6a691f6ceb17e8b3e48  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 a07e6b7f88c558d15d03adeeaca94c74  gdb/doc/stabs.info
-90b0c4def85d7c8b3bbc5c031a2fa472  gdb/doc/gdb.info-5
-002a3b5e798bd7e61988d751e4bc332d  gdb/doc/gdb.info-8
+e0ea40fd6ca249e9b604cb69f9dc7f13  gdb/doc/gdb.info-5
+b320c0c5436485a2daccdb4d54935abd  gdb/doc/gdb.info-8
 9137c9e47e1692b8efec8e28482aa6fb  gdb/doc/agentexpr.texi
 66674dc351ba95941f422dc18cae24bb  gdb/doc/.gitignore
-1d99b42715c0dbb45c4c7cf524af9657  gdb/doc/gdb.info-1
+09db0f7cbd21259d8dabd4395f4f0007  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-ebb518f77112e60c95a8de96f63884cc  gdb/doc/gdb.info-6
-c913592b2fb88d4c4788b3559213a0e8  gdb/doc/gdb.texinfo
-0c0f818ddf7a0a3039b015bf6a8a694f  gdb/doc/gdb-add-index.1
+37b063ccd4f5261dc1152de19406e23b  gdb/doc/gdb.info-6
+e56d1d100677e3f5949bacad8189c328  gdb/doc/gdb.texinfo
+65868b4efdb5e74930d0f4ea6068c541  gdb/doc/gdb-add-index.1
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
 5a0374965ab816741c91c7eaea412912  gdb/doc/Doxyfile-gdb-api.in
 e41a962402414f62e2f16a22a2783703  gdb/doc/annotate.info
-0cccb896b999529194125be350527695  gdb/doc/gdb.info-2
+314114e880c3f7b472a215c24279160a  gdb/doc/gdb.info-2
 fdd79e6125e56c1eb7e28b2a71d5b48e  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-ebc81200abb817ab55af42ef25c12a3f  gdb/doc/gdb.info
+055aeb3c47ff07c055b2022afa25cfb2  gdb/doc/gdb.info
 8bb39bf41da6a03890e05a9ab1b373b9  gdb/doc/python.texi
 9927faec0d3464d1bc485cd0c69a4a46  gdb/doc/stabs.texinfo
-90f029c9cdc64ed39ea0be5f07f90b7e  gdb/doc/ChangeLog
-34190c856797ba4f46b7bf3844804453  gdb/doc/gdb.1
-2ddf7f104de7e15f173ffa6e39dc1a67  gdb/doc/gcore.1
+452fabbb30b88f1fc182fc8e5e31ba27  gdb/doc/ChangeLog
+f5d60312a41ae96daf7f974dde516b10  gdb/doc/gdb.1
+c828bcc7edebfbd1c38fe8fbf00164a7  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 cb7ea97486937341d6ae27968ee40d23  gdb/doc/Doxyfile-base.in
 29393ec87c7921291f54ee7b57ccb1d9  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-5c0690137385e19ea1ccd7e0b21b63a0  gdb/doc/gdbinit.5
+b9f075f8c97e96c0227dc8735ea4ff46  gdb/doc/gdbinit.5
 24d4f8b6396da16d9a8dd98281ac40ff  gdb/doc/Doxyfile-gdb-xref.in
 6f3b23a5f42aba8cbac1bcf7329942e4  gdb/doc/annotate.texinfo
 0b3e26fe6db92700f1e51071ff475193  gdb/doc/doxy-index.in
@@ -5348,13 +5352,13 @@ f99eed23dd28aaa43e5f0241e2919377  gdb/mi
 682b62f7415d5ae21f988ab7dac31bfd  gdb/mi/mi-cmd-disas.c
 041cdd43cc41c8e8334f9b6ecd6edf4f  gdb/mi/mi-getopt.h
 ebb2ab100f9273e4fbeed1732549fab3  gdb/mi/mi-interp.c
-8a1290c6226a395a3e21a769c83a5291  gdb/mi/mi-symbol-cmds.c
+74b76a35d64541004c98bba8ca6fedcd  gdb/mi/mi-symbol-cmds.c
 34898c50b11372898f008f7418d5758b  gdb/mi/mi-cmd-target.c
 05ef63a349fd961b577150eb0b820d3b  gdb/mi/mi-cmd-var.c
 d1b2be78858f84a199c8da4d88bc00d9  gdb/mi/mi-common.h
 90b81f951a2351c88c1b4a1fedbb492f  gdb/mi/ChangeLog-1999-2003
-1fde500b700dbbf8d4ba228ed3ab4665  gdb/mi/mi-cmds.c
-58dc5f899e3d5638b03277349db43575  gdb/mi/mi-cmds.h
+658b19b94a953920c6c7e08318ae3327  gdb/mi/mi-cmds.c
+9d4b451bb4b39c226638c0cbc36b2012  gdb/mi/mi-cmds.h
 84f8f333570dc7efbb05bfce804fde50  gdb/mi/mi-main.c
 7330863f8e8705d45e875b1d8061462a  gdb/mi/mi-cmd-break.h
 0f159abe054cbd8446b5a99f0754c479  gdb/mi/mi-out.h
@@ -5363,7 +5367,7 @@ c050b1f758db6f5a20452f60703b608e  gdb/mi
 0cbbad4919bb89b54f34faff4b90437d  gdb/registry.h
 8f186d7198f2c844b075e049f05e7ef0  gdb/varobj-iter.h
 cb55a4b25e672480dbe61545a40a5285  gdb/mn10300-linux-tdep.c
-9de25f3496fa384e2217182a25ae90b4  gdb/gdbarch.sh
+6f30a813b9a22e32c538ec04249f772d  gdb/gdbarch.sh
 1072827838500e659fbdfe5e79e74de6  gdb/skip.h
 d87f8f330dda7f736350ea5dcff5b709  gdb/ChangeLog-2006
 68d3a06637a7716de76104baf340cd40  gdb/location.c
@@ -5373,7 +5377,7 @@ d72c0a28942309f3c94ae825059c1bc3  gdb/pp
 2cf27bcfcc332ddedfd8ffe5a916c02d  gdb/dwarf-index-common.c
 d134a8c83098ecec6847dcbb51c76264  gdb/annotate.c
 f8ef1c4fdc043ed02cb189ab003d69de  gdb/addrmap.h
-59021576d18ed2d162541e09bd8318fd  gdb/valarith.c
+499c885467d32c2b0258b7fd56df1568  gdb/valarith.c
 51da586ad00e6a5bbcf259994a0ae484  gdb/rs6000-tdep.c
 3c39c68cc78f76d3d9197dd8e3c8d71f  gdb/linux-fork.h
 66cfa710958741f26aa9fc2a6eb0be21  gdb/dwarf2-frame.c
@@ -5430,7 +5434,7 @@ be3ebe24b6c7611f1d04f11bc4730889  gdb/aa
 0e26f0d3db82cc7bb4efe8f4afac05b9  gdb/fbsd-tdep.c
 301431026f0926203ae5ae1022d2bbe1  gdb/gdb_vfork.h
 f058ce54f957301d2273e4cae2ecd6cd  gdb/hppa-linux-nat.c
-03f537ef6c8a3da120e30330748ea5b1  gdb/avr-tdep.c
+4f6cc32268d35b4bf1666fa068741048  gdb/avr-tdep.c
 5674ff7dd13f37fcf7c6fd01309bce05  gdb/obsd-nat.c
 33ef8f6f9955e8dea851712d2b7dabd0  gdb/gdb_bfd.h
 cd9264f4a0a08c80dca6789693d7f3b3  gdb/v850-tdep.c
@@ -5439,7 +5443,7 @@ cd9264f4a0a08c80dca6789693d7f3b3  gdb/v8
 ac58e6906cf3e28e0cb1d9f7fcb5376f  gdb/ppc64-tdep.h
 779a71168b43ad3fba7363f1d3d99366  gdb/c-valprint.c
 59b50f3575105c4ffad5887eed3baae9  gdb/alloc.c
-2da17404d718d785829c353a2e373e55  gdb/value.c
+d3d52f6f7528d12f034caf33b95c3c98  gdb/value.c
 277d89b15969db659b113979860c8266  gdb/dummy-frame.c
 26237c9c840d296d3019ace35f5e6e27  gdb/ser-mingw.c
 b6e4670dafc9bb8323887026274d3edb  gdb/completer.h
@@ -5736,7 +5740,7 @@ dbc4dc4321858d3d314ff9201176f4f5  gdb/fe
 e11c46ffce0d2817a18d200fe9afbccb  gdb/features/aarch64-fpu.xml
 9d9baf6ee79baadc2a660370cb2c1afc  gdb/gdb_indent.sh
 5afe7da120561dead28fb8221bc144a9  gdb/infcmd.c
-597fa775cd65c7afb426480d6c60dbe3  gdb/valprint.c
+cafa2250708089626ca79a97245b6610  gdb/valprint.c
 6af968a34afeb9eab9fd547e3fa65d62  gdb/solib-target.c
 7d40f66ff5bf4c4d11a2623bdc59f0ea  gdb/tilegx-tdep.c
 37fc98e9876223442e12822a3ba0166d  gdb/c-lang.h
@@ -5752,7 +5756,7 @@ ff2b2264d3bc2c96926dca89c1596eff  gdb/pr
 dce587078c693a6ff096e9ac8c76f247  gdb/maint.c
 c086e7b7f948f2285c1cbb4d6656689c  gdb/x86-bsd-nat.h
 a8282658401449c6beef61c9f36f145b  gdb/moxie-tdep.c
-c09840d78954327b5d5689faf68dd15c  gdb/gdbtypes.c
+1e306071d65c0e28cd6fe661dff332ad  gdb/gdbtypes.c
 c5ffbe634b4abf2108700a75ba62aa0f  gdb/ppc-obsd-nat.c
 11e488d83e18c4036892ff4450937c16  gdb/mips-nbsd-nat.c
 8de7206d485292751ca31a6de7590c3b  gdb/elfread.c
@@ -5798,7 +5802,7 @@ a01c7b4b18efc22dbe5cc8662acf024c  gdb/fr
 d6f1771cf6ffce764f036d928cab89d9  gdb/c-varobj.c
 1e08e39cebf71d253881b63cd7f9c905  gdb/or1k-tdep.h
 552838669dd0cf8bc2ed20b7b2bb19cd  gdb/i386-tdep.c
-da62d2b1306ce5617a1acfa5886ccba4  gdb/symtab.c
+fd78e002f2385c16f1ec76f319ce2a70  gdb/symtab.c
 b8d75545442a0eb808e403ea02538a26  gdb/osabi.c
 d3170a8bbbd34d38a15902a5b596654d  gdb/m32r-linux-tdep.c
 840e0e0e830e2fd302199c92f049e9a5  gdb/inf-child.c
@@ -5827,10 +5831,10 @@ a88e31ebdc95dea2e182e90fa3596b09  gdb/va
 7242736b5bba9098c974d0e015b167a5  gdb/std-regs.c
 90d72be4c884a79ded08fa4fbbcb6b9b  gdb/go-lang.h
 9a1fd6216061720bf8556e23cf224721  gdb/i386-windows-nat.c
-d3eb78eefe3ef95e1207e29dbce4944d  gdb/po/gdb.pot
+8fbb0dda15768a4793ab2d9f15e9f33a  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
 7da5f0db2eb697d3fb85524954abaef5  gdb/break-catch-syscall.c
-45a80779559782ef2ebb90e7fc5b4bde  gdb/ada-lang.c
+f7aa291f013990b620f171fbd5c9d9b2  gdb/ada-lang.c
 9ec348d0857f0352bf1397e00da1c706  gdb/dcache.h
 b02475bdd50d3c99a983b9a13686dc1d  gdb/system-gdbinit/elinos.py
 3f5b967cd5953ac63c43eae4dcdd511f  gdb/system-gdbinit/wrs-linux.py
@@ -5859,7 +5863,7 @@ e3e2430aebaf80b6aca6759cfa9612d4  gdb/nb
 0d4182edc7beb626c56d423668383a2b  gdb/i386-fbsd-nat.c
 094e893d632874e14e92917b8c57c5fd  gdb/mipsread.c
 d4e47464ef8b510c11c547fb163d603a  gdb/amd64-darwin-tdep.c
-cc99354cd0291773e6a43be4be04d040  gdb/ChangeLog
+a2ea983fc162d5b13c3a5e611cb0161f  gdb/ChangeLog
 2fd8f81fb260df7b31ffaaaa44e1d4b9  gdb/go-typeprint.c
 6bdae112ab8858c8b8eb3e32bc9b5b45  gdb/score-tdep.c
 170c97d0320940cea4fda1d1cb413687  gdb/xml-support.h
@@ -6260,7 +6264,7 @@ fe8bfb0304fcf0372bb1cbd874f8327c  gdb/co
 797504580fb7b0cebd6e088c4e816f09  gdb/compile/compile-internal.h
 057e21b49faf3a8c53eddb9ef82b3686  gdb/compile/compile-object-load.h
 323a2dd57092c6e5677a50aad2a70faf  gdb/compile/compile-c-types.c
-b572e4d842caab0a001d818a4d1d2ad0  gdb/value.h
+5449449614026bdfa26279de7786dd49  gdb/value.h
 ed5ee5ceb8418a3c9bdd4ac3368802f2  gdb/ppc-nbsd-nat.c
 bd9f3ddf10aa5822382e4b1b7894c911  gdb/auxv.h
 334796bc6963d95f52f05c9f7f3179b0  gdb/i386-dicos-tdep.c
@@ -6289,7 +6293,7 @@ f47044c0373443bbd1b7db7d37d267a1  gdb/ar
 9182d056dfb72a75e131d2265247a45f  gdb/continuations.c
 87f51a66cf71a1a32d8b51d4555690a9  gdb/amd64-bsd-nat.c
 bb87c608ca2c65e1bd64d1f02f4c11d7  gdb/bfin-tdep.h
-ee1225032ba56ceb66c28d95b0b975ae  gdb/eval.c
+8fe00ca911c6d4b2f018633643578495  gdb/eval.c
 e1f6956f75e89e03b9209da5d22fb491  gdb/ui-out.c
 c5bb4c01723316a1fffafcc5afaa6d52  gdb/amd64-dicos-tdep.c
 df4034a9a8ac1a6ebb31e15d0dc142d3  gdb/sh-nbsd-tdep.c
@@ -6321,10 +6325,10 @@ f71363c2a5f4908519349158da8c58db  gdb/sp
 f420b4b994a6ebee66ce14872c9897e2  gdb/exceptions.c
 ceb187eef73fbf6e87359f603204ef67  gdb/i386-linux-nat.h
 1d4e59e0fbddd775e98b42b6d142ae21  gdb/ppc-obsd-tdep.c
-e6586473312ae5226130efcc391c42b3  gdb/configure.nat
+78963353a780fee5d738384095f22b31  gdb/configure.nat
 2882b9b0f5cebdd33ab20188392de5b1  gdb/memattr.c
 65c6340951cdb83866291652a006ff2c  gdb/event-top.h
-29e826c49c391f0dc74df2523ec68465  gdb/gdbarch.h
+cd21e5c797f5a1afae6fd99d0edb5bdd  gdb/gdbarch.h
 9198f7b1807c968098814aa2a3901aee  gdb/gdb.gdb
 b77f981fd2a258c825464ee189a8e630  gdb/dwarf-index-cache.c
 34b4a545d41dbedb6aa151203d789286  gdb/gdbcmd.h
@@ -6376,7 +6380,7 @@ df32514a7454ab34784e66cb097751aa  gdb/gd
 e7a8408bfd74f52a34285ef21cc1edbb  gdb/gdbsupport/common-debug.c
 013a8a62d3fe96d8f459b556359ed27d  gdb/gdbsupport/selftest.h
 fa9784c8764eba3d2de8ecb26d702d48  gdb/gdbsupport/common-gdbthread.h
-73698edfb213430c0bdd26e9585bb923  gdb/gdbsupport/filtered-iterator.h
+bf1cbea62627b7ad6ea4e4dee79d7565  gdb/gdbsupport/filtered-iterator.h
 e56fc533e39ba4a866351433f183df71  gdb/gdbsupport/gdb_sys_time.h
 653fc597d4999ba0a45086568c476d9c  gdb/gdbsupport/gdb_setjmp.h
 a05553af251239b4402da5e49bee2f8e  gdb/gdbsupport/host-defs.h
@@ -6481,6 +6485,7 @@ e4beffd935c107c8d1c9e2b1e2406418  gdb/un
 63eedbdcbb133e2e2583d75903ec1405  gdb/unittests/unpack-selftests.c
 6943005271c60c7b37a4ab03178a059f  gdb/unittests/memrange-selftests.c
 db2b21bc39c37791ed35802be4ffeb94  gdb/unittests/vec-utils-selftests.c
+8107699b21e2ccf17bb6fd6ad790e7dc  gdb/unittests/filtered_iterator-selftests.c
 965ae65f22e08b027fe951d6533d476a  gdb/unittests/function-view-selftests.c
 f05a8aed96f6d5b71d236616b515a21c  gdb/unittests/tracepoint-selftests.c
 4e1474a532ecdb1bebd0e7e5e5ba810e  gdb/unittests/parse-connection-spec-selftests.c
@@ -6567,7 +6572,7 @@ d897b56d4055ab599e34d0d99079b30e  gdb/un
 a379144db871c32e5bc326a263ab2b71  gdb/unittests/xml-utils-selftests.c
 4e482ca090cb9f3d6d625d1290f07967  gdb/unittests/copy_bitwise-selftests.c
 71940ff68a2bb90eefea0a76efd9bed8  gdb/unittests/help-doc-selftests.c
-ffa959fe197c111bfbe522ceddc51977  gdb/unittests/tui-selftests.c
+41ea48fc0e546ad26ce1d9b6cdebad96  gdb/unittests/tui-selftests.c
 4ddca0aa06a629682f013b349248d032  gdb/unittests/array-view-selftests.c
 b3d171ccad8a9c998eaf5a4fa3b02c4d  gdb/unittests/string_view-selftests.c
 817e51df4bbe66e7857fadba63f50e60  gdb/unittests/lookup_name_info-selftests.c
@@ -7559,7 +7564,7 @@ f54b9c221462fec13cdc02b98e915a66  opcode
 8e786067e487eb6a028eeaac6c7ba86f  opcodes/i386-opc.c
 22fad5413c93cf5595cda3875e96cca2  opcodes/fr30-desc.h
 2cd4a17f5984229495651cace665fce3  opcodes/lm32-asm.c
-4fb0aad146b1d7f8f45268370bb3b301  opcodes/i386-opc.tbl
+a800e32a01bd70b5fcd29076b8b50260  opcodes/i386-opc.tbl
 d53e6a0bad0618b8e0b6dfe07a024146  opcodes/xstormy16-ibld.c
 331e039f15b7c141e1434ed8fef4263e  opcodes/mep-asm.c
 ec3b79e12fafc6731e6da93a3f4f3a83  opcodes/microblaze-dis.h
@@ -7681,7 +7686,7 @@ c3d3ebdae6fe5bd33a4c6123bd1483e4  opcode
 f7df206888f13ed1c31c9a85e739391e  opcodes/i386-init.h
 baccda77a6b627bb2d2914a3dd86da1c  opcodes/s390-dis.c
 9c968a24038c2668abd53bf8b64de660  opcodes/sh-dis.c
-abe55e90169f99a4d1d1f750178ad010  opcodes/i386-dis.c
+01abbef880e39c4b2f93edc6103a7d90  opcodes/i386-dis.c
 3ae7e4e6aa6aad7a7295627909d37e65  opcodes/disassemble.h
 cb15aa4673f865ca48ac31c38373124e  opcodes/ia64-waw.tbl
 5d3ea81f85e524bfb47797924091da61  opcodes/microblaze-opcm.h
@@ -7705,7 +7710,7 @@ ba8859bd07937a25f0dc06b68b4033c3  opcode
 44b4c920f22fa36202d20614b90889db  opcodes/aarch64-gen.c
 7a0278302e523c84ba412f8b8000c902  opcodes/arc-fxi.h
 c098c5cde9b3dc17ecf3f4f5626dc002  opcodes/score7-dis.c
-e703c51009eddd8868f0f6fb1c006f9c  opcodes/i386-tbl.h
+83840819c9721b9216ef4c562158a539  opcodes/i386-tbl.h
 100e2e595b5cff71e4b7abf50787a9c3  opcodes/arc-dis.c
 435c73db4c63944bdc8fbfeb19338f0a  opcodes/ip2k-asm.c
 5877ba5e080a7c281d631fa730cf3f50  opcodes/spu-opc.c
@@ -7814,7 +7819,7 @@ f54be2e715ceb6cebb98fab5bc37e7db  opcode
 62a30cfb1b506ee2c3916ee13e9eda8a  opcodes/m10300-dis.c
 1b1854422db842d0dfa01c932a5f86ae  opcodes/nds32-opc.h
 713fb26f79662b078390d218dc5d977c  opcodes/aarch64-opc.h
-5bb5b3f562d541a5248446214557feb5  opcodes/ChangeLog
+1e4cca66fb33a02dda24c982ac8dc3bb  opcodes/ChangeLog
 327cf11f5c08b578f3b0cdb7f3923280  opcodes/ia64-raw.tbl
 bd6d6d07bd75b0bc4ef5b8c67ca29532  opcodes/frv-dis.c
 85afb5e9fa15ca375baadf5e1da1d13b  opcodes/aarch64-opc.c
@@ -8152,7 +8157,7 @@ f7b12e2a6caa8b656f36313c83c13097  sim/co
 f68ab555dad7404665f357beca48b2c8  sim/common/sim-hw.h
 06f146a292c2944dcc4ae7db51bc07a0  sim/common/sim-close.c
 bee349fb280c1bf5cf583c05a5bffba9  sim/common/cgen-trace.c
-d5b086fb00538cf06d3576ce23447f77  sim/common/ChangeLog
+c5c174c891066fbe117732cd98e29cc4  sim/common/ChangeLog
 b78b842e0cdb3283601a77fe7bb1a2cd  sim/common/sim-inline.c
 53ad424cd286fe11d7874aa2885e3051  sim/common/sim-hw.c
 bd3c9e065328d5a0218823dc80dbdb1e  sim/common/sim-module.h
@@ -8173,7 +8178,7 @@ cc2b0c341597bdc71cc9508c51c7598e  sim/co
 2e1e9807a28c91c5ee8bb4475ebc8fe0  sim/common/cgen-types.h
 7bd90684eae18acc5f1332dacf9e1df2  sim/common/hw-properties.h
 8ef609c56c4c2a6c0a6594bd390c78f0  sim/common/dv-sockser.h
-819d4463c22c1f08266ad24682fc0354  sim/common/sim-utils.c
+53622859dcd17448113d095025532a57  sim/common/sim-utils.c
 6932dbcc806f80994e6797c4ca368d3b  sim/common/sim-reason.c
 e56ed85b93f031099a016738cc7e7b27  sim/common/sim-core.h
 fa132ce436ba593279b1eb9d89590862  sim/common/gennltvals.sh
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/ChangeLog ./opcodes/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/ChangeLog	2019-12-04 01:50:09.000000000 +0000
+++ ./opcodes/ChangeLog	2019-12-05 01:49:59.000000000 +0000
@@ -1,3 +1,19 @@
+2019-12-04  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-opc.tbl (lfs, lgs, lss): Drop No_qSuf.
+	* i386-tbl.h: Re-generate.
+
+2019-12-04  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-dis.c (mod_table): Use Ev instead of Em for movdiri.
+
+2019-12-04  Jan Beulich  <jbeulich@suse.com>
+
+	* i386-opc.tbl (push, pop): Drop DefaultSize from GPR-only
+	forms.
+	(xbegin): Drop DefaultSize.
+	* i386-tbl.h: Re-generate.
+
 2019-11-22  Mihail Ionescu  <mihail.ionescu@arm.com>
 
 	* opcodes/arm-dis.c (arm_opcodes, thumb32_opcodes):
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/i386-dis.c ./opcodes/i386-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/i386-dis.c	2019-12-04 01:50:09.000000000 +0000
+++ ./opcodes/i386-dis.c	2019-12-05 01:49:59.000000000 +0000
@@ -10522,7 +10522,7 @@ static const struct dis386 mod_table[][2
   },
   {
     /* MOD_0F38F9_PREFIX_0 */
-    { "movdiri",	{ Em, Gv }, PREFIX_OPCODE },
+    { "movdiri",	{ Ev, Gv }, PREFIX_OPCODE },
   },
   {
     /* MOD_62_32BIT */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/i386-opc.tbl ./opcodes/i386-opc.tbl
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/i386-opc.tbl	2019-12-04 01:50:09.000000000 +0000
+++ ./opcodes/i386-opc.tbl	2019-12-05 01:49:59.000000000 +0000
@@ -151,13 +151,13 @@ movzx, 2, 0xfb6, None, 2, Cpu386, Modrm|
 movzx, 2, 0xfb7, None, 2, Cpu386, Modrm|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IntelSyntax, { Reg16|Word|BaseIndex, Reg32|Reg64 }
 
 // Push instructions.
-push, 1, 0x50, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
+push, 1, 0x50, None, 1, CpuNo64, ShortForm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
 push, 1, 0xff, 0x6, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
 push, 1, 0x6a, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8S }
 push, 1, 0x68, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm16|Imm32 }
 push, 1, 0x6, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
 // In 64bit mode, the operand size is implicitly 64bit.
-push, 1, 0x50, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
+push, 1, 0x50, None, 1, Cpu64, ShortForm|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
 push, 1, 0xff, 0x6, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
 push, 1, 0x6a, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm8S }
 push, 1, 0x68, None, 1, Cpu64, DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Imm16|Imm32S }
@@ -166,11 +166,11 @@ push, 1, 0xfa0, None, 2, Cpu64, ShortFor
 pusha, 0, 0x60, None, 1, Cpu186|CpuNo64, DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
 // Pop instructions.
-pop, 1, 0x58, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
+pop, 1, 0x58, None, 1, CpuNo64, ShortForm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32 }
 pop, 1, 0x8f, 0x0, 1, CpuNo64, Modrm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16|Reg32|Word|Dword|Unspecified|BaseIndex }
 pop, 1, 0x7, None, 1, CpuNo64, ShortForm|DefaultSize|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { SReg }
 // In 64bit mode, the operand size is implicitly 64bit.
-pop, 1, 0x58, None, 1, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
+pop, 1, 0x58, None, 1, Cpu64, ShortForm|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64 }
 pop, 1, 0x8f, 0x0, 1, Cpu64, Modrm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { Reg16|Reg64|Word|Qword|Unspecified|BaseIndex }
 pop, 1, 0xfa1, None, 2, Cpu64, ShortForm|DefaultSize|No_bSuf|No_lSuf|No_sSuf|No_ldSuf|NoRex64, { SReg }
 
@@ -201,9 +201,9 @@ lea, 2, 0x8d, None, 1, 0, Modrm|Anysize|
 // Load segment registers from memory.
 lds, 2, 0xc5, None, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Unspecified|BaseIndex, Reg16|Reg32 }
 les, 2, 0xc4, None, 1, CpuNo64, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Unspecified|BaseIndex, Reg16|Reg32 }
-lfs, 2, 0xfb4, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-lgs, 2, 0xfb5, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
-lss, 2, 0xfb2, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_qSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lfs, 2, 0xfb4, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lgs, 2, 0xfb5, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+lss, 2, 0xfb2, None, 2, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf, { DWord|Fword|Tbyte|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
 // Flags register instructions.
 clc, 0, 0xf8, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
@@ -2550,7 +2550,7 @@ xrelease, 0, 0xf3, None, 1, CpuHLE, No_b
 
 // RTM instructions
 xabort, 1, 0xc6f8, None, 2, CpuRTM, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8 }
-xbegin, 1, 0xc7f8, None, 2, CpuRTM,  JumpDword|DefaultSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Disp16|Disp32 }
+xbegin, 1, 0xc7f8, None, 2, CpuRTM,  JumpDword|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Disp16|Disp32 }
 xend, 0, 0xf01d5, None, 3, CpuRTM, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 xtest, 0, 0xf01d6, None, 3, CpuHLE|CpuRTM, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/i386-tbl.h ./opcodes/i386-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/opcodes/i386-tbl.h	2019-12-04 01:50:09.000000000 +0000
+++ ./opcodes/i386-tbl.h	2019-12-05 01:49:59.000000000 +0000
@@ -547,7 +547,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
-    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
@@ -607,7 +607,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
-    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
@@ -679,7 +679,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
-    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
@@ -715,7 +715,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
-    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+    { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
@@ -965,7 +965,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0,
@@ -979,7 +979,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0,
@@ -993,7 +993,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0,
+    { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0,
@@ -42835,7 +42835,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0,
+    { 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/sim/common/ChangeLog ./sim/common/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/sim/common/ChangeLog	2019-12-04 01:50:10.000000000 +0000
+++ ./sim/common/ChangeLog	2019-12-05 01:49:59.000000000 +0000
@@ -1,3 +1,7 @@
+2019-12-01  Pavel I. Kryukov  <kryukov@frtk.ru>
+
+	* sim-utils.c: Prevent buffer overflow.
+
 2019-09-23  Dimitar Dimitrov  <dimitar@dinux.eu>
 
 	* gennltvals.sh: Add PRU libgloss target.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/sim/common/sim-utils.c ./sim/common/sim-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191204/sim/common/sim-utils.c	2019-12-04 01:50:10.000000000 +0000
+++ ./sim/common/sim-utils.c	2019-12-05 01:49:59.000000000 +0000
@@ -355,8 +355,8 @@ map_to_str (unsigned map)
     case io_map: return "io";
     default:
       {
-	static char str[10];
-	sprintf (str, "(%ld)", (long) map);
+	static char str[16];
+	snprintf (str, sizeof(str), "(%ld)", (long) map);
 	return str;
       }
     }
@@ -385,8 +385,8 @@ access_to_str (unsigned access)
     case access_read_write_exec_io: return "read_write_exec_io";
     default:
       {
-	static char str[10];
-	sprintf (str, "(%ld)", (long) access);
+	static char str[16];
+	snprintf (str, sizeof(str), "(%ld)", (long) access);
 	return str;
       }
     }
