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.20191203/bfd/ChangeLog ./bfd/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/bfd/ChangeLog	2019-12-03 01:49:13.000000000 +0000
+++ ./bfd/ChangeLog	2019-12-10 01:49:23.000000000 +0000
@@ -1,3 +1,88 @@
+2019-12-07  Alan Modra  <amodra@gmail.com>
+
+	PR 25236
+	* elflink.c (_bfd_elf_link_assign_sym_version): Assign versions
+	for ELF_COMMON_DEF_P symbols.
+	(elf_link_output_extsym, _bfd_elf_add_default_symbol): Adjust to
+	suit.
+
+2019-12-05  Sandra Loosemore  <sandra@codesourcery.com>
+
+	Only give FDE encoding warnings if --eh-frame-hdr was specified.
+
+	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Make
+	FDE encoding warning conditional.
+
+2019-12-05  Nick Clifton  <nickc@redhat.com>
+
+	PR 25029
+	* peXXigen.c (_bfd_XXi_swap_aouthdr_out): Ignore empty sections
+	when computing the sizes stored in the headers.
+
+2019-12-03  Alan Modra  <amodra@gmail.com>
+
+	PR 25230
+	* dwarf2.c (struct dwarf2_debug_file): Add line_table and
+	abbrev_offsets.
+	(struct abbrev_offset_entry): New.
+	(hash_abbrev, eq_abbrev, del_abbrev): New functions.
+	(read_abbrevs): Check whether we have already read abbrevs at
+	given offset, and add new offset/abbrev to hash table.
+	(decode_line_info): Keep line table at offset zero in file struct.
+	Return this for a cu reusing the same dir/file list.
+	(find_abstract_instance): Find cu for DW_FORM_GNU_ref_alt.
+	(_bfd_dwarf2_slurp_debug_info): Create offset/abbrev hash tables.
+	(_bfd_dwarf2_cleanup_debug_info): Adjust deletion of lines and
+	abbrevs.
+
+2019-12-03  Alan Modra  <amodra@gmail.com>
+
+	PR 25230
+	* dwarf2.c (struct dwarf2_debug_file): New struct.
+	(struct dwarf2_debug): Delete fields now in dwarf2_debug_file.
+	Add f, alt fields.
+	(struct comp_unit): Add file field.
+	(read_indirect_string, read_indirect_line_string): Adjust to suit.
+	(read_alt_indirect_string, read_alt_indirect_ref): Likewise.
+	(read_debug_ranges, find_abstract_instance, read_rangelist): Likewise.
+	(_bfd_dwarf2_stash_syms, place_sections): Likewise.
+	(stash_maybe_update_info_hash_tablse): Likewise.
+	(stash_verify_info_hash_table): Likewise.
+	(_bfd_dwarf2_slurp_debug_info): Likewise.
+	(_bfd_dwarf2_find_symbol_bias): Likewise.
+	(_bfd_dwarf2_find_nearest_line): Likewise.
+	(_bfd_dwarf2_cleanup_debug_info): Likewise.
+	(read_abbrevs): Add file param and adjust.  Update calls.
+	(stash_comp_unit): Likewise.
+	(decode_line_info): Delete stash param and adjust.  Update calls.
+	(comp_unit_find_nearest_line): Likewise.
+	(comp_unit_maybe_decode_line_info): Likewise.
+	(comp_unit_find_line): Likewise.
+	(parse_comp_unit): Add file and info_ptr param and adjust.  Update
+	calls.
+
+2019-12-03  Alan Modra  <amodra@gmail.com>
+
+	* dwarf2.c (read_indirect_string): Don't duplicate offset check
+	done in read_section.
+	(read_indirect_line_string): Likewise.
+	(read_alt_indirect_string): Likewise.
+	(read_alt_indirect_ref): Likewise.
+	(read_abbrevs): Likewise.  Free memory on all failure paths.
+	Use correct unsigned type for pointer difference comparison.
+
+2019-12-03  Alan Modra  <amodra@gmail.com>
+
+	* dwarf2.c (struct dwarf2_debug): Update comments.  Remove sec
+	and sec_info_ptr.
+	(_bfd_dwarf2_slurp_debug_info): Don't set sec or sec_info_ptr.
+	(stash_comp_unit): Likewise.
+	(read_alt_indirect_ref): Return NULL not FALSE.
+
+2019-12-03  Alan Modra  <amodra@gmail.com>
+
+	* dwarf2.c (_bfd_dwarf2_find_nearest_line): Correct function comment.
+
 2019-11-27  Alan Modra  <amodra@gmail.com>
 
 	PR 23652
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.20191203/bfd/dwarf2.c ./bfd/dwarf2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/bfd/dwarf2.c	2019-12-03 01:49:13.000000000 +0000
+++ ./bfd/dwarf2.c	2019-12-10 01:49:23.000000000 +0000
@@ -82,55 +82,23 @@ struct adjusted_section
   bfd_vma adj_vma;
 };
 
-struct dwarf2_debug
+struct dwarf2_debug_file
 {
-  /* A list of all previously read comp_units.  */
-  struct comp_unit *all_comp_units;
-
-  /* Last comp unit in list above.  */
-  struct comp_unit *last_comp_unit;
+  /* The actual bfd from which debug info was loaded.  Might be
+     different to orig_bfd because of gnu_debuglink sections.  */
+  bfd *bfd_ptr;
 
-  /* Names of the debug sections.  */
-  const struct dwarf_debug_section *debug_sections;
+  /* Pointer to the symbol table.  */
+  asymbol **syms;
 
-  /* The next unread compilation unit within the .debug_info section.
-     Zero indicates that the .debug_info section has not been loaded
-     into a buffer yet.  */
+  /* The current info pointer for the .debug_info section being parsed.  */
   bfd_byte *info_ptr;
 
-  /* Pointer to the end of the .debug_info section memory buffer.  */
-  bfd_byte *info_ptr_end;
-
-  /* Pointer to the original bfd for which debug was loaded.  This is what
-     we use to compare and so check that the cached debug data is still
-     valid - it saves having to possibly dereference the gnu_debuglink each
-     time.  */
-  bfd *orig_bfd;
-
-  /* Pointer to the bfd, section and address of the beginning of the
-     section.  The bfd might be different than expected because of
-     gnu_debuglink sections.  */
-  bfd *bfd_ptr;
-  asection *sec;
-  bfd_byte *sec_info_ptr;
+  /* A pointer to the memory block allocated for .debug_info sections.  */
+  bfd_byte *dwarf_info_buffer;
 
-  /* Support for alternate debug info sections created by the DWZ utility:
-     This includes a pointer to an alternate bfd which contains *extra*,
-     possibly duplicate debug sections, and pointers to the loaded
-     .debug_str and .debug_info sections from this bfd.  */
-  bfd *		 alt_bfd_ptr;
-  bfd_byte *	 alt_dwarf_str_buffer;
-  bfd_size_type	 alt_dwarf_str_size;
-  bfd_byte *	 alt_dwarf_info_buffer;
-  bfd_size_type	 alt_dwarf_info_size;
-
-  /* A pointer to the memory block allocated for info_ptr.  Neither
-     info_ptr nor sec_info_ptr are guaranteed to stay pointing to the
-     beginning of the malloc block.  */
-  bfd_byte *info_ptr_memory;
-
-  /* Pointer to the symbol table.  */
-  asymbol **syms;
+  /* Length of the loaded .debug_info sections.  */
+  bfd_size_type dwarf_info_size;
 
   /* Pointer to the .debug_abbrev section loaded into memory.  */
   bfd_byte *dwarf_abbrev_buffer;
@@ -162,6 +130,33 @@ struct dwarf2_debug
   /* Length of the loaded .debug_ranges section.  */
   bfd_size_type dwarf_ranges_size;
 
+  /* A list of all previously read comp_units.  */
+  struct comp_unit *all_comp_units;
+
+  /* Last comp unit in list above.  */
+  struct comp_unit *last_comp_unit;
+
+  /* Line table at line_offset zero.  */
+  struct line_info_table *line_table;
+
+  /* Hash table to map offsets to decoded abbrevs.  */
+  htab_t abbrev_offsets;
+};
+
+struct dwarf2_debug
+{
+  /* Names of the debug sections.  */
+  const struct dwarf_debug_section *debug_sections;
+
+  /* Per-file stuff.  */
+  struct dwarf2_debug_file f, alt;
+
+  /* Pointer to the original bfd for which debug was loaded.  This is what
+     we use to compare and so check that the cached debug data is still
+     valid - it saves having to possibly dereference the gnu_debuglink each
+     time.  */
+  bfd *orig_bfd;
+
   /* If the most recent call to bfd_find_nearest_line was given an
      address in an inlined function, preserve a pointer into the
      calling chain for subsequent calls to bfd_find_inliner_info to
@@ -276,8 +271,9 @@ struct comp_unit
   /* A list of the variables found in this comp. unit.  */
   struct varinfo *variable_table;
 
-  /* Pointer to dwarf2_debug structure.  */
+  /* Pointers to dwarf2_debug structures.  */
   struct dwarf2_debug *stash;
+  struct dwarf2_debug_file *file;
 
   /* DWARF format version for this unit - from unit header.  */
   int version;
@@ -706,6 +702,7 @@ read_indirect_string (struct comp_unit *
 {
   bfd_uint64_t offset;
   struct dwarf2_debug *stash = unit->stash;
+  struct dwarf2_debug_file *file = unit->file;
   char *str;
 
   if (buf + unit->offset_size > buf_end)
@@ -722,13 +719,11 @@ read_indirect_string (struct comp_unit *
   *bytes_read_ptr = unit->offset_size;
 
   if (! read_section (unit->abfd, &stash->debug_sections[debug_str],
-		      stash->syms, offset,
-		      &stash->dwarf_str_buffer, &stash->dwarf_str_size))
+		      file->syms, offset,
+		      &file->dwarf_str_buffer, &file->dwarf_str_size))
     return NULL;
 
-  if (offset >= stash->dwarf_str_size)
-    return NULL;
-  str = (char *) stash->dwarf_str_buffer + offset;
+  str = (char *) file->dwarf_str_buffer + offset;
   if (*str == '\0')
     return NULL;
   return str;
@@ -744,6 +739,7 @@ read_indirect_line_string (struct comp_u
 {
   bfd_uint64_t offset;
   struct dwarf2_debug *stash = unit->stash;
+  struct dwarf2_debug_file *file = unit->file;
   char *str;
 
   if (buf + unit->offset_size > buf_end)
@@ -760,14 +756,12 @@ read_indirect_line_string (struct comp_u
   *bytes_read_ptr = unit->offset_size;
 
   if (! read_section (unit->abfd, &stash->debug_sections[debug_line_str],
-		      stash->syms, offset,
-		      &stash->dwarf_line_str_buffer,
-		      &stash->dwarf_line_str_size))
+		      file->syms, offset,
+		      &file->dwarf_line_str_buffer,
+		      &file->dwarf_line_str_size))
     return NULL;
 
-  if (offset >= stash->dwarf_line_str_size)
-    return NULL;
-  str = (char *) stash->dwarf_line_str_buffer + offset;
+  str = (char *) file->dwarf_line_str_buffer + offset;
   if (*str == '\0')
     return NULL;
   return str;
@@ -800,7 +794,7 @@ read_alt_indirect_string (struct comp_un
 
   *bytes_read_ptr = unit->offset_size;
 
-  if (stash->alt_bfd_ptr == NULL)
+  if (stash->alt.bfd_ptr == NULL)
     {
       bfd *debug_bfd;
       char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
@@ -819,20 +813,17 @@ read_alt_indirect_string (struct comp_un
 	  bfd_close (debug_bfd);
 	  return NULL;
 	}
-      stash->alt_bfd_ptr = debug_bfd;
+      stash->alt.bfd_ptr = debug_bfd;
     }
 
-  if (! read_section (unit->stash->alt_bfd_ptr,
+  if (! read_section (unit->stash->alt.bfd_ptr,
 		      stash->debug_sections + debug_str_alt,
-		      NULL, /* FIXME: Do we need to load alternate symbols ?  */
-		      offset,
-		      &stash->alt_dwarf_str_buffer,
-		      &stash->alt_dwarf_str_size))
+		      stash->alt.syms, offset,
+		      &stash->alt.dwarf_str_buffer,
+		      &stash->alt.dwarf_str_size))
     return NULL;
 
-  if (offset >= stash->alt_dwarf_str_size)
-    return NULL;
-  str = (char *) stash->alt_dwarf_str_buffer + offset;
+  str = (char *) stash->alt.dwarf_str_buffer + offset;
   if (*str == '\0')
     return NULL;
 
@@ -849,13 +840,13 @@ read_alt_indirect_ref (struct comp_unit 
 {
   struct dwarf2_debug *stash = unit->stash;
 
-  if (stash->alt_bfd_ptr == NULL)
+  if (stash->alt.bfd_ptr == NULL)
     {
       bfd *debug_bfd;
       char *debug_filename = bfd_follow_gnu_debugaltlink (unit->abfd, DEBUGDIR);
 
       if (debug_filename == NULL)
-	return FALSE;
+	return NULL;
 
       debug_bfd = bfd_openr (debug_filename, NULL);
       free (debug_filename);
@@ -868,20 +859,17 @@ read_alt_indirect_ref (struct comp_unit 
 	  bfd_close (debug_bfd);
 	  return NULL;
 	}
-      stash->alt_bfd_ptr = debug_bfd;
+      stash->alt.bfd_ptr = debug_bfd;
     }
 
-  if (! read_section (unit->stash->alt_bfd_ptr,
+  if (! read_section (unit->stash->alt.bfd_ptr,
 		      stash->debug_sections + debug_info_alt,
-		      NULL, /* FIXME: Do we need to load alternate symbols ?  */
-		      offset,
-		      &stash->alt_dwarf_info_buffer,
-		      &stash->alt_dwarf_info_size))
+		      stash->alt.syms, offset,
+		      &stash->alt.dwarf_info_buffer,
+		      &stash->alt.dwarf_info_size))
     return NULL;
 
-  if (offset >= stash->alt_dwarf_info_size)
-    return NULL;
-  return stash->alt_dwarf_info_buffer + offset;
+  return stash->alt.dwarf_info_buffer + offset;
 }
 
 static bfd_uint64_t
@@ -947,13 +935,59 @@ lookup_abbrev (unsigned int number, stru
   return NULL;
 }
 
+/* We keep a hash table to map .debug_abbrev section offsets to the
+   array of abbrevs, so that compilation units using the same set of
+   abbrevs do not waste memory.  */
+
+struct abbrev_offset_entry
+{
+  size_t offset;
+  struct abbrev_info **abbrevs;
+};
+
+static hashval_t
+hash_abbrev (const void *p)
+{
+  const struct abbrev_offset_entry *ent = p;
+  return htab_hash_pointer ((void *) ent->offset);
+}
+
+static int
+eq_abbrev (const void *pa, const void *pb)
+{
+  const struct abbrev_offset_entry *a = pa;
+  const struct abbrev_offset_entry *b = pb;
+  return a->offset == b->offset;
+}
+
+static void
+del_abbrev (void *p)
+{
+  struct abbrev_offset_entry *ent = p;
+  struct abbrev_info **abbrevs = ent->abbrevs;
+  size_t i;
+
+  for (i = 0; i < ABBREV_HASH_SIZE; i++)
+    {
+      struct abbrev_info *abbrev = abbrevs[i];
+
+      while (abbrev)
+	{
+	  free (abbrev->attrs);
+	  abbrev = abbrev->next;
+	}
+    }
+  free (ent);
+}
+
 /* In DWARF version 2, the description of the debugging information is
    stored in a separate .debug_abbrev section.  Before we read any
    dies from a section we read in all abbreviations and install them
    in a hash table.  */
 
 static struct abbrev_info**
-read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash)
+read_abbrevs (bfd *abfd, bfd_uint64_t offset, struct dwarf2_debug *stash,
+	      struct dwarf2_debug_file *file)
 {
   struct abbrev_info **abbrevs;
   bfd_byte *abbrev_ptr;
@@ -962,13 +996,22 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
   unsigned int abbrev_number, bytes_read, abbrev_name;
   unsigned int abbrev_form, hash_number;
   bfd_size_type amt;
+  void **slot;
+  struct abbrev_offset_entry ent = { offset, NULL };
 
-  if (! read_section (abfd, &stash->debug_sections[debug_abbrev],
-		      stash->syms, offset,
-		      &stash->dwarf_abbrev_buffer, &stash->dwarf_abbrev_size))
+  if (ent.offset != offset)
+    return NULL;
+
+  slot = htab_find_slot (file->abbrev_offsets, &ent, INSERT);
+  if (slot == NULL)
     return NULL;
+  if (*slot != NULL)
+    return ((struct abbrev_offset_entry *) (*slot))->abbrevs;
 
-  if (offset >= stash->dwarf_abbrev_size)
+  if (! read_section (abfd, &stash->debug_sections[debug_abbrev],
+		      file->syms, offset,
+		      &file->dwarf_abbrev_buffer,
+		      &file->dwarf_abbrev_size))
     return NULL;
 
   amt = sizeof (struct abbrev_info*) * ABBREV_HASH_SIZE;
@@ -976,8 +1019,8 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
   if (abbrevs == NULL)
     return NULL;
 
-  abbrev_ptr = stash->dwarf_abbrev_buffer + offset;
-  abbrev_end = stash->dwarf_abbrev_buffer + stash->dwarf_abbrev_size;
+  abbrev_ptr = file->dwarf_abbrev_buffer + offset;
+  abbrev_end = file->dwarf_abbrev_buffer + file->dwarf_abbrev_size;
   abbrev_number = _bfd_safe_read_leb128 (abfd, abbrev_ptr, &bytes_read,
 					 FALSE, abbrev_end);
   abbrev_ptr += bytes_read;
@@ -988,7 +1031,7 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
       amt = sizeof (struct abbrev_info);
       cur_abbrev = (struct abbrev_info *) bfd_zalloc (abfd, amt);
       if (cur_abbrev == NULL)
-	return NULL;
+	goto fail;
 
       /* Read in abbrev header.  */
       cur_abbrev->number = abbrev_number;
@@ -1030,21 +1073,7 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
 	      amt *= sizeof (struct attr_abbrev);
 	      tmp = (struct attr_abbrev *) bfd_realloc (cur_abbrev->attrs, amt);
 	      if (tmp == NULL)
-		{
-		  size_t i;
-
-		  for (i = 0; i < ABBREV_HASH_SIZE; i++)
-		    {
-		      struct abbrev_info *abbrev = abbrevs[i];
-
-		      while (abbrev)
-			{
-			  free (abbrev->attrs);
-			  abbrev = abbrev->next;
-			}
-		    }
-		  return NULL;
-		}
+		goto fail;
 	      cur_abbrev->attrs = tmp;
 	    }
 
@@ -1068,8 +1097,8 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
 	 already read (which means we are about to read the abbreviations
 	 for the next compile unit) or if the end of the abbreviation
 	 table is reached.  */
-      if ((unsigned int) (abbrev_ptr - stash->dwarf_abbrev_buffer)
-	  >= stash->dwarf_abbrev_size)
+      if ((size_t) (abbrev_ptr - file->dwarf_abbrev_buffer)
+	  >= file->dwarf_abbrev_size)
 	break;
       abbrev_number = _bfd_safe_read_leb128 (abfd, abbrev_ptr,
 					     &bytes_read, FALSE, abbrev_end);
@@ -1078,7 +1107,31 @@ read_abbrevs (bfd *abfd, bfd_uint64_t of
 	break;
     }
 
+  *slot = bfd_malloc (sizeof ent);
+  if (!*slot)
+    goto fail;
+  ent.abbrevs = abbrevs;
+  memcpy (*slot, &ent, sizeof ent);
   return abbrevs;
+
+ fail:
+  if (abbrevs != NULL)
+    {
+      size_t i;
+
+      for (i = 0; i < ABBREV_HASH_SIZE; i++)
+	{
+	  struct abbrev_info *abbrev = abbrevs[i];
+
+	  while (abbrev)
+	    {
+	      free (abbrev->attrs);
+	      abbrev = abbrev->next;
+	    }
+	}
+      free (abbrevs);
+    }
+  return NULL;
 }
 
 /* Returns true if the form is one which has a string value.  */
@@ -2025,9 +2078,11 @@ read_formatted_entries (struct comp_unit
 /* Decode the line number information for UNIT.  */
 
 static struct line_info_table*
-decode_line_info (struct comp_unit *unit, struct dwarf2_debug *stash)
+decode_line_info (struct comp_unit *unit)
 {
   bfd *abfd = unit->abfd;
+  struct dwarf2_debug *stash = unit->stash;
+  struct dwarf2_debug_file *file = unit->file;
   struct line_info_table* table;
   bfd_byte *line_ptr;
   bfd_byte *line_end;
@@ -2038,39 +2093,24 @@ decode_line_info (struct comp_unit *unit
   unsigned int exop_len;
   bfd_size_type amt;
 
-  if (! read_section (abfd, &stash->debug_sections[debug_line],
-		      stash->syms, unit->line_offset,
-		      &stash->dwarf_line_buffer, &stash->dwarf_line_size))
-    return NULL;
+  if (unit->line_offset == 0 && file->line_table)
+    return file->line_table;
 
-  amt = sizeof (struct line_info_table);
-  table = (struct line_info_table *) bfd_alloc (abfd, amt);
-  if (table == NULL)
+  if (! read_section (abfd, &stash->debug_sections[debug_line],
+		      file->syms, unit->line_offset,
+		      &file->dwarf_line_buffer, &file->dwarf_line_size))
     return NULL;
-  table->abfd = abfd;
-  table->comp_dir = unit->comp_dir;
 
-  table->num_files = 0;
-  table->files = NULL;
-
-  table->num_dirs = 0;
-  table->dirs = NULL;
-
-  table->num_sequences = 0;
-  table->sequences = NULL;
-
-  table->lcl_head = NULL;
-
-  if (stash->dwarf_line_size < 16)
+  if (file->dwarf_line_size < 16)
     {
       _bfd_error_handler
 	(_("DWARF error: line info section is too small (%" PRId64 ")"),
-	 (int64_t) stash->dwarf_line_size);
+	 (int64_t) file->dwarf_line_size);
       bfd_set_error (bfd_error_bad_value);
       return NULL;
     }
-  line_ptr = stash->dwarf_line_buffer + unit->line_offset;
-  line_end = stash->dwarf_line_buffer + stash->dwarf_line_size;
+  line_ptr = file->dwarf_line_buffer + unit->line_offset;
+  line_end = file->dwarf_line_buffer + file->dwarf_line_size;
 
   /* Read in the prologue.  */
   lh.total_length = read_4_bytes (abfd, line_ptr, line_end);
@@ -2197,6 +2237,24 @@ decode_line_info (struct comp_unit *unit
       line_ptr += 1;
     }
 
+  amt = sizeof (struct line_info_table);
+  table = (struct line_info_table *) bfd_alloc (abfd, amt);
+  if (table == NULL)
+    return NULL;
+  table->abfd = abfd;
+  table->comp_dir = unit->comp_dir;
+
+  table->num_files = 0;
+  table->files = NULL;
+
+  table->num_dirs = 0;
+  table->dirs = NULL;
+
+  table->num_sequences = 0;
+  table->sequences = NULL;
+
+  table->lcl_head = NULL;
+
   if (lh.version >= 5)
     {
       /* Read directory table.  */
@@ -2396,16 +2454,16 @@ decode_line_info (struct comp_unit *unit
 	      break;
 	    case DW_LNS_set_file:
 	      {
-		unsigned int file;
+		unsigned int filenum;
 
 		/* The file and directory tables are 0
 		   based, the references are 1 based.  */
-		file = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
-					      FALSE, line_end);
+		filenum = _bfd_safe_read_leb128 (abfd, line_ptr, &bytes_read,
+						 FALSE, line_end);
 		line_ptr += bytes_read;
 		if (filename)
 		  free (filename);
-		filename = concat_filename (table, file);
+		filename = concat_filename (table, filenum);
 		break;
 	      }
 	    case DW_LNS_set_column:
@@ -2454,6 +2512,8 @@ decode_line_info (struct comp_unit *unit
 	free (filename);
     }
 
+  if (unit->line_offset == 0)
+    file->line_table = table;
   if (sort_line_sequences (table))
     return table;
 
@@ -2549,12 +2609,12 @@ fail:
 static bfd_boolean
 read_debug_ranges (struct comp_unit * unit)
 {
-  struct dwarf2_debug * stash = unit->stash;
+  struct dwarf2_debug *stash = unit->stash;
+  struct dwarf2_debug_file *file = unit->file;
 
   return read_section (unit->abfd, &stash->debug_sections[debug_ranges],
-		       stash->syms, 0,
-		       &stash->dwarf_ranges_buffer,
-		       &stash->dwarf_ranges_size);
+		       file->syms, 0,
+		       &file->dwarf_ranges_buffer, &file->dwarf_ranges_size);
 }
 
 /* Function table functions.  */
@@ -2817,9 +2877,9 @@ lookup_symbol_in_variable_table (struct 
   return FALSE;
 }
 
-static struct comp_unit *stash_comp_unit (struct dwarf2_debug *);
-static bfd_boolean comp_unit_maybe_decode_line_info (struct comp_unit *,
-						     struct dwarf2_debug *);
+static struct comp_unit *stash_comp_unit (struct dwarf2_debug *,
+					  struct dwarf2_debug_file *);
+static bfd_boolean comp_unit_maybe_decode_line_info (struct comp_unit *);
 
 static bfd_boolean
 find_abstract_instance (struct comp_unit *unit,
@@ -2831,7 +2891,7 @@ find_abstract_instance (struct comp_unit
 			int *linenumber_ptr)
 {
   bfd *abfd = unit->abfd;
-  bfd_byte *info_ptr;
+  bfd_byte *info_ptr = NULL;
   bfd_byte *info_ptr_end;
   unsigned int abbrev_number, bytes_read, i;
   struct abbrev_info *abbrev;
@@ -2864,12 +2924,12 @@ find_abstract_instance (struct comp_unit
 	 a symbolic reference to a label in any .debug_info section
 	 might be used.  Since we lay out multiple .debug_info
 	 sections at non-zero VMAs (see place_sections), and read
-	 them contiguously into stash->info_ptr_memory, that means
-	 the reference is relative to stash->info_ptr_memory.  */
+	 them contiguously into dwarf_info_buffer, that means the
+	 reference is relative to dwarf_info_buffer.  */
       size_t total;
 
-      info_ptr = unit->stash->info_ptr_memory;
-      info_ptr_end = unit->stash->info_ptr_end;
+      info_ptr = unit->file->dwarf_info_buffer;
+      info_ptr_end = info_ptr + unit->file->dwarf_info_size;
       total = info_ptr_end - info_ptr;
       if (!die_ref)
 	return TRUE;
@@ -2881,14 +2941,38 @@ find_abstract_instance (struct comp_unit
 	  return FALSE;
 	}
       info_ptr += die_ref;
+    }
+  else if (attr_ptr->form == DW_FORM_GNU_ref_alt)
+    {
+      bfd_boolean first_time = unit->stash->alt.dwarf_info_buffer == NULL;
 
+      info_ptr = read_alt_indirect_ref (unit, die_ref);
+      if (first_time)
+	unit->stash->alt.info_ptr = unit->stash->alt.dwarf_info_buffer;
+      if (info_ptr == NULL)
+	{
+	  _bfd_error_handler
+	    (_("DWARF error: unable to read alt ref %" PRIu64),
+	     (uint64_t) die_ref);
+	  bfd_set_error (bfd_error_bad_value);
+	  return FALSE;
+	}
+      info_ptr_end = (unit->stash->alt.dwarf_info_buffer
+		      + unit->stash->alt.dwarf_info_size);
+      if (unit->stash->alt.all_comp_units)
+	unit = unit->stash->alt.all_comp_units;
+    }
+
+  if (attr_ptr->form == DW_FORM_ref_addr
+      || attr_ptr->form == DW_FORM_GNU_ref_alt)
+    {
       /* Now find the CU containing this pointer.  */
       if (info_ptr >= unit->info_ptr_unit && info_ptr < unit->end_ptr)
 	info_ptr_end = unit->end_ptr;
       else
 	{
 	  /* Check other CUs to see if they contain the abbrev.  */
-	  struct comp_unit * u;
+	  struct comp_unit *u;
 
 	  for (u = unit->prev_unit; u != NULL; u = u->prev_unit)
 	    if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
@@ -2899,15 +2983,27 @@ find_abstract_instance (struct comp_unit
 	      if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
 		break;
 
-	  while (u == NULL)
-	    {
-	      u = stash_comp_unit (unit->stash);
-	      if (u == NULL)
-		break;
-	      if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
-		break;
-	      u = NULL;
-	    }
+	  if (attr_ptr->form == DW_FORM_ref_addr)
+	    while (u == NULL)
+	      {
+		u = stash_comp_unit (unit->stash, &unit->stash->f);
+		if (u == NULL)
+		  break;
+		if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
+		  break;
+		u = NULL;
+	      }
+
+	  if (attr_ptr->form == DW_FORM_GNU_ref_alt)
+	    while (u == NULL)
+	      {
+		u = stash_comp_unit (unit->stash, &unit->stash->alt);
+		if (u == NULL)
+		  break;
+		if (info_ptr >= u->info_ptr_unit && info_ptr < u->end_ptr)
+		  break;
+		u = NULL;
+	      }
 
 	  if (u == NULL)
 	    {
@@ -2921,23 +3017,6 @@ find_abstract_instance (struct comp_unit
 	  info_ptr_end = unit->end_ptr;
 	}
     }
-  else if (attr_ptr->form == DW_FORM_GNU_ref_alt)
-    {
-      info_ptr = read_alt_indirect_ref (unit, die_ref);
-      if (info_ptr == NULL)
-	{
-	  _bfd_error_handler
-	    (_("DWARF error: unable to read alt ref %" PRIu64),
-	     (uint64_t) die_ref);
-	  bfd_set_error (bfd_error_bad_value);
-	  return FALSE;
-	}
-      info_ptr_end = (unit->stash->alt_dwarf_info_buffer
-		      + unit->stash->alt_dwarf_info_size);
-
-      /* FIXME: Do we need to locate the correct CU, in a similar
-	 fashion to the code in the DW_FORM_ref_addr case above ?  */
-    }
   else
     {
       /* DW_FORM_ref1, DW_FORM_ref2, DW_FORM_ref4, DW_FORM_ref8 or
@@ -3009,7 +3088,7 @@ find_abstract_instance (struct comp_unit
 		    }
 		  break;
 		case DW_AT_decl_file:
-		  if (!comp_unit_maybe_decode_line_info (unit, unit->stash))
+		  if (!comp_unit_maybe_decode_line_info (unit))
 		    return FALSE;
 		  *filename_ptr = concat_filename (unit->line_table,
 						   attr.u.val);
@@ -3035,16 +3114,16 @@ read_rangelist (struct comp_unit *unit, 
   bfd_byte *ranges_end;
   bfd_vma base_address = unit->base_address;
 
-  if (! unit->stash->dwarf_ranges_buffer)
+  if (! unit->file->dwarf_ranges_buffer)
     {
       if (! read_debug_ranges (unit))
 	return FALSE;
     }
 
-  ranges_ptr = unit->stash->dwarf_ranges_buffer + offset;
-  if (ranges_ptr < unit->stash->dwarf_ranges_buffer)
+  ranges_ptr = unit->file->dwarf_ranges_buffer + offset;
+  if (ranges_ptr < unit->file->dwarf_ranges_buffer)
     return FALSE;
-  ranges_end = unit->stash->dwarf_ranges_buffer + unit->stash->dwarf_ranges_size;
+  ranges_end = unit->file->dwarf_ranges_buffer + unit->file->dwarf_ranges_size;
 
   for (;;)
     {
@@ -3374,6 +3453,8 @@ scan_unit_for_symbols (struct comp_unit 
 
 static struct comp_unit *
 parse_comp_unit (struct dwarf2_debug *stash,
+		 struct dwarf2_debug_file *file,
+		 bfd_byte *info_ptr,
 		 bfd_vma unit_length,
 		 bfd_byte *info_ptr_unit,
 		 unsigned int offset_size)
@@ -3387,12 +3468,11 @@ parse_comp_unit (struct dwarf2_debug *st
   unsigned int abbrev_number, bytes_read, i;
   struct abbrev_info *abbrev;
   struct attribute attr;
-  bfd_byte *info_ptr = stash->info_ptr;
   bfd_byte *end_ptr = info_ptr + unit_length;
   bfd_size_type amt;
   bfd_vma low_pc = 0;
   bfd_vma high_pc = 0;
-  bfd *abfd = stash->bfd_ptr;
+  bfd *abfd = file->bfd_ptr;
   bfd_boolean high_pc_relative = FALSE;
   enum dwarf_unit_type unit_type;
 
@@ -3469,7 +3549,7 @@ parse_comp_unit (struct dwarf2_debug *st
     }
 
   /* Read the abbrevs for this compilation unit into a table.  */
-  abbrevs = read_abbrevs (abfd, abbrev_offset, stash);
+  abbrevs = read_abbrevs (abfd, abbrev_offset, stash, file);
   if (! abbrevs)
     return NULL;
 
@@ -3505,6 +3585,7 @@ parse_comp_unit (struct dwarf2_debug *st
   unit->abbrevs = abbrevs;
   unit->end_ptr = end_ptr;
   unit->stash = stash;
+  unit->file = file;
   unit->info_ptr_unit = info_ptr_unit;
 
   for (i = 0; i < abbrev->num_attrs; ++i)
@@ -3631,18 +3712,17 @@ comp_unit_find_nearest_line (struct comp
 			     const char **filename_ptr,
 			     struct funcinfo **function_ptr,
 			     unsigned int *linenumber_ptr,
-			     unsigned int *discriminator_ptr,
-			     struct dwarf2_debug *stash)
+			     unsigned int *discriminator_ptr)
 {
   bfd_boolean func_p;
 
-  if (!comp_unit_maybe_decode_line_info (unit, stash))
+  if (!comp_unit_maybe_decode_line_info (unit))
     return FALSE;
 
   *function_ptr = NULL;
   func_p = lookup_address_in_function_table (unit, addr, function_ptr);
   if (func_p && (*function_ptr)->tag == DW_TAG_inlined_subroutine)
-    stash->inliner_chain = *function_ptr;
+    unit->stash->inliner_chain = *function_ptr;
 
   return lookup_address_in_line_info_table (unit->line_table, addr,
 					    filename_ptr,
@@ -3655,8 +3735,7 @@ comp_unit_find_nearest_line (struct comp
    FALSE otherwise.  */
 
 static bfd_boolean
-comp_unit_maybe_decode_line_info (struct comp_unit *unit,
-				  struct dwarf2_debug *stash)
+comp_unit_maybe_decode_line_info (struct comp_unit *unit)
 {
   if (unit->error)
     return FALSE;
@@ -3669,7 +3748,7 @@ comp_unit_maybe_decode_line_info (struct
 	  return FALSE;
 	}
 
-      unit->line_table = decode_line_info (unit, stash);
+      unit->line_table = decode_line_info (unit);
 
       if (! unit->line_table)
 	{
@@ -3701,10 +3780,9 @@ comp_unit_find_line (struct comp_unit *u
 		     asymbol *sym,
 		     bfd_vma addr,
 		     const char **filename_ptr,
-		     unsigned int *linenumber_ptr,
-		     struct dwarf2_debug *stash)
+		     unsigned int *linenumber_ptr)
 {
-  if (!comp_unit_maybe_decode_line_info (unit, stash))
+  if (!comp_unit_maybe_decode_line_info (unit))
     return FALSE;
 
   if (sym->flags & BSF_FUNCTION)
@@ -3763,7 +3841,7 @@ comp_unit_hash_info (struct dwarf2_debug
 
   BFD_ASSERT (stash->info_hash_status != STASH_INFO_HASH_DISABLED);
 
-  if (!comp_unit_maybe_decode_line_info (unit, stash))
+  if (!comp_unit_maybe_decode_line_info (unit))
     return FALSE;
 
   BFD_ASSERT (!unit->cached);
@@ -3902,17 +3980,17 @@ static void
 _bfd_dwarf2_stash_syms (struct dwarf2_debug *stash, bfd *abfd,
 			asection **sec, asymbol ***syms)
 {
-  if (stash->bfd_ptr != abfd)
+  if (stash->f.bfd_ptr != abfd)
     {
       asection *s, *d;
 
       if (*sec == NULL)
 	{
-	  *syms = stash->syms;
+	  *syms = stash->f.syms;
 	  return;
 	}
 
-      for (s = abfd->sections, d = stash->bfd_ptr->sections;
+      for (s = abfd->sections, d = stash->f.bfd_ptr->sections;
 	   s != NULL && d != NULL;
 	   s = s->next, d = d->next)
 	{
@@ -3922,7 +4000,7 @@ _bfd_dwarf2_stash_syms (struct dwarf2_de
 	      && strcmp (s->name, d->name) == 0)
 	    {
 	      *sec = d;
-	      *syms = stash->syms;
+	      *syms = stash->f.syms;
 	      break;
 	    }
 	}
@@ -3996,9 +4074,9 @@ place_sections (bfd *orig_bfd, struct dw
 
 	  i++;
 	}
-      if (abfd == stash->bfd_ptr)
+      if (abfd == stash->f.bfd_ptr)
 	break;
-      abfd = stash->bfd_ptr;
+      abfd = stash->f.bfd_ptr;
     }
 
   if (i <= 1)
@@ -4061,14 +4139,14 @@ place_sections (bfd *orig_bfd, struct dw
 	      p->adj_vma = sect->vma;
 	      p++;
 	    }
-	  if (abfd == stash->bfd_ptr)
+	  if (abfd == stash->f.bfd_ptr)
 	    break;
-	  abfd = stash->bfd_ptr;
+	  abfd = stash->f.bfd_ptr;
 	}
     }
 
-  if (orig_bfd != stash->bfd_ptr)
-    set_debug_vma (orig_bfd, stash->bfd_ptr);
+  if (orig_bfd != stash->f.bfd_ptr)
+    set_debug_vma (orig_bfd, stash->f.bfd_ptr);
 
   return TRUE;
 }
@@ -4172,13 +4250,13 @@ stash_maybe_update_info_hash_tables (str
   struct comp_unit *each;
 
   /* Exit if hash tables are up-to-date.  */
-  if (stash->all_comp_units == stash->hash_units_head)
+  if (stash->f.all_comp_units == stash->hash_units_head)
     return TRUE;
 
   if (stash->hash_units_head)
     each = stash->hash_units_head->prev_unit;
   else
-    each = stash->last_comp_unit;
+    each = stash->f.last_comp_unit;
 
   while (each)
     {
@@ -4191,7 +4269,7 @@ stash_maybe_update_info_hash_tables (str
       each = each->prev_unit;
     }
 
-  stash->hash_units_head = stash->all_comp_units;
+  stash->hash_units_head = stash->f.all_comp_units;
   return TRUE;
 }
 
@@ -4206,7 +4284,7 @@ stash_verify_info_hash_table (struct dwa
   struct info_list_node *node;
   bfd_boolean found;
 
-  for (each_unit = stash->all_comp_units;
+  for (each_unit = stash->f.all_comp_units;
        each_unit;
        each_unit = each_unit->next_unit)
     {
@@ -4386,7 +4464,7 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
 	{
 	  /* Check that we did previously find some debug information
 	     before attempting to make use of it.  */
-	  if (stash->bfd_ptr != NULL)
+	  if (stash->f.bfd_ptr != NULL)
 	    {
 	      if (do_place && !place_sections (abfd, stash))
 		return FALSE;
@@ -4406,10 +4484,20 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
     }
   stash->orig_bfd = abfd;
   stash->debug_sections = debug_sections;
-  stash->syms = symbols;
+  stash->f.syms = symbols;
   if (!save_section_vma (abfd, stash))
     return FALSE;
 
+  stash->f.abbrev_offsets = htab_create_alloc (10, hash_abbrev, eq_abbrev,
+					       del_abbrev, calloc, free);
+  if (!stash->f.abbrev_offsets)
+    return FALSE;
+
+  stash->alt.abbrev_offsets = htab_create_alloc (10, hash_abbrev, eq_abbrev,
+						 del_abbrev, calloc, free);
+  if (!stash->alt.abbrev_offsets)
+    return FALSE;
+
   *pinfo = stash;
 
   if (debug_bfd == NULL)
@@ -4449,10 +4537,10 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
 	}
 
       symbols = bfd_get_outsymbols (debug_bfd);
-      stash->syms = symbols;
+      stash->f.syms = symbols;
       stash->close_on_cleanup = TRUE;
     }
-  stash->bfd_ptr = debug_bfd;
+  stash->f.bfd_ptr = debug_bfd;
 
   if (do_place
       && !place_sections (abfd, stash))
@@ -4475,7 +4563,7 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
       total_size = msec->size;
       if (! read_section (debug_bfd, &stash->debug_sections[debug_info],
 			  symbols, 0,
-			  &stash->info_ptr_memory, &total_size))
+			  &stash->f.dwarf_info_buffer, &total_size))
 	return FALSE;
     }
   else
@@ -4495,8 +4583,8 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
 	  total_size += msec->size;
 	}
 
-      stash->info_ptr_memory = (bfd_byte *) bfd_malloc (total_size);
-      if (stash->info_ptr_memory == NULL)
+      stash->f.dwarf_info_buffer = (bfd_byte *) bfd_malloc (total_size);
+      if (stash->f.dwarf_info_buffer == NULL)
 	return FALSE;
 
       total_size = 0;
@@ -4511,7 +4599,7 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
 	    continue;
 
 	  if (!(bfd_simple_get_relocated_section_contents
-		(debug_bfd, msec, stash->info_ptr_memory + total_size,
+		(debug_bfd, msec, stash->f.dwarf_info_buffer + total_size,
 		 symbols)))
 	    return FALSE;
 
@@ -4519,35 +4607,33 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd,
 	}
     }
 
-  stash->info_ptr = stash->info_ptr_memory;
-  stash->info_ptr_end = stash->info_ptr + total_size;
-  stash->sec = find_debug_info (debug_bfd, debug_sections, NULL);
-  stash->sec_info_ptr = stash->info_ptr;
+  stash->f.info_ptr = stash->f.dwarf_info_buffer;
+  stash->f.dwarf_info_size = total_size;
   return TRUE;
 }
 
-/* Parse the next DWARF2 compilation unit at STASH->INFO_PTR.  */
+/* Parse the next DWARF2 compilation unit at FILE->INFO_PTR.  */
 
 static struct comp_unit *
-stash_comp_unit (struct dwarf2_debug *stash)
+stash_comp_unit (struct dwarf2_debug *stash, struct dwarf2_debug_file *file)
 {
   bfd_size_type length;
   unsigned int offset_size;
-  bfd_byte *info_ptr_unit = stash->info_ptr;
+  bfd_byte *info_ptr_unit = file->info_ptr;
+  bfd_byte *info_ptr_end = file->dwarf_info_buffer + file->dwarf_info_size;
 
-  if (stash->info_ptr >= stash->info_ptr_end)
+  if (file->info_ptr >= info_ptr_end)
     return NULL;
 
-  length = read_4_bytes (stash->bfd_ptr, stash->info_ptr,
-			 stash->info_ptr_end);
+  length = read_4_bytes (file->bfd_ptr, file->info_ptr, info_ptr_end);
   /* A 0xffffff length is the DWARF3 way of indicating
      we use 64-bit offsets, instead of 32-bit offsets.  */
   if (length == 0xffffffff)
     {
       offset_size = 8;
-      length = read_8_bytes (stash->bfd_ptr, stash->info_ptr + 4,
-			     stash->info_ptr_end);
-      stash->info_ptr += 12;
+      length = read_8_bytes (file->bfd_ptr, file->info_ptr + 4,
+			     info_ptr_end);
+      file->info_ptr += 12;
     }
   /* A zero length is the IRIX way of indicating 64-bit offsets,
      mostly because the 64-bit length will generally fit in 32
@@ -4555,9 +4641,9 @@ stash_comp_unit (struct dwarf2_debug *st
   else if (length == 0)
     {
       offset_size = 8;
-      length = read_4_bytes (stash->bfd_ptr, stash->info_ptr + 4,
-			     stash->info_ptr_end);
-      stash->info_ptr += 8;
+      length = read_4_bytes (file->bfd_ptr, file->info_ptr + 4,
+			     info_ptr_end);
+      file->info_ptr += 8;
     }
   /* In the absence of the hints above, we assume 32-bit DWARF2
      offsets even for targets with 64-bit addresses, because:
@@ -4571,42 +4657,34 @@ stash_comp_unit (struct dwarf2_debug *st
   else
     {
       offset_size = 4;
-      stash->info_ptr += 4;
+      file->info_ptr += 4;
     }
 
   if (length != 0
-      && stash->info_ptr + length <= stash->info_ptr_end
-      && stash->info_ptr + length > stash->info_ptr)
+      && file->info_ptr + length <= info_ptr_end
+      && file->info_ptr + length > file->info_ptr)
     {
-      struct comp_unit *each = parse_comp_unit (stash, length, info_ptr_unit,
-						offset_size);
+      struct comp_unit *each = parse_comp_unit (stash, file,
+						file->info_ptr, length,
+						info_ptr_unit, offset_size);
       if (each)
 	{
-	  if (stash->all_comp_units)
-	    stash->all_comp_units->prev_unit = each;
+	  if (file->all_comp_units)
+	    file->all_comp_units->prev_unit = each;
 	  else
-	    stash->last_comp_unit = each;
+	    file->last_comp_unit = each;
 
-	  each->next_unit = stash->all_comp_units;
-	  stash->all_comp_units = each;
+	  each->next_unit = file->all_comp_units;
+	  file->all_comp_units = each;
 
-	  stash->info_ptr += length;
-
-	  if ((bfd_size_type) (stash->info_ptr - stash->sec_info_ptr)
-	      == stash->sec->size)
-	    {
-	      stash->sec = find_debug_info (stash->bfd_ptr,
-					    stash->debug_sections,
-					    stash->sec);
-	      stash->sec_info_ptr = stash->info_ptr;
-	    }
+	  file->info_ptr += length;
 	  return each;
 	}
     }
 
   /* Don't trust any of the DWARF info after a corrupted length or
      parse error.  */
-  stash->info_ptr = stash->info_ptr_end;
+  file->info_ptr = info_ptr_end;
   return NULL;
 }
 
@@ -4661,11 +4739,11 @@ _bfd_dwarf2_find_symbol_bias (asymbol **
 	}
     }
 
-  for (unit = stash->all_comp_units; unit; unit = unit->next_unit)
+  for (unit = stash->f.all_comp_units; unit; unit = unit->next_unit)
     {
       struct funcinfo * func;
 
-      comp_unit_maybe_decode_line_info (unit, stash);
+      comp_unit_maybe_decode_line_info (unit);
 
       for (func = unit->function_table; func != NULL; func = func->prev_func)
 	if (func->name && func->arange.low)
@@ -4701,9 +4779,7 @@ _bfd_dwarf2_find_symbol_bias (asymbol **
    info is present but not regarding the requested code location.
    Returns 0 otherwise.
    SYMBOLS contains the symbol table for ABFD.
-   DEBUG_SECTIONS contains the name of the dwarf debug sections.
-   field and in the abbreviation offset, or zero to indicate that the
-   default value should be used.  */
+   DEBUG_SECTIONS contains the name of the dwarf debug sections.  */
 
 int
 _bfd_dwarf2_find_nearest_line (bfd *abfd,
@@ -4800,7 +4876,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
 
   /* A null info_ptr indicates that there is no dwarf2 info
      (or that an error occured while setting up the stash).  */
-  if (! stash->info_ptr)
+  if (! stash->f.info_ptr)
     return FALSE;
 
   stash->inliner_chain = NULL;
@@ -4829,13 +4905,13 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
       else
 	{
 	  /* Check the previously read comp. units first.  */
-	  for (each = stash->all_comp_units; each; each = each->next_unit)
+	  for (each = stash->f.all_comp_units; each; each = each->next_unit)
 	    if ((symbol->flags & BSF_FUNCTION) == 0
 		|| each->arange.high == 0
 		|| comp_unit_contains_address (each, addr))
 	      {
 		found = comp_unit_find_line (each, symbol, addr, filename_ptr,
-					     linenumber_ptr, stash);
+					     linenumber_ptr);
 		if (found)
 		  goto done;
 	      }
@@ -4849,18 +4925,16 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
       unsigned int local_linenumber = 0;
       unsigned int local_discriminator = 0;
 
-      for (each = stash->all_comp_units; each; each = each->next_unit)
+      for (each = stash->f.all_comp_units; each; each = each->next_unit)
 	{
 	  bfd_vma range = (bfd_vma) -1;
 
 	  found = ((each->arange.high == 0
 		    || comp_unit_contains_address (each, addr))
-		   && (range = comp_unit_find_nearest_line (each, addr,
-							    & local_filename,
-							    & local_function,
-							    & local_linenumber,
-							    & local_discriminator,
-							    stash)) != 0);
+		   && (range = (comp_unit_find_nearest_line
+				(each, addr, &local_filename,
+				 &local_function, &local_linenumber,
+				 &local_discriminator))) != 0);
 	  if (found)
 	    {
 	      /* PRs 15935 15994: Bogus debug information may have provided us
@@ -4897,7 +4971,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
     }
 
   /* Read each remaining comp. units checking each as they are read.  */
-  while ((each = stash_comp_unit (stash)) != NULL)
+  while ((each = stash_comp_unit (stash, &stash->f)) != NULL)
     {
       /* DW_AT_low_pc and DW_AT_high_pc are optional for
 	 compilation units.  If we don't have them (i.e.,
@@ -4909,9 +4983,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
 		  || each->arange.high == 0
 		  || comp_unit_contains_address (each, addr))
 		 && comp_unit_find_line (each, symbol, addr,
-					 filename_ptr,
-					 linenumber_ptr,
-					 stash));
+					 filename_ptr, linenumber_ptr));
       else
 	found = ((each->arange.high == 0
 		  || comp_unit_contains_address (each, addr))
@@ -4919,8 +4991,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd
 						 filename_ptr,
 						 &function,
 						 linenumber_ptr,
-						 discriminator_ptr,
-						 stash) != 0);
+						 discriminator_ptr) != 0);
 
       if (found)
 	break;
@@ -4999,96 +5070,85 @@ _bfd_dwarf2_cleanup_debug_info (bfd *abf
 {
   struct dwarf2_debug *stash = (struct dwarf2_debug *) *pinfo;
   struct comp_unit *each;
+  struct dwarf2_debug_file *file;
 
   if (abfd == NULL || stash == NULL)
     return;
 
-  for (each = stash->all_comp_units; each; each = each->next_unit)
-    {
-      struct abbrev_info **abbrevs = each->abbrevs;
-      struct funcinfo *function_table = each->function_table;
-      struct varinfo *variable_table = each->variable_table;
-      size_t i;
+  if (stash->varinfo_hash_table)
+    bfd_hash_table_free (&stash->varinfo_hash_table->base);
+  if (stash->funcinfo_hash_table)
+    bfd_hash_table_free (&stash->funcinfo_hash_table->base);
 
-      for (i = 0; i < ABBREV_HASH_SIZE; i++)
+  file = &stash->f;
+  while (1)
+    {
+      for (each = file->all_comp_units; each; each = each->next_unit)
 	{
-	  struct abbrev_info *abbrev = abbrevs[i];
+	  struct funcinfo *function_table = each->function_table;
+	  struct varinfo *variable_table = each->variable_table;
 
-	  while (abbrev)
+	  if (each->line_table && each->line_table != file->line_table)
 	    {
-	      free (abbrev->attrs);
-	      abbrev = abbrev->next;
+	      free (each->line_table->files);
+	      free (each->line_table->dirs);
 	    }
-	}
 
-      if (each->line_table)
-	{
-	  free (each->line_table->dirs);
-	  free (each->line_table->files);
-	}
+	  if (each->lookup_funcinfo_table)
+	    {
+	      free (each->lookup_funcinfo_table);
+	      each->lookup_funcinfo_table = NULL;
+	    }
 
-      while (function_table)
-	{
-	  if (function_table->file)
+	  while (function_table)
 	    {
-	      free (function_table->file);
-	      function_table->file = NULL;
+	      if (function_table->file)
+		{
+		  free (function_table->file);
+		  function_table->file = NULL;
+		}
+	      if (function_table->caller_file)
+		{
+		  free (function_table->caller_file);
+		  function_table->caller_file = NULL;
+		}
+	      function_table = function_table->prev_func;
 	    }
 
-	  if (function_table->caller_file)
+	  while (variable_table)
 	    {
-	      free (function_table->caller_file);
-	      function_table->caller_file = NULL;
+	      if (variable_table->file)
+		{
+		  free (variable_table->file);
+		  variable_table->file = NULL;
+		}
+	      variable_table = variable_table->prev_var;
 	    }
-	  function_table = function_table->prev_func;
 	}
 
-      if (each->lookup_funcinfo_table)
+      if (file->line_table)
 	{
-	  free (each->lookup_funcinfo_table);
-	  each->lookup_funcinfo_table = NULL;
+	  free (file->line_table->files);
+	  free (file->line_table->dirs);
 	}
+      htab_delete (file->abbrev_offsets);
 
-      while (variable_table)
-	{
-	  if (variable_table->file)
-	    {
-	      free (variable_table->file);
-	      variable_table->file = NULL;
-	    }
-
-	  variable_table = variable_table->prev_var;
-	}
+      free (file->dwarf_line_str_buffer);
+      free (file->dwarf_str_buffer);
+      free (file->dwarf_ranges_buffer);
+      free (file->dwarf_line_buffer);
+      free (file->dwarf_abbrev_buffer);
+      free (file->dwarf_info_buffer);
+      if (file == &stash->alt)
+	break;
+      file = &stash->alt;
     }
-
-  if (stash->funcinfo_hash_table)
-    bfd_hash_table_free (&stash->funcinfo_hash_table->base);
-  if (stash->varinfo_hash_table)
-    bfd_hash_table_free (&stash->varinfo_hash_table->base);
-  if (stash->dwarf_abbrev_buffer)
-    free (stash->dwarf_abbrev_buffer);
-  if (stash->dwarf_line_buffer)
-    free (stash->dwarf_line_buffer);
-  if (stash->dwarf_str_buffer)
-    free (stash->dwarf_str_buffer);
-  if (stash->dwarf_line_str_buffer)
-    free (stash->dwarf_line_str_buffer);
-  if (stash->dwarf_ranges_buffer)
-    free (stash->dwarf_ranges_buffer);
-  if (stash->info_ptr_memory)
-    free (stash->info_ptr_memory);
+  free (stash->sec_vma);
+  free (stash->adjusted_sections);
   if (stash->close_on_cleanup)
-    bfd_close (stash->bfd_ptr);
-  if (stash->alt_dwarf_str_buffer)
-    free (stash->alt_dwarf_str_buffer);
-  if (stash->alt_dwarf_info_buffer)
-    free (stash->alt_dwarf_info_buffer);
-  if (stash->sec_vma)
-    free (stash->sec_vma);
-  if (stash->adjusted_sections)
-    free (stash->adjusted_sections);
-  if (stash->alt_bfd_ptr)
-    bfd_close (stash->alt_bfd_ptr);
+    bfd_close (stash->f.bfd_ptr);
+  if (stash->alt.bfd_ptr)
+    bfd_close (stash->alt.bfd_ptr);
 }
 
 /* Find the function to a particular section and 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.20191203/bfd/elf-eh-frame.c ./bfd/elf-eh-frame.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/bfd/elf-eh-frame.c	2019-12-03 01:49:13.000000000 +0000
+++ ./bfd/elf-eh-frame.c	2019-12-10 01:49:23.000000000 +0000
@@ -1532,19 +1532,23 @@ _bfd_elf_discard_section_eh_frame
 		   don't create the binary search table,
 		   since it is affected by runtime relocations.  */
 		hdr_info->u.dwarf.table = FALSE;
-		if (num_warnings_issued < 10)
+		/* Only warn if --eh-frame-hdr was specified.  */
+		if (info->eh_frame_hdr_type != 0)
 		  {
-		    _bfd_error_handler
-		      /* xgettext:c-format */
-		      (_("FDE encoding in %pB(%pA) prevents .eh_frame_hdr"
-			 " table being created"), abfd, sec);
-		    num_warnings_issued ++;
-		  }
-		else if (num_warnings_issued == 10)
-		  {
-		    _bfd_error_handler
-		      (_("further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"));
-		    num_warnings_issued ++;
+		    if (num_warnings_issued < 10)
+		      {
+			_bfd_error_handler
+			  /* xgettext:c-format */
+			  (_("FDE encoding in %pB(%pA) prevents .eh_frame_hdr"
+			     " table being created"), abfd, sec);
+			num_warnings_issued ++;
+		      }
+		    else if (num_warnings_issued == 10)
+		      {
+			_bfd_error_handler
+			  (_("further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"));
+			num_warnings_issued ++;
+		      }
 		  }
 	      }
 	    ent->removed = 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.20191203/bfd/elflink.c ./bfd/elflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/bfd/elflink.c	2019-12-03 01:49:13.000000000 +0000
+++ ./bfd/elflink.c	2019-12-10 01:49:24.000000000 +0000
@@ -1904,7 +1904,7 @@ _bfd_elf_add_default_symbol (bfd *abfd,
   if (skip)
     goto nondefault;
 
-  if (hi->def_regular)
+  if (hi->def_regular || ELF_COMMON_DEF_P (hi))
     {
       /* If the undecorated symbol will have a version added by a
 	 script different to H, then don't indirect to/from the
@@ -2367,7 +2367,7 @@ _bfd_elf_link_assign_sym_version (struct
 
   /* We only need version numbers for symbols defined in regular
      objects.  */
-  if (!h->def_regular)
+  if (!h->def_regular && !ELF_COMMON_DEF_P (h))
     {
       /* Hide symbols defined in discarded input sections.  */
       if ((h->root.type == bfd_link_hash_defined
@@ -10246,7 +10246,7 @@ elf_link_output_extsym (struct bfd_hash_
 	  Elf_Internal_Versym iversym;
 	  Elf_External_Versym *eversym;
 
-	  if (!h->def_regular)
+	  if (!h->def_regular && !ELF_COMMON_DEF_P (h))
 	    {
 	      if (h->verinfo.verdef == NULL
 		  || (elf_dyn_lib_class (h->verinfo.verdef->vd_bfd)
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.20191203/bfd/peXXigen.c ./bfd/peXXigen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/bfd/peXXigen.c	2019-12-03 01:49:13.000000000 +0000
+++ ./bfd/peXXigen.c	2019-12-10 01:49:24.000000000 +0000
@@ -723,6 +723,9 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, v
       {
 	int rounded = FA (sec->size);
 
+	if (rounded == 0)
+	  continue;
+
 	/* The first non-zero section filepos is the header size.
 	   Sections without contents will have a filepos of 0.  */
 	if (hsize == 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.20191203/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/bfd/version.h	2019-12-03 01:49:13.000000000 +0000
+++ ./bfd/version.h	2019-12-10 01:49:24.000000000 +0000
@@ -16,7 +16,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20191203
+#define BFD_VERSION_DATE 20191210
 #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.20191203/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/djunpack.bat	2019-12-03 01:53:58.000000000 +0000
+++ ./djunpack.bat	2019-12-10 01:53:37.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.20191203
-if "%GDBVER%"=="$package-9.0.50.20191203" GoTo EnvOk
+set GDBVER=$package-9.0.50.20191210
+if "%GDBVER%"=="$package-9.0.50.20191210" 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.20191203/gdb/aarch64-linux-tdep.c ./gdb/aarch64-linux-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/aarch64-linux-tdep.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/aarch64-linux-tdep.c	2019-12-10 01:49:26.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.20191203/gdb/aarch64-tdep.c ./gdb/aarch64-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/aarch64-tdep.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/aarch64-tdep.c	2019-12-10 01:49:26.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.20191203/gdb/ada-lang.c ./gdb/ada-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/ada-lang.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/ada-lang.c	2019-12-10 01:49:26.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.20191203/gdb/avr-tdep.c ./gdb/avr-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/avr-tdep.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/avr-tdep.c	2019-12-10 01:49:26.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.20191203/gdb/bcache.c ./gdb/bcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/bcache.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/bcache.c	2019-12-10 01:49:26.000000000 +0000
@@ -25,6 +25,8 @@
 
 #include <algorithm>
 
+namespace gdb {
+
 /* The type used to hold a single bcache string.  The user data is
    stored in d.data.  Since it can be any type, it needs to have the
    same alignment as the most strict alignment of any type on the host
@@ -51,31 +53,6 @@ struct bstring
   d;
 };
 
-/* The old hash function was stolen from SDBM. This is what DB 3.0
-   uses now, and is better than the old one.  */
-
-unsigned long
-hash(const void *addr, int length)
-{
-  return hash_continue (addr, length, 0);
-}
-
-/* Continue the calculation of the hash H at the given address.  */
-
-unsigned long
-hash_continue (const void *addr, int length, unsigned long h)
-{
-  const unsigned char *k, *e;
-
-  k = (const unsigned char *)addr;
-  e = k+length;
-  for (; k< e;++k)
-    {
-      h *=16777619;
-      h ^= *k;
-    }
-  return (h);
-}
 
 /* Growing the bcache's hash table.  */
 
@@ -403,3 +380,5 @@ bcache::memory_used ()
     return 0;
   return obstack_memory_used (&m_cache);
 }
+
+} /* namespace 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.20191203/gdb/bcache.h ./gdb/bcache.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/bcache.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/bcache.h	2019-12-10 01:49:26.000000000 +0000
@@ -136,25 +136,22 @@
   
 */
 
-struct bstring;
+namespace gdb {
 
-/* The hash functions */
-extern unsigned long hash (const void *addr, int length);
-extern unsigned long hash_continue (const void *addr, int length,
-                                    unsigned long h);
+struct bstring;
 
 struct bcache
 {
   /* Allocate a bcache.  HASH_FN and COMPARE_FN can be used to pass in
      custom hash, and compare functions to be used by this bcache.  If
-     HASH_FUNCTION is NULL hash() is used and if COMPARE_FUNCTION is
+     HASH_FUNCTION is NULL fast_hash() is used and if COMPARE_FUNCTION is
      NULL memcmp() is used.  */
 
   explicit bcache (unsigned long (*hash_fn)(const void *,
 					    int length) = nullptr,
 		   int (*compare_fn)(const void *, const void *,
 				     int length) = nullptr)
-    : m_hash_function (hash_fn == nullptr ? hash : hash_fn),
+    : m_hash_function (hash_fn == nullptr ? default_hash : hash_fn),
       m_compare_function (compare_fn == nullptr ? compare : compare_fn)
   {
   }
@@ -217,8 +214,16 @@ private:
   /* Default compare function.  */
   static int compare (const void *addr1, const void *addr2, int length);
 
+  /* Default hash function.  */
+  static unsigned long default_hash (const void *ptr, int length)
+  {
+    return fast_hash (ptr, length, 0);
+  }
+
   /* Expand the hash table.  */
   void expand_hash_table ();
 };
 
+} /* namespace gdb */
+
 #endif /* BCACHE_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.20191203/gdb/block.c ./gdb/block.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/block.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/block.c	2019-12-10 01:49:26.000000000 +0000
@@ -657,6 +657,43 @@ block_iter_match_next (const lookup_name
   return block_iter_match_step (iterator, name, 0);
 }
 
+/* Return true if symbol A is the best match possible for DOMAIN.  */
+
+static bool
+best_symbol (struct symbol *a, const domain_enum domain)
+{
+  return (SYMBOL_DOMAIN (a) == domain
+	  && SYMBOL_CLASS (a) != LOC_UNRESOLVED);
+}
+
+/* Return symbol B if it is a better match than symbol A for DOMAIN.
+   Otherwise return A.  */
+
+static struct symbol *
+better_symbol (struct symbol *a, struct symbol *b, const domain_enum domain)
+{
+  if (a == NULL)
+    return b;
+  if (b == NULL)
+    return a;
+
+  if (SYMBOL_DOMAIN (a) == domain
+      && SYMBOL_DOMAIN (b) != domain)
+    return a;
+  if (SYMBOL_DOMAIN (b) == domain
+      && SYMBOL_DOMAIN (a) != domain)
+    return b;
+
+  if (SYMBOL_CLASS (a) != LOC_UNRESOLVED
+      && SYMBOL_CLASS (b) == LOC_UNRESOLVED)
+    return a;
+  if (SYMBOL_CLASS (b) != LOC_UNRESOLVED
+      && SYMBOL_CLASS (a) == LOC_UNRESOLVED)
+    return b;
+
+  return a;
+}
+
 /* See block.h.
 
    Note that if NAME is the demangled form of a C++ symbol, we will fail
@@ -684,7 +721,9 @@ block_lookup_symbol (const struct block 
 
       ALL_BLOCK_SYMBOLS_WITH_NAME (block, lookup_name, iter, sym)
 	{
-	  if (SYMBOL_DOMAIN (sym) == domain)
+	  /* See comment related to PR gcc/debug/91507 in
+	     block_lookup_symbol_primary.  */
+	  if (best_symbol (sym, domain))
 	    return sym;
 	  /* This is a bit of a hack, but symbol_matches_domain might ignore
 	     STRUCT vs VAR domain symbols.  So if a matching symbol is found,
@@ -692,7 +731,7 @@ block_lookup_symbol (const struct block 
 	     exactly the same domain.  PR 16253.  */
 	  if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
 				     SYMBOL_DOMAIN (sym), domain))
-	    other = sym;
+	    other = better_symbol (other, sym, domain);
 	}
       return other;
     }
@@ -746,7 +785,34 @@ block_lookup_symbol_primary (const struc
        sym != NULL;
        sym = mdict_iter_match_next (lookup_name, &mdict_iter))
     {
-      if (SYMBOL_DOMAIN (sym) == domain)
+      /* With the fix for PR gcc/debug/91507, we get for:
+	 ...
+	 extern char *zzz[];
+	 char *zzz[ ] = {
+	   "abc",
+	   "cde"
+	 };
+	 ...
+	 DWARF which will result in two entries in the symbol table, a decl
+	 with type char *[] and a def with type char *[2].
+
+	 If we return the decl here, we don't get the value of zzz:
+	 ...
+	 $ gdb a.spec.out -batch -ex "p zzz"
+	 $1 = 0x601030 <zzz>
+	 ...
+	 because we're returning the symbol without location information, and
+	 because the fallback that uses the address from the minimal symbols
+	 doesn't work either because the type of the decl does not specify a
+	 size.
+
+	 To fix this, we prefer def over decl in best_symbol and
+	 better_symbol.
+
+	 In absence of the gcc fix, both def and decl have type char *[], so
+	 the only option to make this work is improve the fallback to use the
+	 size of the minimal symbol.  Filed as PR exp/24989.  */
+      if (best_symbol (sym, domain))
 	return sym;
 
       /* This is a bit of a hack, but symbol_matches_domain might ignore
@@ -755,7 +821,7 @@ block_lookup_symbol_primary (const struc
 	 exactly the same domain.  PR 16253.  */
       if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
 				 SYMBOL_DOMAIN (sym), domain))
-	other = sym;
+	other = better_symbol (other, sym, domain);
     }
 
   return other;
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.20191203/gdb/breakpoint.c ./gdb/breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/breakpoint.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/breakpoint.c	2019-12-10 01:49:26.000000000 +0000
@@ -246,6 +246,9 @@ struct breakpoint_ops bkpt_breakpoint_op
 /* Breakpoints set on probes.  */
 static struct breakpoint_ops bkpt_probe_breakpoint_ops;
 
+/* Tracepoints set on probes.  */
+static struct breakpoint_ops tracepoint_probe_breakpoint_ops;
+
 /* Dynamic printf class type.  */
 struct breakpoint_ops dprintf_breakpoint_ops;
 
@@ -9163,6 +9166,41 @@ decode_static_tracepoint_spec (const cha
   return sals;
 }
 
+/* Returns the breakpoint ops appropriate for use with with LOCATION_TYPE and
+   according to IS_TRACEPOINT.  */
+
+static const struct breakpoint_ops *
+breakpoint_ops_for_event_location_type (enum event_location_type location_type,
+					bool is_tracepoint)
+{
+  if (is_tracepoint)
+    {
+      if (location_type == PROBE_LOCATION)
+	return &tracepoint_probe_breakpoint_ops;
+      else
+	return &tracepoint_breakpoint_ops;
+    }
+  else
+    {
+      if (location_type == PROBE_LOCATION)
+	return &bkpt_probe_breakpoint_ops;
+      else
+	return &bkpt_breakpoint_ops;
+    }
+}
+
+/* See breakpoint.h.  */
+
+const struct breakpoint_ops *
+breakpoint_ops_for_event_location (const struct event_location *location,
+				   bool is_tracepoint)
+{
+  if (location != nullptr)
+    return breakpoint_ops_for_event_location_type
+      (event_location_type (location), is_tracepoint);
+  return is_tracepoint ? &tracepoint_breakpoint_ops : &bkpt_breakpoint_ops;
+}
+
 /* See breakpoint.h.  */
 
 int
@@ -9344,16 +9382,10 @@ break_command_1 (const char *arg, int fl
   enum bptype type_wanted = (flag & BP_HARDWAREFLAG
 			     ? bp_hardware_breakpoint
 			     : bp_breakpoint);
-  struct breakpoint_ops *ops;
 
   event_location_up location = string_to_event_location (&arg, current_language);
-
-  /* Matching breakpoints on probes.  */
-  if (location != NULL
-      && event_location_type (location.get ()) == PROBE_LOCATION)
-    ops = &bkpt_probe_breakpoint_ops;
-  else
-    ops = &bkpt_breakpoint_ops;
+  const struct breakpoint_ops *ops = breakpoint_ops_for_event_location
+    (location.get (), false /* is_tracepoint */);
 
   create_breakpoint (get_current_arch (),
 		     location.get (),
@@ -12802,8 +12834,7 @@ tracepoint_decode_location (struct break
 
 struct breakpoint_ops tracepoint_breakpoint_ops;
 
-/* The breakpoint_ops structure to be use on tracepoints placed in a
-   static probe.  */
+/* Virtual table for tracepoints on static probes.  */
 
 static void
 tracepoint_probe_create_sals_from_location
@@ -12824,8 +12855,6 @@ tracepoint_probe_decode_location (struct
   return bkpt_probe_decode_location (b, location, search_pspace);
 }
 
-static struct breakpoint_ops tracepoint_probe_breakpoint_ops;
-
 /* Dprintf breakpoint_ops methods.  */
 
 static void
@@ -14467,15 +14496,10 @@ set_tracepoint_count (int num)
 static void
 trace_command (const char *arg, int from_tty)
 {
-  struct breakpoint_ops *ops;
-
   event_location_up location = string_to_event_location (&arg,
 							 current_language);
-  if (location != NULL
-      && event_location_type (location.get ()) == PROBE_LOCATION)
-    ops = &tracepoint_probe_breakpoint_ops;
-  else
-    ops = &tracepoint_breakpoint_ops;
+  const struct breakpoint_ops *ops = breakpoint_ops_for_event_location
+    (location.get (), true /* is_tracepoint */);
 
   create_breakpoint (get_current_arch (),
 		     location.get (),
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.20191203/gdb/breakpoint.h ./gdb/breakpoint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/breakpoint.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/breakpoint.h	2019-12-10 01:49:26.000000000 +0000
@@ -1352,6 +1352,15 @@ extern void init_catchpoint (struct brea
 extern void install_breakpoint (int internal, std::unique_ptr<breakpoint> &&b,
 				int update_gll);
 
+/* Returns the breakpoint ops appropriate for use with with LOCATION and
+   according to IS_TRACEPOINT.  Use this to ensure, for example, that you pass
+   the correct ops to create_breakpoint for probe locations.  If LOCATION is
+   NULL, returns bkpt_breakpoint_ops (or tracepoint_breakpoint_ops, if
+   IS_TRACEPOINT is true).  */
+
+extern const struct breakpoint_ops *breakpoint_ops_for_event_location
+  (const struct event_location *location, bool is_tracepoint);
+
 /* Flags that can be passed down to create_breakpoint, etc., to affect
    breakpoint creation in several ways.  */
 
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.20191203/gdb/build-id.c ./gdb/build-id.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/build-id.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/build-id.c	2019-12-10 01:49:26.000000000 +0000
@@ -32,7 +32,8 @@
 const struct bfd_build_id *
 build_id_bfd_get (bfd *abfd)
 {
-  if (!bfd_check_format (abfd, bfd_object))
+  if (!bfd_check_format (abfd, bfd_object)
+      && !bfd_check_format (abfd, bfd_core))
     return NULL;
 
   if (abfd->build_id != NULL)
@@ -117,10 +118,13 @@ build_id_to_debug_bfd_1 (const std::stri
   return debug_bfd;
 }
 
-/* See build-id.h.  */
+/* Common code for finding BFDs of a given build-id.  This function
+   works with both debuginfo files (SUFFIX == ".debug") and executable
+   files (SUFFIX == "").  */
 
-gdb_bfd_ref_ptr
-build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
+static gdb_bfd_ref_ptr
+build_id_to_bfd_suffix (size_t build_id_len, const bfd_byte *build_id,
+			const char *suffix)
 {
   /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
      cause "/.build-id/..." lookups.  */
@@ -149,7 +153,7 @@ build_id_to_debug_bfd (size_t build_id_l
       while (size-- > 0)
 	string_appendf (link, "%02x", (unsigned) *data++);
 
-      link += ".debug";
+      link += suffix;
 
       gdb_bfd_ref_ptr debug_bfd
 	= build_id_to_debug_bfd_1 (link, build_id_len, build_id);
@@ -177,6 +181,22 @@ build_id_to_debug_bfd (size_t build_id_l
 
 /* See build-id.h.  */
 
+gdb_bfd_ref_ptr
+build_id_to_debug_bfd (size_t build_id_len, const bfd_byte *build_id)
+{
+  return build_id_to_bfd_suffix (build_id_len, build_id, ".debug");
+}
+
+/* See build-id.h.  */
+
+gdb_bfd_ref_ptr
+build_id_to_exec_bfd (size_t build_id_len, const bfd_byte *build_id)
+{
+  return build_id_to_bfd_suffix (build_id_len, build_id, "");
+}
+
+/* See build-id.h.  */
+
 std::string
 find_separate_debug_file_by_buildid (struct objfile *objfile)
 {
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.20191203/gdb/build-id.h ./gdb/build-id.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/build-id.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/build-id.h	2019-12-10 01:49:26.000000000 +0000
@@ -34,13 +34,19 @@ extern int build_id_verify (bfd *abfd,
 			    size_t check_len, const bfd_byte *check);
 
 
-/* Find and open a BFD given a build-id.  If no BFD can be found,
-   return NULL.  The returned reference to the BFD must be released by
-   the caller.  */
+/* Find and open a BFD for a debuginfo file  given a build-id.  If no BFD
+   can be found, return NULL.  */
 
 extern gdb_bfd_ref_ptr build_id_to_debug_bfd (size_t build_id_len,
 					      const bfd_byte *build_id);
 
+/* Find and open a BFD for an executable file given a build-id.  If no BFD
+   can be found, return NULL.  The returned reference to the BFD must be
+   released by the caller.  */
+
+extern gdb_bfd_ref_ptr build_id_to_exec_bfd (size_t build_id_len,
+					     const bfd_byte *build_id);
+
 /* Find the separate debug file for OBJFILE, by using the build-id
    associated with OBJFILE's BFD.  If successful, returns the file name for the
    separate debug file, otherwise, return an empty string.  */
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.20191203/gdb/c-exp.c ./gdb/c-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/c-exp.c	2019-12-03 01:53:20.000000000 +0000
+++ ./gdb/c-exp.c	2019-12-10 01:53:01.000000000 +0000
@@ -799,24 +799,24 @@ static const yytype_uint16 yyrline[] =
      665,   669,   673,   679,   683,   687,   691,   695,   699,   703,
      707,   711,   715,   719,   723,   727,   731,   735,   739,   743,
      747,   751,   755,   759,   763,   770,   777,   786,   799,   806,
-     809,   815,   822,   842,   847,   851,   855,   862,   879,   897,
-     930,   939,   947,   957,   965,   971,   984,   999,  1018,  1031,
-    1055,  1064,  1065,  1095,  1173,  1180,  1181,  1184,  1187,  1188,
-    1192,  1193,  1198,  1197,  1201,  1200,  1203,  1205,  1207,  1209,
-    1213,  1220,  1222,  1223,  1226,  1228,  1236,  1244,  1251,  1259,
-    1261,  1263,  1265,  1269,  1274,  1286,  1300,  1302,  1306,  1310,
-    1314,  1318,  1322,  1326,  1330,  1334,  1338,  1342,  1346,  1350,
-    1354,  1358,  1362,  1366,  1370,  1374,  1378,  1382,  1386,  1390,
-    1394,  1398,  1402,  1406,  1412,  1418,  1423,  1429,  1435,  1440,
-    1446,  1452,  1457,  1463,  1469,  1473,  1478,  1484,  1488,  1492,
-    1496,  1503,  1508,  1510,  1514,  1515,  1523,  1531,  1542,  1544,
-    1553,  1562,  1569,  1570,  1577,  1581,  1582,  1585,  1586,  1589,
-    1593,  1595,  1599,  1601,  1603,  1605,  1607,  1609,  1611,  1613,
-    1615,  1617,  1619,  1621,  1623,  1625,  1627,  1629,  1631,  1633,
-    1635,  1637,  1677,  1679,  1681,  1683,  1685,  1687,  1689,  1691,
-    1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,  1732,
-    1733,  1734,  1735,  1736,  1737,  1738,  1741,  1742,  1743,  1744,
-    1745,  1746,  1749,  1750,  1758,  1771
+     809,   815,   822,   841,   846,   850,   854,   861,   878,   896,
+     929,   938,   946,   956,   964,   970,   983,   998,  1017,  1030,
+    1054,  1063,  1064,  1094,  1172,  1179,  1180,  1183,  1186,  1187,
+    1191,  1192,  1197,  1196,  1200,  1199,  1202,  1204,  1206,  1208,
+    1212,  1219,  1221,  1222,  1225,  1227,  1235,  1243,  1250,  1258,
+    1260,  1262,  1264,  1268,  1273,  1285,  1299,  1301,  1304,  1307,
+    1310,  1313,  1316,  1319,  1322,  1325,  1328,  1331,  1334,  1337,
+    1340,  1343,  1346,  1349,  1352,  1355,  1358,  1361,  1364,  1367,
+    1370,  1373,  1376,  1379,  1384,  1389,  1394,  1400,  1406,  1411,
+    1417,  1423,  1428,  1434,  1440,  1444,  1449,  1455,  1458,  1461,
+    1464,  1470,  1475,  1477,  1481,  1482,  1489,  1496,  1506,  1508,
+    1517,  1526,  1533,  1534,  1541,  1545,  1546,  1549,  1550,  1553,
+    1557,  1559,  1563,  1565,  1567,  1569,  1571,  1573,  1575,  1577,
+    1579,  1581,  1583,  1585,  1587,  1589,  1591,  1593,  1595,  1597,
+    1599,  1601,  1641,  1643,  1645,  1647,  1649,  1651,  1653,  1655,
+    1657,  1659,  1661,  1663,  1665,  1667,  1669,  1671,  1673,  1696,
+    1697,  1698,  1699,  1700,  1701,  1702,  1705,  1706,  1707,  1708,
+    1709,  1710,  1713,  1714,  1722,  1735
 };
 #endif
 
@@ -3072,7 +3072,6 @@ yyreduce:
 			  write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, lookup_signed_typename
 					      (pstate->language (),
-					       pstate->gdbarch (),
 					       "int"));
 			  type = check_typedef (type);
 
@@ -3090,7 +3089,7 @@ yyreduce:
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 843 "c-exp.y"
+#line 842 "c-exp.y"
     { write_exp_elt_opcode (pstate,
 						UNOP_REINTERPRET_CAST); }
     break;
@@ -3098,21 +3097,21 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 848 "c-exp.y"
+#line 847 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); }
     break;
 
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 852 "c-exp.y"
+#line 851 "c-exp.y"
     { write_exp_elt_opcode (pstate, UNOP_DYNAMIC_CAST); }
     break;
 
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 856 "c-exp.y"
+#line 855 "c-exp.y"
     { /* We could do more error checking here, but
 			     it doesn't seem worthwhile.  */
 			  write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); }
@@ -3121,7 +3120,7 @@ yyreduce:
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 863 "c-exp.y"
+#line 862 "c-exp.y"
     {
 			  /* We copy the string here, and not in the
 			     lexer, to guarantee that we do not leak a
@@ -3142,7 +3141,7 @@ yyreduce:
   case 108:
 
 /* Line 1455 of yacc.c  */
-#line 880 "c-exp.y"
+#line 879 "c-exp.y"
     {
 			  /* Note that we NUL-terminate here, but just
 			     for convenience.  */
@@ -3163,7 +3162,7 @@ yyreduce:
   case 109:
 
 /* Line 1455 of yacc.c  */
-#line 898 "c-exp.y"
+#line 897 "c-exp.y"
     {
 			  int i;
 			  c_string_type type = C_STRING;
@@ -3199,7 +3198,7 @@ yyreduce:
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 933 "c-exp.y"
+#line 932 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_OBJC_NSSTRING);
 			  write_exp_string (pstate, (yyvsp[(1) - (1)].sval));
 			  write_exp_elt_opcode (pstate, OP_OBJC_NSSTRING); }
@@ -3208,7 +3207,7 @@ yyreduce:
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 940 "c-exp.y"
+#line 939 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
                           write_exp_elt_type (pstate,
 					  parse_type (pstate)->builtin_bool);
@@ -3219,7 +3218,7 @@ yyreduce:
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 948 "c-exp.y"
+#line 947 "c-exp.y"
     { write_exp_elt_opcode (pstate, OP_LONG);
                           write_exp_elt_type (pstate,
 					  parse_type (pstate)->builtin_bool);
@@ -3230,7 +3229,7 @@ yyreduce:
   case 113:
 
 /* Line 1455 of yacc.c  */
-#line 958 "c-exp.y"
+#line 957 "c-exp.y"
     {
 			  if ((yyvsp[(1) - (1)].ssym).sym.symbol)
 			    (yyval.bval) = SYMBOL_BLOCK_VALUE ((yyvsp[(1) - (1)].ssym).sym.symbol);
@@ -3243,7 +3242,7 @@ yyreduce:
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 966 "c-exp.y"
+#line 965 "c-exp.y"
     {
 			  (yyval.bval) = (yyvsp[(1) - (1)].bval);
 			}
@@ -3252,7 +3251,7 @@ yyreduce:
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 972 "c-exp.y"
+#line 971 "c-exp.y"
     {
 			  std::string copy = copy_name ((yyvsp[(3) - (3)].sval));
 			  struct symbol *tem
@@ -3268,7 +3267,7 @@ yyreduce:
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 985 "c-exp.y"
+#line 984 "c-exp.y"
     { struct symbol *sym = (yyvsp[(1) - (2)].ssym).sym.symbol;
 
 			  if (sym == NULL || !SYMBOL_IS_ARGUMENT (sym)
@@ -3286,7 +3285,7 @@ yyreduce:
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 1000 "c-exp.y"
+#line 999 "c-exp.y"
     {
 			  std::string copy = copy_name ((yyvsp[(3) - (3)].sval));
 			  struct block_symbol sym
@@ -3308,7 +3307,7 @@ yyreduce:
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 1019 "c-exp.y"
+#line 1018 "c-exp.y"
     {
 			  struct type *type = (yyvsp[(1) - (3)].tsym).type;
 			  type = check_typedef (type);
@@ -3326,7 +3325,7 @@ yyreduce:
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 1032 "c-exp.y"
+#line 1031 "c-exp.y"
     {
 			  struct type *type = (yyvsp[(1) - (4)].tsym).type;
 			  struct stoken tmp_token;
@@ -3355,7 +3354,7 @@ yyreduce:
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 1056 "c-exp.y"
+#line 1055 "c-exp.y"
     {
 			  std::string copy = copy_name ((yyvsp[(3) - (5)].sval));
 			  error (_("No type \"%s\" within class "
@@ -3367,7 +3366,7 @@ yyreduce:
   case 122:
 
 /* Line 1455 of yacc.c  */
-#line 1066 "c-exp.y"
+#line 1065 "c-exp.y"
     {
 			  std::string name = copy_name ((yyvsp[(2) - (2)].ssym).stoken);
 			  struct symbol *sym;
@@ -3400,7 +3399,7 @@ yyreduce:
   case 123:
 
 /* Line 1455 of yacc.c  */
-#line 1096 "c-exp.y"
+#line 1095 "c-exp.y"
     { struct block_symbol sym = (yyvsp[(1) - (1)].ssym).sym;
 
 			  if (sym.symbol)
@@ -3481,7 +3480,7 @@ yyreduce:
   case 124:
 
 /* Line 1455 of yacc.c  */
-#line 1174 "c-exp.y"
+#line 1173 "c-exp.y"
     {
 		  cpstate->type_stack.insert (pstate,
 					      copy_name ((yyvsp[(2) - (2)].ssym).stoken).c_str ());
@@ -3491,49 +3490,49 @@ yyreduce:
   case 132:
 
 /* Line 1455 of yacc.c  */
-#line 1198 "c-exp.y"
+#line 1197 "c-exp.y"
     { cpstate->type_stack.insert (tp_pointer); }
     break;
 
   case 134:
 
 /* Line 1455 of yacc.c  */
-#line 1201 "c-exp.y"
+#line 1200 "c-exp.y"
     { cpstate->type_stack.insert (tp_pointer); }
     break;
 
   case 136:
 
 /* Line 1455 of yacc.c  */
-#line 1204 "c-exp.y"
+#line 1203 "c-exp.y"
     { cpstate->type_stack.insert (tp_reference); }
     break;
 
   case 137:
 
 /* Line 1455 of yacc.c  */
-#line 1206 "c-exp.y"
+#line 1205 "c-exp.y"
     { cpstate->type_stack.insert (tp_reference); }
     break;
 
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 1208 "c-exp.y"
+#line 1207 "c-exp.y"
     { cpstate->type_stack.insert (tp_rvalue_reference); }
     break;
 
   case 139:
 
 /* Line 1455 of yacc.c  */
-#line 1210 "c-exp.y"
+#line 1209 "c-exp.y"
     { cpstate->type_stack.insert (tp_rvalue_reference); }
     break;
 
   case 140:
 
 /* Line 1455 of yacc.c  */
-#line 1214 "c-exp.y"
+#line 1213 "c-exp.y"
     {
 			  (yyval.type_stack) = cpstate->type_stack.create ();
 			  cpstate->type_stacks.emplace_back ((yyval.type_stack));
@@ -3543,21 +3542,21 @@ yyreduce:
   case 141:
 
 /* Line 1455 of yacc.c  */
-#line 1221 "c-exp.y"
+#line 1220 "c-exp.y"
     { (yyval.type_stack) = (yyvsp[(2) - (2)].type_stack)->append ((yyvsp[(1) - (2)].type_stack)); }
     break;
 
   case 144:
 
 /* Line 1455 of yacc.c  */
-#line 1227 "c-exp.y"
+#line 1226 "c-exp.y"
     { (yyval.type_stack) = (yyvsp[(2) - (3)].type_stack); }
     break;
 
   case 145:
 
 /* Line 1455 of yacc.c  */
-#line 1229 "c-exp.y"
+#line 1228 "c-exp.y"
     {
 			  cpstate->type_stack.push ((yyvsp[(1) - (2)].type_stack));
 			  cpstate->type_stack.push ((yyvsp[(2) - (2)].lval));
@@ -3570,7 +3569,7 @@ yyreduce:
   case 146:
 
 /* Line 1455 of yacc.c  */
-#line 1237 "c-exp.y"
+#line 1236 "c-exp.y"
     {
 			  cpstate->type_stack.push ((yyvsp[(1) - (1)].lval));
 			  cpstate->type_stack.push (tp_array);
@@ -3582,7 +3581,7 @@ yyreduce:
   case 147:
 
 /* Line 1455 of yacc.c  */
-#line 1245 "c-exp.y"
+#line 1244 "c-exp.y"
     {
 			  cpstate->type_stack.push ((yyvsp[(1) - (2)].type_stack));
 			  cpstate->type_stack.push ((yyvsp[(2) - (2)].tvec));
@@ -3594,7 +3593,7 @@ yyreduce:
   case 148:
 
 /* Line 1455 of yacc.c  */
-#line 1252 "c-exp.y"
+#line 1251 "c-exp.y"
     {
 			  cpstate->type_stack.push ((yyvsp[(1) - (1)].tvec));
 			  (yyval.type_stack) = cpstate->type_stack.create ();
@@ -3605,35 +3604,35 @@ yyreduce:
   case 149:
 
 /* Line 1455 of yacc.c  */
-#line 1260 "c-exp.y"
+#line 1259 "c-exp.y"
     { (yyval.lval) = -1; }
     break;
 
   case 150:
 
 /* Line 1455 of yacc.c  */
-#line 1262 "c-exp.y"
+#line 1261 "c-exp.y"
     { (yyval.lval) = -1; }
     break;
 
   case 151:
 
 /* Line 1455 of yacc.c  */
-#line 1264 "c-exp.y"
+#line 1263 "c-exp.y"
     { (yyval.lval) = (yyvsp[(2) - (3)].typed_val_int).val; }
     break;
 
   case 152:
 
 /* Line 1455 of yacc.c  */
-#line 1266 "c-exp.y"
+#line 1265 "c-exp.y"
     { (yyval.lval) = (yyvsp[(2) - (3)].typed_val_int).val; }
     break;
 
   case 153:
 
 /* Line 1455 of yacc.c  */
-#line 1270 "c-exp.y"
+#line 1269 "c-exp.y"
     {
 			  (yyval.tvec) = new std::vector<struct type *>;
 			  cpstate->type_lists.emplace_back ((yyval.tvec));
@@ -3643,257 +3642,230 @@ yyreduce:
   case 154:
 
 /* Line 1455 of yacc.c  */
-#line 1275 "c-exp.y"
+#line 1274 "c-exp.y"
     { (yyval.tvec) = (yyvsp[(2) - (3)].tvec); }
     break;
 
   case 156:
 
 /* Line 1455 of yacc.c  */
-#line 1301 "c-exp.y"
+#line 1300 "c-exp.y"
     { (yyval.tval) = (yyvsp[(1) - (1)].tsym).type; }
     break;
 
   case 157:
 
 /* Line 1455 of yacc.c  */
-#line 1303 "c-exp.y"
+#line 1302 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "int"); }
     break;
 
   case 158:
 
 /* Line 1455 of yacc.c  */
-#line 1307 "c-exp.y"
+#line 1305 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
     break;
 
   case 159:
 
 /* Line 1455 of yacc.c  */
-#line 1311 "c-exp.y"
+#line 1308 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
     break;
 
   case 160:
 
 /* Line 1455 of yacc.c  */
-#line 1315 "c-exp.y"
+#line 1311 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
     break;
 
   case 161:
 
 /* Line 1455 of yacc.c  */
-#line 1319 "c-exp.y"
+#line 1314 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
     break;
 
   case 162:
 
 /* Line 1455 of yacc.c  */
-#line 1323 "c-exp.y"
+#line 1317 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
     break;
 
   case 163:
 
 /* Line 1455 of yacc.c  */
-#line 1327 "c-exp.y"
+#line 1320 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
     break;
 
   case 164:
 
 /* Line 1455 of yacc.c  */
-#line 1331 "c-exp.y"
+#line 1323 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long"); }
     break;
 
   case 165:
 
 /* Line 1455 of yacc.c  */
-#line 1335 "c-exp.y"
+#line 1326 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long"); }
     break;
 
   case 166:
 
 /* Line 1455 of yacc.c  */
-#line 1339 "c-exp.y"
+#line 1329 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long"); }
     break;
 
   case 167:
 
 /* Line 1455 of yacc.c  */
-#line 1343 "c-exp.y"
+#line 1332 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
     break;
 
   case 168:
 
 /* Line 1455 of yacc.c  */
-#line 1347 "c-exp.y"
+#line 1335 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
     break;
 
   case 169:
 
 /* Line 1455 of yacc.c  */
-#line 1351 "c-exp.y"
+#line 1338 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
     break;
 
   case 170:
 
 /* Line 1455 of yacc.c  */
-#line 1355 "c-exp.y"
+#line 1341 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
     break;
 
   case 171:
 
 /* Line 1455 of yacc.c  */
-#line 1359 "c-exp.y"
+#line 1344 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
     break;
 
   case 172:
 
 /* Line 1455 of yacc.c  */
-#line 1363 "c-exp.y"
+#line 1347 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
     break;
 
   case 173:
 
 /* Line 1455 of yacc.c  */
-#line 1367 "c-exp.y"
+#line 1350 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
     break;
 
   case 174:
 
 /* Line 1455 of yacc.c  */
-#line 1371 "c-exp.y"
+#line 1353 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
     break;
 
   case 175:
 
 /* Line 1455 of yacc.c  */
-#line 1375 "c-exp.y"
+#line 1356 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
     break;
 
   case 176:
 
 /* Line 1455 of yacc.c  */
-#line 1379 "c-exp.y"
+#line 1359 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
     break;
 
   case 177:
 
 /* Line 1455 of yacc.c  */
-#line 1383 "c-exp.y"
+#line 1362 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
     break;
 
   case 178:
 
 /* Line 1455 of yacc.c  */
-#line 1387 "c-exp.y"
+#line 1365 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
     break;
 
   case 179:
 
 /* Line 1455 of yacc.c  */
-#line 1391 "c-exp.y"
+#line 1368 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
     break;
 
   case 180:
 
 /* Line 1455 of yacc.c  */
-#line 1395 "c-exp.y"
+#line 1371 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "short"); }
     break;
 
   case 181:
 
 /* Line 1455 of yacc.c  */
-#line 1399 "c-exp.y"
+#line 1374 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "short"); }
     break;
 
   case 182:
 
 /* Line 1455 of yacc.c  */
-#line 1403 "c-exp.y"
+#line 1377 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "short"); }
     break;
 
   case 183:
 
 /* Line 1455 of yacc.c  */
-#line 1407 "c-exp.y"
+#line 1380 "c-exp.y"
     { (yyval.tval) = lookup_typename (pstate->language (),
-						pstate->gdbarch (),
 						"double",
 						NULL,
 						0); }
@@ -3902,9 +3874,8 @@ yyreduce:
   case 184:
 
 /* Line 1455 of yacc.c  */
-#line 1413 "c-exp.y"
+#line 1385 "c-exp.y"
     { (yyval.tval) = lookup_typename (pstate->language (),
-						pstate->gdbarch (),
 						"long double",
 						NULL,
 						0); }
@@ -3913,7 +3884,7 @@ yyreduce:
   case 185:
 
 /* Line 1455 of yacc.c  */
-#line 1419 "c-exp.y"
+#line 1390 "c-exp.y"
     { (yyval.tval)
 			    = lookup_struct (copy_name ((yyvsp[(2) - (2)].sval)).c_str (),
 					     pstate->expression_context_block);
@@ -3923,7 +3894,7 @@ yyreduce:
   case 186:
 
 /* Line 1455 of yacc.c  */
-#line 1424 "c-exp.y"
+#line 1395 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_STRUCT,
 						       "", 0);
@@ -3934,7 +3905,7 @@ yyreduce:
   case 187:
 
 /* Line 1455 of yacc.c  */
-#line 1430 "c-exp.y"
+#line 1401 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_STRUCT,
 						       (yyvsp[(2) - (3)].sval).ptr, (yyvsp[(2) - (3)].sval).length);
@@ -3945,7 +3916,7 @@ yyreduce:
   case 188:
 
 /* Line 1455 of yacc.c  */
-#line 1436 "c-exp.y"
+#line 1407 "c-exp.y"
     { (yyval.tval) = lookup_struct
 			    (copy_name ((yyvsp[(2) - (2)].sval)).c_str (),
 			     pstate->expression_context_block);
@@ -3955,7 +3926,7 @@ yyreduce:
   case 189:
 
 /* Line 1455 of yacc.c  */
-#line 1441 "c-exp.y"
+#line 1412 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_STRUCT,
 						       "", 0);
@@ -3966,7 +3937,7 @@ yyreduce:
   case 190:
 
 /* Line 1455 of yacc.c  */
-#line 1447 "c-exp.y"
+#line 1418 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_STRUCT,
 						       (yyvsp[(2) - (3)].sval).ptr, (yyvsp[(2) - (3)].sval).length);
@@ -3977,7 +3948,7 @@ yyreduce:
   case 191:
 
 /* Line 1455 of yacc.c  */
-#line 1453 "c-exp.y"
+#line 1424 "c-exp.y"
     { (yyval.tval)
 			    = lookup_union (copy_name ((yyvsp[(2) - (2)].sval)).c_str (),
 					    pstate->expression_context_block);
@@ -3987,7 +3958,7 @@ yyreduce:
   case 192:
 
 /* Line 1455 of yacc.c  */
-#line 1458 "c-exp.y"
+#line 1429 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_UNION,
 						       "", 0);
@@ -3998,7 +3969,7 @@ yyreduce:
   case 193:
 
 /* Line 1455 of yacc.c  */
-#line 1464 "c-exp.y"
+#line 1435 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_UNION,
 						       (yyvsp[(2) - (3)].sval).ptr, (yyvsp[(2) - (3)].sval).length);
@@ -4009,7 +3980,7 @@ yyreduce:
   case 194:
 
 /* Line 1455 of yacc.c  */
-#line 1470 "c-exp.y"
+#line 1441 "c-exp.y"
     { (yyval.tval) = lookup_enum (copy_name ((yyvsp[(2) - (2)].sval)).c_str (),
 					    pstate->expression_context_block);
 			}
@@ -4018,7 +3989,7 @@ yyreduce:
   case 195:
 
 /* Line 1455 of yacc.c  */
-#line 1474 "c-exp.y"
+#line 1445 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_ENUM, "", 0);
 			  (yyval.tval) = NULL;
@@ -4028,7 +3999,7 @@ yyreduce:
   case 196:
 
 /* Line 1455 of yacc.c  */
-#line 1479 "c-exp.y"
+#line 1450 "c-exp.y"
     {
 			  pstate->mark_completion_tag (TYPE_CODE_ENUM, (yyvsp[(2) - (3)].sval).ptr,
 						       (yyvsp[(2) - (3)].sval).length);
@@ -4039,43 +4010,39 @@ yyreduce:
   case 197:
 
 /* Line 1455 of yacc.c  */
-#line 1485 "c-exp.y"
+#line 1456 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 TYPE_NAME((yyvsp[(2) - (2)].tsym).type)); }
     break;
 
   case 198:
 
 /* Line 1455 of yacc.c  */
-#line 1489 "c-exp.y"
+#line 1459 "c-exp.y"
     { (yyval.tval) = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "int"); }
     break;
 
   case 199:
 
 /* Line 1455 of yacc.c  */
-#line 1493 "c-exp.y"
+#line 1462 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       TYPE_NAME((yyvsp[(2) - (2)].tsym).type)); }
     break;
 
   case 200:
 
 /* Line 1455 of yacc.c  */
-#line 1497 "c-exp.y"
+#line 1465 "c-exp.y"
     { (yyval.tval) = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "int"); }
     break;
 
   case 201:
 
 /* Line 1455 of yacc.c  */
-#line 1504 "c-exp.y"
+#line 1471 "c-exp.y"
     { (yyval.tval) = lookup_template_type
 			    (copy_name((yyvsp[(2) - (5)].sval)).c_str (), (yyvsp[(4) - (5)].tval),
 			     pstate->expression_context_block);
@@ -4085,26 +4052,25 @@ yyreduce:
   case 202:
 
 /* Line 1455 of yacc.c  */
-#line 1509 "c-exp.y"
+#line 1476 "c-exp.y"
     { (yyval.tval) = cpstate->type_stack.follow_types ((yyvsp[(2) - (2)].tval)); }
     break;
 
   case 203:
 
 /* Line 1455 of yacc.c  */
-#line 1511 "c-exp.y"
+#line 1478 "c-exp.y"
     { (yyval.tval) = cpstate->type_stack.follow_types ((yyvsp[(1) - (2)].tval)); }
     break;
 
   case 205:
 
 /* Line 1455 of yacc.c  */
-#line 1516 "c-exp.y"
+#line 1483 "c-exp.y"
     {
 		  (yyval.tsym).stoken.ptr = "int";
 		  (yyval.tsym).stoken.length = 3;
 		  (yyval.tsym).type = lookup_signed_typename (pstate->language (),
-						    pstate->gdbarch (),
 						    "int");
 		}
     break;
@@ -4112,12 +4078,11 @@ yyreduce:
   case 206:
 
 /* Line 1455 of yacc.c  */
-#line 1524 "c-exp.y"
+#line 1490 "c-exp.y"
     {
 		  (yyval.tsym).stoken.ptr = "long";
 		  (yyval.tsym).stoken.length = 4;
 		  (yyval.tsym).type = lookup_signed_typename (pstate->language (),
-						    pstate->gdbarch (),
 						    "long");
 		}
     break;
@@ -4125,12 +4090,11 @@ yyreduce:
   case 207:
 
 /* Line 1455 of yacc.c  */
-#line 1532 "c-exp.y"
+#line 1497 "c-exp.y"
     {
 		  (yyval.tsym).stoken.ptr = "short";
 		  (yyval.tsym).stoken.length = 5;
 		  (yyval.tsym).type = lookup_signed_typename (pstate->language (),
-						    pstate->gdbarch (),
 						    "short");
 		}
     break;
@@ -4138,14 +4102,14 @@ yyreduce:
   case 208:
 
 /* Line 1455 of yacc.c  */
-#line 1543 "c-exp.y"
+#line 1507 "c-exp.y"
     { check_parameter_typelist ((yyvsp[(1) - (1)].tvec)); }
     break;
 
   case 209:
 
 /* Line 1455 of yacc.c  */
-#line 1545 "c-exp.y"
+#line 1509 "c-exp.y"
     {
 			  (yyvsp[(1) - (3)].tvec)->push_back (NULL);
 			  check_parameter_typelist ((yyvsp[(1) - (3)].tvec));
@@ -4156,7 +4120,7 @@ yyreduce:
   case 210:
 
 /* Line 1455 of yacc.c  */
-#line 1554 "c-exp.y"
+#line 1518 "c-exp.y"
     {
 		  std::vector<struct type *> *typelist
 		    = new std::vector<struct type *>;
@@ -4170,7 +4134,7 @@ yyreduce:
   case 211:
 
 /* Line 1455 of yacc.c  */
-#line 1563 "c-exp.y"
+#line 1527 "c-exp.y"
     {
 		  (yyvsp[(1) - (3)].tvec)->push_back ((yyvsp[(3) - (3)].tval));
 		  (yyval.tvec) = (yyvsp[(1) - (3)].tvec);
@@ -4180,7 +4144,7 @@ yyreduce:
   case 213:
 
 /* Line 1455 of yacc.c  */
-#line 1571 "c-exp.y"
+#line 1535 "c-exp.y"
     {
 		  cpstate->type_stack.push ((yyvsp[(2) - (2)].type_stack));
 		  (yyval.tval) = cpstate->type_stack.follow_types ((yyvsp[(1) - (2)].tval));
@@ -4190,14 +4154,14 @@ yyreduce:
   case 214:
 
 /* Line 1455 of yacc.c  */
-#line 1578 "c-exp.y"
+#line 1542 "c-exp.y"
     { (yyval.tval) = cpstate->type_stack.follow_types ((yyvsp[(1) - (2)].tval)); }
     break;
 
   case 219:
 
 /* Line 1455 of yacc.c  */
-#line 1590 "c-exp.y"
+#line 1554 "c-exp.y"
     { cpstate->type_stack.insert (tp_const);
 			  cpstate->type_stack.insert (tp_volatile);
 			}
@@ -4206,154 +4170,154 @@ yyreduce:
   case 220:
 
 /* Line 1455 of yacc.c  */
-#line 1594 "c-exp.y"
+#line 1558 "c-exp.y"
     { cpstate->type_stack.insert (tp_const); }
     break;
 
   case 221:
 
 /* Line 1455 of yacc.c  */
-#line 1596 "c-exp.y"
+#line 1560 "c-exp.y"
     { cpstate->type_stack.insert (tp_volatile); }
     break;
 
   case 222:
 
 /* Line 1455 of yacc.c  */
-#line 1600 "c-exp.y"
+#line 1564 "c-exp.y"
     { (yyval.sval) = operator_stoken (" new"); }
     break;
 
   case 223:
 
 /* Line 1455 of yacc.c  */
-#line 1602 "c-exp.y"
+#line 1566 "c-exp.y"
     { (yyval.sval) = operator_stoken (" delete"); }
     break;
 
   case 224:
 
 /* Line 1455 of yacc.c  */
-#line 1604 "c-exp.y"
+#line 1568 "c-exp.y"
     { (yyval.sval) = operator_stoken (" new[]"); }
     break;
 
   case 225:
 
 /* Line 1455 of yacc.c  */
-#line 1606 "c-exp.y"
+#line 1570 "c-exp.y"
     { (yyval.sval) = operator_stoken (" delete[]"); }
     break;
 
   case 226:
 
 /* Line 1455 of yacc.c  */
-#line 1608 "c-exp.y"
+#line 1572 "c-exp.y"
     { (yyval.sval) = operator_stoken (" new[]"); }
     break;
 
   case 227:
 
 /* Line 1455 of yacc.c  */
-#line 1610 "c-exp.y"
+#line 1574 "c-exp.y"
     { (yyval.sval) = operator_stoken (" delete[]"); }
     break;
 
   case 228:
 
 /* Line 1455 of yacc.c  */
-#line 1612 "c-exp.y"
+#line 1576 "c-exp.y"
     { (yyval.sval) = operator_stoken ("+"); }
     break;
 
   case 229:
 
 /* Line 1455 of yacc.c  */
-#line 1614 "c-exp.y"
+#line 1578 "c-exp.y"
     { (yyval.sval) = operator_stoken ("-"); }
     break;
 
   case 230:
 
 /* Line 1455 of yacc.c  */
-#line 1616 "c-exp.y"
+#line 1580 "c-exp.y"
     { (yyval.sval) = operator_stoken ("*"); }
     break;
 
   case 231:
 
 /* Line 1455 of yacc.c  */
-#line 1618 "c-exp.y"
+#line 1582 "c-exp.y"
     { (yyval.sval) = operator_stoken ("/"); }
     break;
 
   case 232:
 
 /* Line 1455 of yacc.c  */
-#line 1620 "c-exp.y"
+#line 1584 "c-exp.y"
     { (yyval.sval) = operator_stoken ("%"); }
     break;
 
   case 233:
 
 /* Line 1455 of yacc.c  */
-#line 1622 "c-exp.y"
+#line 1586 "c-exp.y"
     { (yyval.sval) = operator_stoken ("^"); }
     break;
 
   case 234:
 
 /* Line 1455 of yacc.c  */
-#line 1624 "c-exp.y"
+#line 1588 "c-exp.y"
     { (yyval.sval) = operator_stoken ("&"); }
     break;
 
   case 235:
 
 /* Line 1455 of yacc.c  */
-#line 1626 "c-exp.y"
+#line 1590 "c-exp.y"
     { (yyval.sval) = operator_stoken ("|"); }
     break;
 
   case 236:
 
 /* Line 1455 of yacc.c  */
-#line 1628 "c-exp.y"
+#line 1592 "c-exp.y"
     { (yyval.sval) = operator_stoken ("~"); }
     break;
 
   case 237:
 
 /* Line 1455 of yacc.c  */
-#line 1630 "c-exp.y"
+#line 1594 "c-exp.y"
     { (yyval.sval) = operator_stoken ("!"); }
     break;
 
   case 238:
 
 /* Line 1455 of yacc.c  */
-#line 1632 "c-exp.y"
+#line 1596 "c-exp.y"
     { (yyval.sval) = operator_stoken ("="); }
     break;
 
   case 239:
 
 /* Line 1455 of yacc.c  */
-#line 1634 "c-exp.y"
+#line 1598 "c-exp.y"
     { (yyval.sval) = operator_stoken ("<"); }
     break;
 
   case 240:
 
 /* Line 1455 of yacc.c  */
-#line 1636 "c-exp.y"
+#line 1600 "c-exp.y"
     { (yyval.sval) = operator_stoken (">"); }
     break;
 
   case 241:
 
 /* Line 1455 of yacc.c  */
-#line 1638 "c-exp.y"
+#line 1602 "c-exp.y"
     { const char *op = " unknown";
 			  switch ((yyvsp[(2) - (2)].opcode))
 			    {
@@ -4398,119 +4362,119 @@ yyreduce:
   case 242:
 
 /* Line 1455 of yacc.c  */
-#line 1678 "c-exp.y"
+#line 1642 "c-exp.y"
     { (yyval.sval) = operator_stoken ("<<"); }
     break;
 
   case 243:
 
 /* Line 1455 of yacc.c  */
-#line 1680 "c-exp.y"
+#line 1644 "c-exp.y"
     { (yyval.sval) = operator_stoken (">>"); }
     break;
 
   case 244:
 
 /* Line 1455 of yacc.c  */
-#line 1682 "c-exp.y"
+#line 1646 "c-exp.y"
     { (yyval.sval) = operator_stoken ("=="); }
     break;
 
   case 245:
 
 /* Line 1455 of yacc.c  */
-#line 1684 "c-exp.y"
+#line 1648 "c-exp.y"
     { (yyval.sval) = operator_stoken ("!="); }
     break;
 
   case 246:
 
 /* Line 1455 of yacc.c  */
-#line 1686 "c-exp.y"
+#line 1650 "c-exp.y"
     { (yyval.sval) = operator_stoken ("<="); }
     break;
 
   case 247:
 
 /* Line 1455 of yacc.c  */
-#line 1688 "c-exp.y"
+#line 1652 "c-exp.y"
     { (yyval.sval) = operator_stoken (">="); }
     break;
 
   case 248:
 
 /* Line 1455 of yacc.c  */
-#line 1690 "c-exp.y"
+#line 1654 "c-exp.y"
     { (yyval.sval) = operator_stoken ("&&"); }
     break;
 
   case 249:
 
 /* Line 1455 of yacc.c  */
-#line 1692 "c-exp.y"
+#line 1656 "c-exp.y"
     { (yyval.sval) = operator_stoken ("||"); }
     break;
 
   case 250:
 
 /* Line 1455 of yacc.c  */
-#line 1694 "c-exp.y"
+#line 1658 "c-exp.y"
     { (yyval.sval) = operator_stoken ("++"); }
     break;
 
   case 251:
 
 /* Line 1455 of yacc.c  */
-#line 1696 "c-exp.y"
+#line 1660 "c-exp.y"
     { (yyval.sval) = operator_stoken ("--"); }
     break;
 
   case 252:
 
 /* Line 1455 of yacc.c  */
-#line 1698 "c-exp.y"
+#line 1662 "c-exp.y"
     { (yyval.sval) = operator_stoken (","); }
     break;
 
   case 253:
 
 /* Line 1455 of yacc.c  */
-#line 1700 "c-exp.y"
+#line 1664 "c-exp.y"
     { (yyval.sval) = operator_stoken ("->*"); }
     break;
 
   case 254:
 
 /* Line 1455 of yacc.c  */
-#line 1702 "c-exp.y"
+#line 1666 "c-exp.y"
     { (yyval.sval) = operator_stoken ("->"); }
     break;
 
   case 255:
 
 /* Line 1455 of yacc.c  */
-#line 1704 "c-exp.y"
+#line 1668 "c-exp.y"
     { (yyval.sval) = operator_stoken ("()"); }
     break;
 
   case 256:
 
 /* Line 1455 of yacc.c  */
-#line 1706 "c-exp.y"
+#line 1670 "c-exp.y"
     { (yyval.sval) = operator_stoken ("[]"); }
     break;
 
   case 257:
 
 /* Line 1455 of yacc.c  */
-#line 1708 "c-exp.y"
+#line 1672 "c-exp.y"
     { (yyval.sval) = operator_stoken ("[]"); }
     break;
 
   case 258:
 
 /* Line 1455 of yacc.c  */
-#line 1710 "c-exp.y"
+#line 1674 "c-exp.y"
     { string_file buf;
 
 			  c_print_type ((yyvsp[(2) - (2)].tval), NULL, &buf, -1, 0,
@@ -4528,91 +4492,91 @@ yyreduce:
   case 260:
 
 /* Line 1455 of yacc.c  */
-#line 1733 "c-exp.y"
+#line 1697 "c-exp.y"
     { (yyval.sval) = typename_stoken ("double"); }
     break;
 
   case 261:
 
 /* Line 1455 of yacc.c  */
-#line 1734 "c-exp.y"
+#line 1698 "c-exp.y"
     { (yyval.sval) = typename_stoken ("int"); }
     break;
 
   case 262:
 
 /* Line 1455 of yacc.c  */
-#line 1735 "c-exp.y"
+#line 1699 "c-exp.y"
     { (yyval.sval) = typename_stoken ("long"); }
     break;
 
   case 263:
 
 /* Line 1455 of yacc.c  */
-#line 1736 "c-exp.y"
+#line 1700 "c-exp.y"
     { (yyval.sval) = typename_stoken ("short"); }
     break;
 
   case 264:
 
 /* Line 1455 of yacc.c  */
-#line 1737 "c-exp.y"
+#line 1701 "c-exp.y"
     { (yyval.sval) = typename_stoken ("signed"); }
     break;
 
   case 265:
 
 /* Line 1455 of yacc.c  */
-#line 1738 "c-exp.y"
+#line 1702 "c-exp.y"
     { (yyval.sval) = typename_stoken ("unsigned"); }
     break;
 
   case 266:
 
 /* Line 1455 of yacc.c  */
-#line 1741 "c-exp.y"
+#line 1705 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
   case 267:
 
 /* Line 1455 of yacc.c  */
-#line 1742 "c-exp.y"
+#line 1706 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
   case 268:
 
 /* Line 1455 of yacc.c  */
-#line 1743 "c-exp.y"
+#line 1707 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].tsym).stoken; }
     break;
 
   case 269:
 
 /* Line 1455 of yacc.c  */
-#line 1744 "c-exp.y"
+#line 1708 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
   case 270:
 
 /* Line 1455 of yacc.c  */
-#line 1745 "c-exp.y"
+#line 1709 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].ssym).stoken; }
     break;
 
   case 271:
 
 /* Line 1455 of yacc.c  */
-#line 1746 "c-exp.y"
+#line 1710 "c-exp.y"
     { (yyval.sval) = (yyvsp[(1) - (1)].sval); }
     break;
 
   case 274:
 
 /* Line 1455 of yacc.c  */
-#line 1759 "c-exp.y"
+#line 1723 "c-exp.y"
     {
 			  struct field_of_this_result is_a_field_of_this;
 
@@ -4630,7 +4594,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 4635 "c-exp.c.tmp"
+#line 4599 "c-exp.c.tmp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4842,7 +4806,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 1774 "c-exp.y"
+#line 1738 "c-exp.y"
 
 
 /* Like write_exp_string, but prepends a '~'.  */
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.20191203/gdb/c-exp.y ./gdb/c-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/c-exp.y	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/c-exp.y	2019-12-10 01:49:26.000000000 +0000
@@ -824,7 +824,6 @@ exp	:	SIZEOF '(' type ')'	%prec UNARY
 			  write_exp_elt_opcode (pstate, OP_LONG);
 			  write_exp_elt_type (pstate, lookup_signed_typename
 					      (pstate->language (),
-					       pstate->gdbarch (),
 					       "int"));
 			  type = check_typedef (type);
 
@@ -1301,117 +1300,89 @@ typebase
 			{ $$ = $1.type; }
 	|	INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "int"); }
 	|	LONG
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
 	|	SHORT
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
 	|	LONG INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
 	|	LONG SIGNED_KEYWORD INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
 	|	LONG SIGNED_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
 	|	SIGNED_KEYWORD LONG INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long"); }
 	|	UNSIGNED LONG INT_KEYWORD
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long"); }
 	|	LONG UNSIGNED INT_KEYWORD
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long"); }
 	|	LONG UNSIGNED
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long"); }
 	|	LONG LONG
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
 	|	LONG LONG INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
 	|	LONG LONG SIGNED_KEYWORD INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
 	|	LONG LONG SIGNED_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
 	|	SIGNED_KEYWORD LONG LONG
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
 	|	SIGNED_KEYWORD LONG LONG INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "long long"); }
 	|	UNSIGNED LONG LONG
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
 	|	UNSIGNED LONG LONG INT_KEYWORD
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
 	|	LONG LONG UNSIGNED
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
 	|	LONG LONG UNSIGNED INT_KEYWORD
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "long long"); }
 	|	SHORT INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
 	|	SHORT SIGNED_KEYWORD INT_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
 	|	SHORT SIGNED_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "short"); }
 	|	UNSIGNED SHORT INT_KEYWORD
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "short"); }
 	|	SHORT UNSIGNED
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "short"); }
 	|	SHORT UNSIGNED INT_KEYWORD
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "short"); }
 	|	DOUBLE_KEYWORD
 			{ $$ = lookup_typename (pstate->language (),
-						pstate->gdbarch (),
 						"double",
 						NULL,
 						0); }
 	|	LONG DOUBLE_KEYWORD
 			{ $$ = lookup_typename (pstate->language (),
-						pstate->gdbarch (),
 						"long double",
 						NULL,
 						0); }
@@ -1483,19 +1454,15 @@ typebase
 			}
 	|	UNSIGNED type_name
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 TYPE_NAME($2.type)); }
 	|	UNSIGNED
 			{ $$ = lookup_unsigned_typename (pstate->language (),
-							 pstate->gdbarch (),
 							 "int"); }
 	|	SIGNED_KEYWORD type_name
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       TYPE_NAME($2.type)); }
 	|	SIGNED_KEYWORD
 			{ $$ = lookup_signed_typename (pstate->language (),
-						       pstate->gdbarch (),
 						       "int"); }
                 /* It appears that this rule for templates is never
                    reduced; template recognition happens by lookahead
@@ -1517,7 +1484,6 @@ type_name:	TYPENAME
 		  $$.stoken.ptr = "int";
 		  $$.stoken.length = 3;
 		  $$.type = lookup_signed_typename (pstate->language (),
-						    pstate->gdbarch (),
 						    "int");
 		}
 	|	LONG
@@ -1525,7 +1491,6 @@ type_name:	TYPENAME
 		  $$.stoken.ptr = "long";
 		  $$.stoken.length = 4;
 		  $$.type = lookup_signed_typename (pstate->language (),
-						    pstate->gdbarch (),
 						    "long");
 		}
 	|	SHORT
@@ -1533,7 +1498,6 @@ type_name:	TYPENAME
 		  $$.stoken.ptr = "short";
 		  $$.stoken.length = 5;
 		  $$.type = lookup_signed_typename (pstate->language (),
-						    pstate->gdbarch (),
 						    "short");
 		}
 	;
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.20191203/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/ChangeLog	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/ChangeLog	2019-12-10 01:49:26.000000000 +0000
@@ -1,3 +1,281 @@
+2019-12-10  George Barrett  <bob@bob131.so>
+
+	Fix scripted probe breakpoints.
+	* breakpoint.c (tracepoint_probe_breakpoint_ops): Move
+	declaration forward.
+	(breakpoint_ops_for_event_location_type)
+	(breakpoint_ops_for_event_location): Add function definitions.
+	(break_command_1, trace_command): Use
+	breakpoint_ops_for_event_location.
+	* breakpoint.h (breakpoint_ops_for_event_location): Add function
+	declarations.
+	* guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Use
+	breakpoint_ops_for_event_location.
+	* python/py-breakpoint.c (bppy_init): Use
+	breakpoint_ops_for_event_location.
+
+2019-12-09  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	* gdbtypes.c (rank_one_type): Return INCOMPATIBLE_TYPE_BADNESS
+	when ranking an lvalue argument for an rvalue parameter.
+
+2019-12-08  Wataru Ashihara  <wataash@wataash.com>
+
+	* darwin-nat.c (darwin_nat_target::create_inferior): Fix
+	template argument for scoped_restore_tmpl from bool to int.
+
+2019-12-07  Keith Seitz  <keiths@redhat.com>
+
+	* build-id.c (build_id_bfd_get): Permit bfd_core, too.
+	(build_id_to_debug_bfd): Make static, rewriting to use
+	build_id_to_bfd_suffix.
+	(build_id_to_bfd_suffix): Copy of build_id_to_debug_bfd,
+	adding `suffix' parameter. Append SUFFIX to file names
+	when searching for matching files.
+	(build_id_to_debug_bfd): Use build_id_to_bfd_suffix.
+	(build_id_to_exec_bfd): Likewise.
+	* build-id.h (build_id_to_debug_bfd): Clarify that function
+	searches for BFD of debug info file.
+	(build_id_to_exec_bfd): Declare.
+	* corelow.c: Include build-id.h.
+	(locate_exec_from_corefile_build_id): New function.
+	(core_target_open): If no executable BFD is found,
+	search for a core file BFD using build-id.
+
+2019-12-06  Christian Biesinger  <cbiesinger@google.com>
+
+	* bcache.c: Put in namespace gdb.
+	* bcache.h: Likewise.
+	* gdbtypes.c (check_types_worklist): Update.
+	(types_deeply_equal): Update.
+	* macrotab.c (struct macro_table) <bcache>: Update.
+	(new_macro_table): Update.
+	* macrotab.h (struct bcache): Put this forward declaration
+	inside namespace gdb.
+	(new_macro_table): Update.
+	* objfiles.h (struct objfile_per_bfd_storage) <filename_cache>:
+	Update.
+	<macro_cache>: Update.
+	* psymtab.h: (psymtab_storage) <psymbol_cache>: Update.
+
+2019-12-06  Tom de Vries  <tdevries@suse.de>
+
+	PR symtab/24971
+	* block.c (best_symbol, better_symbol): New function.
+	(block_lookup_symbol_primary, block_lookup_symbol): Prefer def over
+	decl.
+
+2019-12-06  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	* gdbtypes.h: Define the REFERENCE_SEE_THROUGH_BADNESS value.
+	* gdbtypes.c (rank_one_type): Use REFERENCE_SEE_THROUGH_BADNESS
+	for ranking see-through reference cases.
+
+2019-12-06  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+	* stack.c (faas_command): Check a command is provided.
+	* thread.c (taas_command, tfaas_command): Likewise.
+
+2019-12-05  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+	* inferior.c (prune_inferiors):  Only call delete_inferior,
+	Do not modify the inferior list.
+
+2019-12-05  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* c-exp.y: Update calls to lookup_typename,
+	lookup_signed_typename and lookup_unsigned_typename.
+	* c-lang.c (evaluate_subexp_c): Likewise.
+	* cp-namespace.c (cp_lookup_symbol_imports_or_template):
+	Likewise.
+	* eval.c (binop_promote): Likewise.
+	* gdbtypes.c (lookup_typename): Remove gdbarch parameter.
+	(lookup_unsigned_typename): Likewise.
+	(lookup_signed_typename): Likewise.
+	* gdbtypes.h (lookup_unsigned_typename): Likewise.
+	(lookup_signed_typename): Likewise.
+	(lookup_typename): Likewise.
+	* guile/scm-type.c (tyscm_lookup_typename): Update calls to
+	lookup_typename, lookup_signed_typename,
+	lookup_unsigned_typename.
+	* m2-exp.y: Likewise.
+	* printcmd.c (printf_wide_c_string): Likewise.
+	(ui_printf): Likewise.
+	* python/py-type.c (typy_lookup_typename): Likewise.
+	* python/py-xmethods.c (python_xmethod_worker::invoke):
+	Likewise.
+	* rust-exp.y: Likewise.
+
+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.
+	(hash_continue): Remove.
+	* bcache.h (hash): Remove.
+	(hash_continue): Remove.
+	(struct bcache) <ctor>: Update.
+	* psymtab.c (psymbol_hash): Update.
+	* stabsread.c (hashname): Update.
+	* utils.h (fast_hash): Add an argument for a start value,
+	defaulting to zero.
+
+2019-12-03  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+	* symtab.c (symbol_cache_clear_slot):  Move close to cleared type.
+	(destroy_block_symbol_cache): New function.
+	(symbol_cache:~symbol_cache) Call destroy_block_symbol_cache.
+	(resize_symbol_cache): Likewise.
+
 2019-12-02  Tom Tromey  <tom@tromey.com>
 
 	* unittests/tui-selftests.c (run_tests): Make conditional.
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.20191203/gdb/c-lang.c ./gdb/c-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/c-lang.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/c-lang.c	2019-12-10 01:49:26.000000000 +0000
@@ -611,16 +611,13 @@ evaluate_subexp_c (struct type *expect_t
 					      exp->gdbarch);
 	    break;
 	  case C_WIDE_STRING:
-	    type = lookup_typename (exp->language_defn, exp->gdbarch,
-				    "wchar_t", NULL, 0);
+	    type = lookup_typename (exp->language_defn, "wchar_t", NULL, 0);
 	    break;
 	  case C_STRING_16:
-	    type = lookup_typename (exp->language_defn, exp->gdbarch,
-				    "char16_t", NULL, 0);
+	    type = lookup_typename (exp->language_defn, "char16_t", NULL, 0);
 	    break;
 	  case C_STRING_32:
-	    type = lookup_typename (exp->language_defn, exp->gdbarch,
-				    "char32_t", NULL, 0);
+	    type = lookup_typename (exp->language_defn, "char32_t", NULL, 0);
 	    break;
 	  default:
 	    internal_error (__FILE__, __LINE__, _("unhandled c_string_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.20191203/gdb/configure.nat ./gdb/configure.nat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/configure.nat	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/configure.nat	2019-12-10 01:49:26.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.20191203/gdb/corelow.c ./gdb/corelow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/corelow.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/corelow.c	2019-12-10 01:49:26.000000000 +0000
@@ -43,6 +43,7 @@
 #include "gdb_bfd.h"
 #include "completer.h"
 #include "gdbsupport/filestuff.h"
+#include "build-id.h"
 
 #ifndef O_LARGEFILE
 #define O_LARGEFILE 0
@@ -351,6 +352,27 @@ core_file_command (const char *filename,
     core_target_open (filename, from_tty);
 }
 
+/* Locate (and load) an executable file (and symbols) given the core file
+   BFD ABFD.  */
+
+static void
+locate_exec_from_corefile_build_id (bfd *abfd, int from_tty)
+{
+  const bfd_build_id *build_id = build_id_bfd_get (abfd);
+  if (build_id == nullptr)
+    return;
+
+  gdb_bfd_ref_ptr execbfd
+    = build_id_to_exec_bfd (build_id->size, build_id->data);
+
+  if (execbfd != nullptr)
+    {
+      exec_file_attach (bfd_get_filename (execbfd.get ()), from_tty);
+      symbol_file_add_main (bfd_get_filename (execbfd.get ()),
+			    symfile_add_flag (from_tty ? SYMFILE_VERBOSE : 0));
+    }
+}
+
 /* See gdbcore.h.  */
 
 void
@@ -456,6 +478,9 @@ core_target_open (const char *arg, int f
 	switch_to_thread (thread);
     }
 
+  if (exec_bfd == nullptr)
+    locate_exec_from_corefile_build_id (core_bfd, from_tty);
+
   post_create_inferior (target, from_tty);
 
   /* Now go through the target stack looking for threads since there
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.20191203/gdb/cp-namespace.c ./gdb/cp-namespace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/cp-namespace.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/cp-namespace.c	2019-12-10 01:49:26.000000000 +0000
@@ -547,7 +547,6 @@ cp_lookup_symbol_imports_or_template (co
 	  struct type *context;
 	  std::string name_copy (function->natural_name ());
 	  const struct language_defn *lang = language_def (language_cplus);
-	  struct gdbarch *arch = symbol_arch (function);
 	  const struct block *parent = BLOCK_SUPERBLOCK (block);
 	  struct symbol *sym;
 
@@ -561,7 +560,7 @@ cp_lookup_symbol_imports_or_template (co
 	      else
 		{
 		  name_copy.erase (prefix_len);
-		  context = lookup_typename (lang, arch,
+		  context = lookup_typename (lang,
 					     name_copy.c_str (),
 					     parent, 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.20191203/gdb/cp-valprint.c ./gdb/cp-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/cp-valprint.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/cp-valprint.c	2019-12-10 01:49:26.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.20191203/gdb/darwin-nat.c ./gdb/darwin-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/darwin-nat.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/darwin-nat.c	2019-12-10 01:49:26.000000000 +0000
@@ -1985,7 +1985,7 @@ darwin_nat_target::create_inferior (cons
 				    const std::string &allargs,
 				    char **env, int from_tty)
 {
-  gdb::optional<scoped_restore_tmpl<int>> restore_startup_with_shell;
+  gdb::optional<scoped_restore_tmpl<bool>> restore_startup_with_shell;
 
   if (startup_with_shell && may_have_sip ())
     {
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.20191203/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/ChangeLog	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/doc/ChangeLog	2019-12-10 01:49:26.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.20191203/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gcore.1	2019-12-03 01:53:52.000000000 +0000
+++ ./gdb/doc/gcore.1	2019-12-10 01:53:31.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2019-12-03" "gdb-9.0.50.20191203-git" "GNU Development Tools"
+.TH GCORE 1 "2019-12-10" "gdb-9.0.50.20191210-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.20191203/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.1	2019-12-03 01:53:51.000000000 +0000
+++ ./gdb/doc/gdb.1	2019-12-10 01:53:30.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2019-12-03" "gdb-9.0.50.20191203-git" "GNU Development Tools"
+.TH GDB 1 "2019-12-10" "gdb-9.0.50.20191210-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.20191203/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.20191203/gdb/doc/gdb-add-index.1	2019-12-03 01:53:52.000000000 +0000
+++ ./gdb/doc/gdb-add-index.1	2019-12-10 01:53:31.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB-ADD-INDEX 1"
-.TH GDB-ADD-INDEX 1 "2019-12-03" "gdb-9.0.50.20191203-git" "GNU Development Tools"
+.TH GDB-ADD-INDEX 1 "2019-12-10" "gdb-9.0.50.20191210-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.20191203/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info	2019-12-03 01:53:48.000000000 +0000
+++ ./gdb/doc/gdb.info	2019-12-10 01:53:28.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-1	2019-12-03 01:53:34.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2019-12-10 01:53:15.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203-git.
+   This is the Tenth Edition, for GDB (GDB) Version 9.0.50.20191210-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.20191203-git, Copyright 1999 Free Software Foundation, Inc...
+     GDB 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-2	2019-12-03 01:53:35.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2019-12-10 01:53:17.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-3	2019-12-03 01:53:37.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2019-12-10 01:53:19.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-4	2019-12-03 01:53:40.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2019-12-10 01:53:21.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-5	2019-12-03 01:53:43.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2019-12-10 01:53:23.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-6	2019-12-03 01:53:46.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2019-12-10 01:53:25.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203-git/gdb/gdb.info', and it refers to subordinate
+'gdb-9.0.50.20191210-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.20191203-git', in the case of version
-9.0.50.20191203-git), you can make the Info file by typing:
+directory ('gdb-9.0.50.20191210-git', in the case of version
+9.0.50.20191210-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.20191203-git/gdb')
+main source directory (for example, to 'gdb-9.0.50.20191210-git/gdb')
 and type:
 
      make gdb.dvi
@@ -4594,8 +4749,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-9.0.50.20191203-git/gdb/refcard.ps' of the version
-9.0.50.20191203-git release.
+   (1) In 'gdb-9.0.50.20191210-git/gdb/refcard.ps' of the version
+9.0.50.20191210-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.20191203-git distribution is in
-the 'gdb-9.0.50.20191203-git' directory.  That directory contains:
+   For example, the GDB version 9.0.50.20191210-git distribution is in
+the 'gdb-9.0.50.20191210-git' directory.  That directory contains:
 
-'gdb-9.0.50.20191203-git/configure (and supporting files)'
+'gdb-9.0.50.20191210-git/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-9.0.50.20191203-git/gdb'
+'gdb-9.0.50.20191210-git/gdb'
      the source specific to GDB itself
 
-'gdb-9.0.50.20191203-git/bfd'
+'gdb-9.0.50.20191210-git/bfd'
      source for the Binary File Descriptor library
 
-'gdb-9.0.50.20191203-git/include'
+'gdb-9.0.50.20191210-git/include'
      GNU include files
 
-'gdb-9.0.50.20191203-git/libiberty'
+'gdb-9.0.50.20191210-git/libiberty'
      source for the '-liberty' free software library
 
-'gdb-9.0.50.20191203-git/opcodes'
+'gdb-9.0.50.20191210-git/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-9.0.50.20191203-git/readline'
+'gdb-9.0.50.20191210-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.20191203-git' directory.
+the 'gdb-9.0.50.20191210-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.20191203-git
+     cd gdb-9.0.50.20191210-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.20191203-git, you can build GDB in a
+   For example, with version 9.0.50.20191210-git, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-9.0.50.20191203-git
+     cd gdb-9.0.50.20191210-git
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-9.0.50.20191203-git/configure
+     ../gdb-9.0.50.20191210-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.20191203-git/gdb/configure', you are configuring only one
+'../gdb-9.0.50.20191210-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.20191203-git' (or in a separate configured directory
-configured with '--srcdir=DIRNAME/gdb-9.0.50.20191203-git'), you will
+'gdb-9.0.50.20191210-git' (or in a separate configured directory
+configured with '--srcdir=DIRNAME/gdb-9.0.50.20191210-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.20191203-git', for version 9.0.50.20191203-git).
+('gdb-9.0.50.20191210-git', for version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-7	2019-12-03 01:53:48.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2019-12-10 01:53:27.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdb.info-8 ./gdb/doc/gdb.info-8
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.info-8	2019-12-03 01:53:48.000000000 +0000
+++ ./gdb/doc/gdb.info-8	2019-12-10 01:53:28.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.20191203-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191210-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.20191203/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdbinit.5	2019-12-03 01:53:52.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2019-12-10 01:53:31.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2019-12-03" "gdb-9.0.50.20191203-git" "GNU Development Tools"
+.TH GDBINIT 5 "2019-12-10" "gdb-9.0.50.20191210-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.20191203/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdbserver.1	2019-12-03 01:53:51.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2019-12-10 01:53:31.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2019-12-03" "gdb-9.0.50.20191203-git" "GNU Development Tools"
+.TH GDBSERVER 1 "2019-12-10" "gdb-9.0.50.20191210-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.20191203/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/doc/gdb.texinfo	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2019-12-10 01:49:26.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.20191203/gdb/dwarf2loc.c ./gdb/dwarf2loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/dwarf2loc.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/dwarf2loc.c	2019-12-10 01:49:26.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.20191203/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/dwarf2read.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/dwarf2read.c	2019-12-10 01:49:26.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.20191203/gdb/eval.c ./gdb/eval.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/eval.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/eval.c	2019-12-10 01:49:26.000000000 +0000
@@ -562,20 +562,20 @@ binop_promote (const struct language_def
 	  break;
 	case language_opencl:
 	  if (result_len <= TYPE_LENGTH (lookup_signed_typename
-					 (language, gdbarch, "int")))
+					 (language, "int")))
 	    {
 	      promoted_type =
 		(unsigned_operation
-		 ? lookup_unsigned_typename (language, gdbarch, "int")
-		 : lookup_signed_typename (language, gdbarch, "int"));
+		 ? lookup_unsigned_typename (language, "int")
+		 : lookup_signed_typename (language, "int"));
 	    }
 	  else if (result_len <= TYPE_LENGTH (lookup_signed_typename
-					      (language, gdbarch, "long")))
+					      (language, "long")))
 	    {
 	      promoted_type =
 		(unsigned_operation
-		 ? lookup_unsigned_typename (language, gdbarch, "long")
-		 : lookup_signed_typename (language, gdbarch,"long"));
+		 ? lookup_unsigned_typename (language, "long")
+		 : lookup_signed_typename (language,"long"));
 	    }
 	  break;
 	default:
@@ -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.20191203/gdb/f-exp.c ./gdb/f-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/f-exp.c	2019-12-03 01:53:21.000000000 +0000
+++ ./gdb/f-exp.c	2019-12-10 01:53:02.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.20191203/gdb/f-exp.y ./gdb/f-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/f-exp.y	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/f-exp.y	2019-12-10 01:49:26.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.20191203/gdb/gdbarch.c ./gdb/gdbarch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/gdbarch.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/gdbarch.c	2019-12-10 01:49:26.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.20191203/gdb/gdbarch.h ./gdb/gdbarch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/gdbarch.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/gdbarch.h	2019-12-10 01:49:26.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.20191203/gdb/gdbarch.sh ./gdb/gdbarch.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/gdbarch.sh	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/gdbarch.sh	2019-12-10 01:49:26.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.20191203/gdb/gdbsupport/filtered-iterator.h ./gdb/gdbsupport/filtered-iterator.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/gdbsupport/filtered-iterator.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/gdbsupport/filtered-iterator.h	2019-12-10 01:49:26.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.20191203/gdb/gdbtypes.c ./gdb/gdbtypes.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/gdbtypes.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/gdbtypes.c	2019-12-10 01:49:26.000000000 +0000
@@ -60,6 +60,7 @@ const struct rank VOID_PTR_CONVERSION_BA
 const struct rank BOOL_CONVERSION_BADNESS = {3,0};
 const struct rank BASE_CONVERSION_BADNESS = {2,0};
 const struct rank REFERENCE_CONVERSION_BADNESS = {2,0};
+const struct rank REFERENCE_SEE_THROUGH_BADNESS = {0,1};
 const struct rank NULL_POINTER_CONVERSION_BADNESS = {2,0};
 const struct rank NS_POINTER_CONVERSION_BADNESS = {10,0};
 const struct rank NS_INTEGER_POINTER_CONVERSION_BADNESS = {3,0};
@@ -949,6 +950,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;
 }
 
@@ -1552,7 +1556,7 @@ type_name_or_error (struct type *type)
 
 struct type *
 lookup_typename (const struct language_defn *language,
-		 struct gdbarch *gdbarch, const char *name,
+		 const char *name,
 		 const struct block *block, int noerr)
 {
   struct symbol *sym;
@@ -1569,29 +1573,28 @@ lookup_typename (const struct language_d
 
 struct type *
 lookup_unsigned_typename (const struct language_defn *language,
-			  struct gdbarch *gdbarch, const char *name)
+			  const char *name)
 {
   char *uns = (char *) alloca (strlen (name) + 10);
 
   strcpy (uns, "unsigned ");
   strcpy (uns + 9, name);
-  return lookup_typename (language, gdbarch, uns, NULL, 0);
+  return lookup_typename (language, uns, NULL, 0);
 }
 
 struct type *
-lookup_signed_typename (const struct language_defn *language,
-			struct gdbarch *gdbarch, const char *name)
+lookup_signed_typename (const struct language_defn *language, const char *name)
 {
   struct type *t;
   char *uns = (char *) alloca (strlen (name) + 8);
 
   strcpy (uns, "signed ");
   strcpy (uns + 7, name);
-  t = lookup_typename (language, gdbarch, uns, NULL, 1);
+  t = lookup_typename (language, uns, NULL, 1);
   /* If we don't find "signed FOO" just try again with plain "FOO".  */
   if (t != NULL)
     return t;
-  return lookup_typename (language, gdbarch, name, NULL, 0);
+  return lookup_typename (language, name, NULL, 0);
 }
 
 /* Lookup a structure type named "struct NAME",
@@ -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.  */
 
@@ -3783,7 +3813,7 @@ check_types_equal (struct type *type1, s
 
 static bool
 check_types_worklist (std::vector<type_equality_entry> *worklist,
-		      struct bcache *cache)
+		      gdb::bcache *cache)
 {
   while (!worklist->empty ())
     {
@@ -3819,7 +3849,7 @@ types_deeply_equal (struct type *type1, 
   if (type1 == type2)
     return true;
 
-  struct bcache cache (nullptr, nullptr);
+  gdb::bcache cache (nullptr, nullptr);
   worklist.emplace_back (type1, type2);
   return check_types_worklist (&worklist, &cache);
 }
@@ -4273,12 +4303,9 @@ rank_one_type (struct type *parm, struct
 	}
       else
 	{
-	  /* Lvalues should prefer lvalue overloads.  */
+	  /* It's illegal to pass an lvalue as an rvalue.  */
 	  if (TYPE_CODE (parm) == TYPE_CODE_RVALUE_REF)
-	    {
-	      rank.subrank = REFERENCE_CONVERSION_RVALUE;
-	      return sum_ranks (rank, REFERENCE_CONVERSION_BADNESS);
-	    }
+	    return INCOMPATIBLE_TYPE_BADNESS;
 	}
     }
 
@@ -4309,10 +4336,10 @@ rank_one_type (struct type *parm, struct
 
   if (TYPE_IS_REFERENCE (arg))
     return (sum_ranks (rank_one_type (parm, TYPE_TARGET_TYPE (arg), NULL),
-                       REFERENCE_CONVERSION_BADNESS));
+                       REFERENCE_SEE_THROUGH_BADNESS));
   if (TYPE_IS_REFERENCE (parm))
     return (sum_ranks (rank_one_type (TYPE_TARGET_TYPE (parm), arg, NULL),
-                       REFERENCE_CONVERSION_BADNESS));
+                       REFERENCE_SEE_THROUGH_BADNESS));
   if (overload_debug)
   /* Debugging only.  */
     fprintf_filtered (gdb_stderr, 
@@ -5694,21 +5721,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.20191203/gdb/gdbtypes.h ./gdb/gdbtypes.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/gdbtypes.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/gdbtypes.h	2019-12-10 01:49:26.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 *);
@@ -2005,10 +2005,10 @@ extern struct type *lookup_string_range_
 extern struct type *create_set_type (struct type *, struct type *);
 
 extern struct type *lookup_unsigned_typename (const struct language_defn *,
-					      struct gdbarch *, const char *);
+					      const char *);
 
 extern struct type *lookup_signed_typename (const struct language_defn *,
-					    struct gdbarch *, const char *);
+					    const char *);
 
 extern void get_unsigned_type_max (struct type *, ULONGEST *);
 
@@ -2048,8 +2048,7 @@ extern void check_stub_method_group (str
 extern char *gdb_mangle_name (struct type *, int, int);
 
 extern struct type *lookup_typename (const struct language_defn *,
-				     struct gdbarch *, const char *,
-				     const struct block *, int);
+				     const char *, const struct block *, int);
 
 extern struct type *lookup_template_type (const char *, struct type *,
 					  const struct block *);
@@ -2106,6 +2105,7 @@ extern const struct rank BASE_CONVERSION
 /* * Badness of converting from non-reference to reference.  Subrank
    is the type of reference conversion being done.  */
 extern const struct rank REFERENCE_CONVERSION_BADNESS;
+extern const struct rank REFERENCE_SEE_THROUGH_BADNESS;
 /* * Conversion to rvalue reference.  */
 #define REFERENCE_CONVERSION_RVALUE 1
 /* * Conversion to const lvalue reference.  */
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.20191203/gdb/go-valprint.c ./gdb/go-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/go-valprint.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/go-valprint.c	2019-12-10 01:49:26.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.20191203/gdb/guile/scm-breakpoint.c ./gdb/guile/scm-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/guile/scm-breakpoint.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/guile/scm-breakpoint.c	2019-12-10 01:49:26.000000000 +0000
@@ -437,13 +437,15 @@ gdbscm_register_breakpoint_x (SCM self)
 	{
 	case bp_breakpoint:
 	  {
+	    const breakpoint_ops *ops =
+	      breakpoint_ops_for_event_location (eloc.get (), false);
 	    create_breakpoint (get_current_arch (),
 			       eloc.get (), NULL, -1, NULL,
 			       0,
 			       0, bp_breakpoint,
 			       0,
 			       AUTO_BOOLEAN_TRUE,
-			       &bkpt_breakpoint_ops,
+			       ops,
 			       0, 1, internal, 0);
 	    break;
 	  }
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.20191203/gdb/guile/scm-type.c ./gdb/guile/scm-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/guile/scm-type.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/guile/scm-type.c	2019-12-10 01:49:26.000000000 +0000
@@ -1245,7 +1245,7 @@ tyscm_lookup_typename (const char *type_
       else if (startswith (type_name, "enum "))
 	type = lookup_enum (type_name + 5, NULL);
       else
-	type = lookup_typename (current_language, get_current_arch (),
+	type = lookup_typename (current_language,
 				type_name, block, 0);
     }
   catch (const gdb_exception &except)
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.20191203/gdb/inferior.c ./gdb/inferior.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/inferior.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/inferior.c	2019-12-10 01:49:26.000000000 +0000
@@ -370,24 +370,22 @@ have_live_inferiors (void)
 void
 prune_inferiors (void)
 {
-  struct inferior *ss, **ss_link;
+  inferior *ss;
 
   ss = inferior_list;
-  ss_link = &inferior_list;
   while (ss)
     {
       if (!ss->deletable ()
 	  || !ss->removable
 	  || ss->pid != 0)
 	{
-	  ss_link = &ss->next;
-	  ss = *ss_link;
+	  ss = ss->next;
 	  continue;
 	}
 
-      *ss_link = ss->next;
+      inferior *ss_next = ss->next;
       delete_inferior (ss);
-      ss = *ss_link;
+      ss = ss_next;
     }
 }
 
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.20191203/gdb/m2-exp.c ./gdb/m2-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/m2-exp.c	2019-12-03 01:53:21.000000000 +0000
+++ ./gdb/m2-exp.c	2019-12-10 01:53:02.000000000 +0000
@@ -2399,7 +2399,6 @@ yyreduce:
 #line 600 "m2-exp.y"
     { (yyval.tval)
 			    = lookup_typename (pstate->language (),
-					       pstate->gdbarch (),
 					       copy_name ((yyvsp[(1) - (1)].sval)).c_str (),
 					       pstate->expression_context_block,
 					       0);
@@ -2409,7 +2408,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 2414 "m2-exp.c.tmp"
+#line 2413 "m2-exp.c.tmp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2621,7 +2620,7 @@ yyreturn:
 
 
 /* Line 1675 of yacc.c  */
-#line 610 "m2-exp.y"
+#line 609 "m2-exp.y"
 
 
 /* Take care of parsing a number (anything that starts with a digit).
@@ -2989,7 +2988,7 @@ yylex (void)
 			 VAR_DOMAIN, 0).symbol;
     if (sym && SYMBOL_CLASS (sym) == LOC_BLOCK)
       return BLOCKNAME;
-    if (lookup_typename (pstate->language (), pstate->gdbarch (),
+    if (lookup_typename (pstate->language (),
 			 tmp.c_str (), pstate->expression_context_block, 1))
       return TYPENAME;
 
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.20191203/gdb/m2-exp.y ./gdb/m2-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/m2-exp.y	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/m2-exp.y	2019-12-10 01:49:26.000000000 +0000
@@ -599,7 +599,6 @@ type
 	:	TYPENAME
 			{ $$
 			    = lookup_typename (pstate->language (),
-					       pstate->gdbarch (),
 					       copy_name ($1).c_str (),
 					       pstate->expression_context_block,
 					       0);
@@ -974,7 +973,7 @@ yylex (void)
 			 VAR_DOMAIN, 0).symbol;
     if (sym && SYMBOL_CLASS (sym) == LOC_BLOCK)
       return BLOCKNAME;
-    if (lookup_typename (pstate->language (), pstate->gdbarch (),
+    if (lookup_typename (pstate->language (),
 			 tmp.c_str (), pstate->expression_context_block, 1))
       return TYPENAME;
 
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.20191203/gdb/macrotab.c ./gdb/macrotab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/macrotab.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/macrotab.c	2019-12-10 01:49:26.000000000 +0000
@@ -40,7 +40,7 @@ struct macro_table
 
   /* The bcache we should use to hold macro names, argument names, and
      definitions, or zero if we should use xmalloc.  */
-  struct bcache *bcache;
+  gdb::bcache *bcache;
 
   /* The main source file for this compilation unit --- the one whose
      name was given to the compiler.  This is the root of the
@@ -1025,7 +1025,7 @@ macro_for_each_in_scope (struct macro_so
 
 
 struct macro_table *
-new_macro_table (struct obstack *obstack, struct bcache *b,
+new_macro_table (struct obstack *obstack, gdb::bcache *b,
 		 struct compunit_symtab *cust)
 {
   struct macro_table *t;
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.20191203/gdb/macrotab.h ./gdb/macrotab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/macrotab.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/macrotab.h	2019-12-10 01:49:26.000000000 +0000
@@ -23,9 +23,12 @@
 #include "gdbsupport/function-view.h"
 
 struct obstack;
-struct bcache;
 struct compunit_symtab;
 
+namespace gdb {
+struct bcache;
+}
+
 /* How do we represent a source location?  I mean, how should we
    represent them within GDB; the user wants to use all sorts of
    ambiguous abbreviations, like "break 32" and "break foo.c:32"
@@ -170,7 +173,7 @@ struct macro_source_file
    the same source location (although 'gcc -DFOO -UFOO -DFOO=2' does
    do that in GCC 4.1.2.).  */
 struct macro_table *new_macro_table (struct obstack *obstack,
-                                     struct bcache *bcache,
+                                     gdb::bcache *bcache,
 				     struct compunit_symtab *cust);
 
 
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.20191203/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/Makefile.in	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/Makefile.in	2019-12-10 01:49:26.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.20191203/gdb/mi/mi-cmds.c ./gdb/mi/mi-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/mi/mi-cmds.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/mi/mi-cmds.c	2019-12-10 01:49:26.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.20191203/gdb/mi/mi-cmds.h ./gdb/mi/mi-cmds.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/mi/mi-cmds.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/mi/mi-cmds.h	2019-12-10 01:49:26.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.20191203/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.20191203/gdb/mi/mi-symbol-cmds.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/mi/mi-symbol-cmds.c	2019-12-10 01:49:26.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.20191203/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/NEWS	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/NEWS	2019-12-10 01:49:26.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.20191203/gdb/objfiles.h ./gdb/objfiles.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/objfiles.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/objfiles.h	2019-12-10 01:49:26.000000000 +0000
@@ -244,11 +244,11 @@ struct objfile_per_bfd_storage
 
   /* Byte cache for file names.  */
 
-  struct bcache filename_cache;
+  gdb::bcache filename_cache;
 
   /* Byte cache for macros.  */
 
-  struct bcache macro_cache;
+  gdb::bcache macro_cache;
 
   /* The gdbarch associated with the BFD.  Note that this gdbarch is
      determined solely from BFD information, without looking at 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.20191203/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/po/gdb.pot	2019-12-03 01:53:23.000000000 +0000
+++ ./gdb/po/gdb.pot	2019-12-10 01:53:04.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-12-03 01:53+0000\n"
+"POT-Creation-Date: 2019-12-10 01:53+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 ""
@@ -274,12 +274,12 @@ msgstr ""
 msgid "Internal error in encoding of renaming declaration"
 msgstr ""
 
-#: ada-exp.y:977 c-exp.y:962 p-exp.y:630
+#: ada-exp.y:977 c-exp.y:961 p-exp.y:630
 #, possible-c-format
 msgid "No file or function \"%s\"."
 msgstr ""
 
-#: ada-exp.y:979 c-exp.y:979 m2-exp.y:523 p-exp.y:644
+#: ada-exp.y:979 c-exp.y:978 m2-exp.y:523 p-exp.y:644
 #, possible-c-format
 msgid "No function \"%s\" in specified context."
 msgstr ""
@@ -303,9 +303,9 @@ msgstr ""
 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
-#: p-exp.y:766 source.c:214 symtab.c:4292
+#: ada-exp.y:1327 c-exp.y:1087 c-exp.y:1140 cli/cli-cmds.c:1165 d-exp.y:493
+#: 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 ""
 
@@ -542,7 +542,7 @@ msgstr ""
 msgid "(null)"
 msgstr ""
 
-#: ada-lang.c:7644 inferior.c:412
+#: ada-lang.c:7644 inferior.c:410
 msgid "<null>"
 msgstr ""
 
@@ -849,7 +849,7 @@ msgstr ""
 msgid "Condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:12777 breakpoint.c:873 breakpoint.c:887
+#: ada-lang.c:12777 breakpoint.c:876 breakpoint.c:890
 msgid "Junk at end of expression"
 msgstr ""
 
@@ -872,8 +872,8 @@ msgstr ""
 msgid "condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:13090 break-catch-throw.c:440 breakpoint.c:9128
-#: breakpoint.c:10993 breakpoint.c:11125 breakpoint.c:11169 breakpoint.c:14771
+#: ada-lang.c:13090 break-catch-throw.c:440 breakpoint.c:9131
+#: breakpoint.c:11025 breakpoint.c:11157 breakpoint.c:11201 breakpoint.c:14795
 msgid "Junk at end of arguments."
 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
@@ -2999,11 +2999,11 @@ msgstr ""
 msgid "Must start with a format string."
 msgstr ""
 
-#: ax-gdb.c:2705 breakpoint.c:2225 printcmd.c:2548
+#: ax-gdb.c:2705 breakpoint.c:2228 printcmd.c:2548
 msgid "Bad format string, non-terminated '\"'."
 msgstr ""
 
-#: ax-gdb.c:2710 breakpoint.c:2230 printcmd.c:2553
+#: ax-gdb.c:2710 breakpoint.c:2233 printcmd.c:2553
 msgid "Invalid argument syntax"
 msgstr ""
 
@@ -3124,104 +3124,104 @@ msgstr ""
 #. i18n: Like "Percentage of duplicates, by count: (not applicable)".
 #. i18n: "Average entry size: (not applicable)".
 #. i18n: "Average hash chain length: (not applicable)".
-#: bcache.c:264 bcache.c:363 bcache.c:393
+#: bcache.c:241 bcache.c:340 bcache.c:370
 msgid "(not applicable)\n"
 msgstr ""
 
-#: bcache.c:344
+#: bcache.c:321
 #, possible-c-format
 msgid "  M_Cached '%s' statistics:\n"
 msgstr ""
 
-#: bcache.c:345
+#: bcache.c:322
 #, possible-c-format
 msgid "    Total object count:  %ld\n"
 msgstr ""
 
-#: bcache.c:346
+#: bcache.c:323
 #, possible-c-format
 msgid "    Unique object count: %lu\n"
 msgstr ""
 
-#: bcache.c:347
+#: bcache.c:324
 msgid "    Percentage of duplicates, by count: "
 msgstr ""
 
-#: bcache.c:351
+#: bcache.c:328
 #, possible-c-format
 msgid "    Total object size:   %ld\n"
 msgstr ""
 
-#: bcache.c:352
+#: bcache.c:329
 #, possible-c-format
 msgid "    Unique object size:  %ld\n"
 msgstr ""
 
-#: bcache.c:353
+#: bcache.c:330
 msgid "    Percentage of duplicates, by size:  "
 msgstr ""
 
-#: bcache.c:357
+#: bcache.c:334
 #, possible-c-format
 msgid "    Max entry size:     %d\n"
 msgstr ""
 
-#: bcache.c:358
+#: bcache.c:335
 msgid "    Average entry size: "
 msgstr ""
 
-#: bcache.c:364
+#: bcache.c:341
 #, possible-c-format
 msgid "    Median entry size:  %d\n"
 msgstr ""
 
-#: bcache.c:367
+#: bcache.c:344
 #, possible-c-format
 msgid "    Total memory used by bcache, including overhead: %ld\n"
 msgstr ""
 
-#: bcache.c:370
+#: bcache.c:347
 msgid "    Percentage memory overhead: "
 msgstr ""
 
-#: bcache.c:372
+#: bcache.c:349
 msgid "    Net memory savings:         "
 msgstr ""
 
-#: bcache.c:376
+#: bcache.c:353
 #, possible-c-format
 msgid "    Hash table size:           %3d\n"
 msgstr ""
 
-#: bcache.c:378
+#: bcache.c:355
 #, possible-c-format
 msgid "    Hash table expands:        %lu\n"
 msgstr ""
 
-#: bcache.c:380
+#: bcache.c:357
 #, possible-c-format
 msgid "    Hash table hashes:         %lu\n"
 msgstr ""
 
-#: bcache.c:382
+#: bcache.c:359
 #, possible-c-format
 msgid "    Half hash misses:          %lu\n"
 msgstr ""
 
-#: bcache.c:384
+#: bcache.c:361
 msgid "    Hash table population:     "
 msgstr ""
 
-#: bcache.c:386
+#: bcache.c:363
 #, possible-c-format
 msgid "    Median hash chain length:  %3d\n"
 msgstr ""
 
-#: bcache.c:388
+#: bcache.c:365
 msgid "    Average hash chain length: "
 msgstr ""
 
-#: bcache.c:394
+#: bcache.c:371
 #, possible-c-format
 msgid "    Maximum hash chain length: %3d\n"
 msgstr ""
@@ -3406,523 +3406,523 @@ msgstr ""
 msgid "Catch an exception, when rethrown."
 msgstr ""
 
-#: breakpoint.c:324
+#: breakpoint.c:327
 #, possible-c-format
 msgid "Debugger's willingness to use watchpoint hardware is %s.\n"
 msgstr ""
 
-#: breakpoint.c:340
+#: breakpoint.c:343
 #, possible-c-format
 msgid "Debugger's behavior regarding pending breakpoints is %s.\n"
 msgstr ""
 
-#: breakpoint.c:356
+#: breakpoint.c:359
 #, possible-c-format
 msgid "Automatic usage of hardware breakpoints is %s.\n"
 msgstr ""
 
-#: breakpoint.c:373
+#: breakpoint.c:376
 #, possible-c-format
 msgid "Always inserted breakpoint mode is %s.\n"
 msgstr ""
 
-#: breakpoint.c:709
+#: breakpoint.c:712
 msgid ""
 "Target does not support breakpoint condition evaluation.\n"
 "Using host evaluation mode instead."
 msgstr ""
 
-#: breakpoint.c:765
+#: breakpoint.c:768
 #, possible-c-format
 msgid "Breakpoint condition evaluation mode is %s (currently %s).\n"
 msgstr ""
 
-#: breakpoint.c:770
+#: breakpoint.c:773
 #, possible-c-format
 msgid "Breakpoint condition evaluation mode is %s.\n"
 msgstr ""
 
-#: breakpoint.c:854
+#: breakpoint.c:857
 #, possible-c-format
 msgid "Breakpoint %d now unconditional.\n"
 msgstr ""
 
-#: breakpoint.c:951
+#: breakpoint.c:954
 msgid "breakpoint number"
 msgstr ""
 
-#: breakpoint.c:956
+#: breakpoint.c:959
 #, possible-c-format
 msgid "Bad breakpoint argument: '%s'"
 msgstr ""
 
-#: breakpoint.c:969 guile/scm-breakpoint.c:945 python/py-breakpoint.c:1173
+#: breakpoint.c:972 guile/scm-breakpoint.c:947 python/py-breakpoint.c:1176
 #, possible-c-format
 msgid ""
 "Only one stop condition allowed.  There is currently a %s stop condition "
 "defined for this breakpoint."
 msgstr ""
 
-#: breakpoint.c:981 breakpoint.c:13833
+#: breakpoint.c:984 breakpoint.c:13862
 #, possible-c-format
 msgid "No breakpoint number %d."
 msgstr ""
 
-#: breakpoint.c:996
+#: breakpoint.c:999
 msgid "The 'while-stepping' command can only be used for tracepoints"
 msgstr ""
 
-#: breakpoint.c:1006
+#: breakpoint.c:1009
 msgid "The 'collect' command can only be used for tracepoints"
 msgstr ""
 
-#: breakpoint.c:1009
+#: breakpoint.c:1012
 msgid "The 'teval' command can only be used for tracepoints"
 msgstr ""
 
-#: breakpoint.c:1094
+#: breakpoint.c:1097
 msgid "The 'while-stepping' command cannot be used for fast tracepoint"
 msgstr ""
 
-#: breakpoint.c:1097
+#: breakpoint.c:1100
 msgid "The 'while-stepping' command cannot be used for static tracepoint"
 msgstr ""
 
-#: breakpoint.c:1101
+#: breakpoint.c:1104
 msgid "The 'while-stepping' command can be used only once"
 msgstr ""
 
-#: breakpoint.c:1118
+#: breakpoint.c:1121
 msgid "The 'while-stepping' command cannot be nested"
 msgstr ""
 
-#: breakpoint.c:1235
+#: breakpoint.c:1238
 #, possible-c-format
 msgid "Type commands for breakpoint(s) %s, one per line."
 msgstr ""
 
-#: breakpoint.c:1473
+#: breakpoint.c:1476
 #, possible-c-format
 msgid "reading through apparently deleted breakpoint #%d?"
 msgstr ""
 
-#: breakpoint.c:1755 breakpoint.c:1936
+#: breakpoint.c:1758 breakpoint.c:1939
 msgid ""
 "Can't set read/access watchpoint when hardware watchpoints are disabled."
 msgstr ""
 
-#: breakpoint.c:1915
+#: breakpoint.c:1918
 msgid "Target does not support this type of hardware watchpoint."
 msgstr ""
 
-#: breakpoint.c:1918
+#: breakpoint.c:1921
 msgid "There are not enough available hardware resources for this watchpoint."
 msgstr ""
 
-#: breakpoint.c:1939
+#: breakpoint.c:1942
 msgid "Expression cannot be implemented with read/access watchpoint."
 msgstr ""
 
-#: breakpoint.c:1960
+#: breakpoint.c:1963
 #, possible-c-format
 msgid ""
 "Watchpoint %d deleted because the program has left the block\n"
 "in which its expression is valid.\n"
 msgstr ""
 
-#: breakpoint.c:2216
+#: breakpoint.c:2219
 msgid "No format string following the location"
 msgstr ""
 
-#: breakpoint.c:2494
+#: breakpoint.c:2497
 msgid ""
 "Note: automatically using hardware breakpoints for read-only addresses.\n"
 msgstr ""
 
-#: breakpoint.c:2505
+#: breakpoint.c:2508
 #, possible-c-format
 msgid ""
 "Cannot insert breakpoint %d.\n"
 "Cannot set software breakpoint at read-only address %s\n"
 msgstr ""
 
-#: breakpoint.c:2544
+#: breakpoint.c:2547
 #, possible-c-format
 msgid "hardware breakpoint %d not supported in overlay!"
 msgstr ""
 
-#: breakpoint.c:2748
+#: breakpoint.c:2751
 #, possible-c-format
 msgid ""
 "Error inserting catchpoint %d: Your system does not support this type\n"
 "of catchpoint."
 msgstr ""
 
-#: breakpoint.c:2752
+#: breakpoint.c:2755
 #, possible-c-format
 msgid "Error inserting catchpoint %d."
 msgstr ""
 
-#: breakpoint.c:3034
+#: breakpoint.c:3037
 #, possible-c-format
 msgid ""
 "Thread-specific breakpoint %d deleted - thread %s no longer in the thread "
 "list.\n"
 msgstr ""
 
-#: breakpoint.c:3599
+#: breakpoint.c:3602
 msgid "Cannot detach breakpoints of inferior_ptid"
 msgstr ""
 
-#: breakpoint.c:3756
+#: breakpoint.c:3759
 #, possible-c-format
 msgid "Could not remove hardware watchpoint %d."
 msgstr ""
 
-#: breakpoint.c:4456
+#: breakpoint.c:4459
 msgid "<unreadable>"
 msgstr ""
 
-#: breakpoint.c:4534
+#: breakpoint.c:4537
 msgid "print_bp_stop_message: unrecognized enum value"
 msgstr ""
 
-#: breakpoint.c:4550
+#: breakpoint.c:4553
 msgid "Stopped due to shared library event:\n"
 msgstr ""
 
-#: breakpoint.c:4552
+#: breakpoint.c:4555
 msgid "Stopped due to shared library event (no libraries added or removed)\n"
 msgstr ""
 
-#: breakpoint.c:4562
+#: breakpoint.c:4565
 msgid "  Inferior unloaded "
 msgstr ""
 
-#: breakpoint.c:4577
+#: breakpoint.c:4580
 msgid "  Inferior loaded "
 msgstr ""
 
-#: breakpoint.c:4994
+#: breakpoint.c:4997
 #, possible-c-format
 msgid "Watchpoint %d deleted.\n"
 msgstr ""
 
-#: breakpoint.c:5230
+#: breakpoint.c:5233
 msgid "Watchpoint condition cannot be tested in the current scope"
 msgstr ""
 
-#: breakpoint.c:5624
+#: breakpoint.c:5627
 msgid "bpstat_what: tracepoint encountered"
 msgstr ""
 
-#: breakpoint.c:5645
+#: breakpoint.c:5648
 #, possible-c-format
 msgid "bpstat_what: unhandled bptype %d"
 msgstr ""
 
-#: breakpoint.c:5922
+#: breakpoint.c:5925
 #, possible-c-format
 msgid "bptypes table does not describe type #%d."
 msgstr ""
 
-#: breakpoint.c:6637
+#: breakpoint.c:6640
 msgid "Note: breakpoint "
 msgstr ""
 
 #. if (others == ???)
-#: breakpoint.c:6639
+#: breakpoint.c:6642
 msgid "Note: breakpoints "
 msgstr ""
 
-#: breakpoint.c:6657
+#: breakpoint.c:6660
 #, possible-c-format
 msgid "also set at pc %ps.\n"
 msgstr ""
 
-#: breakpoint.c:6851
+#: breakpoint.c:6854
 #, possible-c-format
 msgid "Breakpoint %d address previously adjusted from %s to %s."
 msgstr ""
 
-#: breakpoint.c:6854
+#: breakpoint.c:6857
 #, possible-c-format
 msgid "Breakpoint address adjusted from %s to %s."
 msgstr ""
 
-#: breakpoint.c:6952
+#: breakpoint.c:6955
 msgid "unknown breakpoint type"
 msgstr ""
 
-#: breakpoint.c:7536
+#: breakpoint.c:7539
 #, possible-c-format
 msgid "Temporarily disabling breakpoints for unloaded shared library \"%s\""
 msgstr ""
 
-#: breakpoint.c:7731
+#: breakpoint.c:7734
 #, possible-c-format
 msgid "Catchpoint %d (fork)"
 msgstr ""
 
-#: breakpoint.c:7846
+#: breakpoint.c:7849
 #, possible-c-format
 msgid "Catchpoint %d (vfork)"
 msgstr ""
 
-#: breakpoint.c:8003
+#: breakpoint.c:8006
 #, possible-c-format
 msgid "load of library matching %s"
 msgstr ""
 
-#: breakpoint.c:8005
+#: breakpoint.c:8008
 msgid "load of library"
 msgstr ""
 
-#: breakpoint.c:8010
+#: breakpoint.c:8013
 #, possible-c-format
 msgid "unload of library matching %s"
 msgstr ""
 
-#: breakpoint.c:8012
+#: breakpoint.c:8015
 msgid "unload of library"
 msgstr ""
 
-#: breakpoint.c:8025
+#: breakpoint.c:8028
 #, possible-c-format
 msgid "Catchpoint %d (%s)"
 msgstr ""
 
-#: breakpoint.c:8065 stack.c:2385 symtab.c:4323 symtab.c:4521 symtab.c:4529
+#: breakpoint.c:8068 stack.c:2385 symtab.c:4336 symtab.c:4728 symtab.c:4736
 msgid "Invalid regexp"
 msgstr ""
 
-#: breakpoint.c:8261
+#: breakpoint.c:8264
 #, possible-c-format
 msgid "Catchpoint %d (exec)"
 msgstr ""
 
-#: breakpoint.c:8653 printcmd.c:2543
+#: breakpoint.c:8656 printcmd.c:2543
 msgid "Bad format string, missing '\"'."
 msgstr ""
 
-#: breakpoint.c:8660
+#: breakpoint.c:8663
 msgid "No function supplied for dprintf call"
 msgstr ""
 
-#: breakpoint.c:8678
+#: breakpoint.c:8681
 msgid "Target cannot run dprintf commands, falling back to GDB printf"
 msgstr ""
 
-#: breakpoint.c:8684
+#: breakpoint.c:8687
 msgid "Invalid dprintf style."
 msgstr ""
 
-#: breakpoint.c:8740 breakpoint.c:14214
+#: breakpoint.c:8743 breakpoint.c:14243
 msgid "No hardware breakpoint support in the target."
 msgstr ""
 
-#: breakpoint.c:8742 breakpoint.c:9758 breakpoint.c:14216
+#: breakpoint.c:8745 breakpoint.c:9790 breakpoint.c:14245
 msgid "Hardware breakpoints used exceeds limit."
 msgstr ""
 
-#: breakpoint.c:8795 breakpoint.c:8803
+#: breakpoint.c:8798 breakpoint.c:8806
 #, possible-c-format
 msgid "Probed static tracepoint marker \"%s\"\n"
 msgstr ""
 
-#: breakpoint.c:8808
+#: breakpoint.c:8811
 msgid "Couldn't determine the static tracepoint marker to probe"
 msgstr ""
 
-#: breakpoint.c:8828
+#: breakpoint.c:8831
 #, possible-c-format
 msgid "Garbage '%s' follows condition"
 msgstr ""
 
-#: breakpoint.c:8838 breakpoint.c:9538
+#: breakpoint.c:8841 breakpoint.c:9570
 msgid "Format string required"
 msgstr ""
 
-#: breakpoint.c:8841
+#: breakpoint.c:8844
 #, possible-c-format
 msgid "Garbage '%s' at end of command"
 msgstr ""
 
-#: breakpoint.c:8981
+#: breakpoint.c:8984
 msgid "No default breakpoint address now."
 msgstr ""
 
-#: breakpoint.c:9050
+#: breakpoint.c:9053
 #, possible-c-format
 msgid "May not have a fast tracepoint at %s%s"
 msgstr ""
 
-#: breakpoint.c:9106
+#: breakpoint.c:9109
 msgid "Junk after thread keyword."
 msgstr ""
 
-#: breakpoint.c:9117
+#: breakpoint.c:9120
 msgid "Junk after task keyword."
 msgstr ""
 
-#: breakpoint.c:9119
+#: breakpoint.c:9122
 #, possible-c-format
 msgid "Unknown task %d."
 msgstr ""
 
-#: breakpoint.c:9149
+#: breakpoint.c:9152
 #, possible-c-format
 msgid "No known static tracepoint marker named %s"
 msgstr ""
 
-#: breakpoint.c:9213
+#: breakpoint.c:9251
 #, possible-c-format
 msgid "Make %s pending on future shared library load? "
 msgstr ""
 
-#: breakpoint.c:9274 mi/mi-cmd-break.c:343
+#: breakpoint.c:9312 mi/mi-cmd-break.c:343
 #, possible-c-format
 msgid "Garbage '%s' at end of location"
 msgstr ""
 
-#: breakpoint.c:9323
+#: breakpoint.c:9361
 msgid ""
 "Multiple breakpoints were set.\n"
 "Use the \"delete\" command to delete unwanted breakpoints."
 msgstr ""
 
-#: breakpoint.c:9381 linespec.c:2204
+#: breakpoint.c:9413 linespec.c:2204
 #, possible-c-format
 msgid "No line %d in file \"%s\"."
 msgstr ""
 
-#: breakpoint.c:9453
+#: breakpoint.c:9485
 msgid ""
 "Specify the type of breakpoint to set.\n"
 "Usage: stop in <function | address>\n"
 "       stop at <line>\n"
 msgstr ""
 
-#: breakpoint.c:9486
+#: breakpoint.c:9518
 msgid "Usage: stop in <function | address>\n"
 msgstr ""
 
-#: breakpoint.c:9518
+#: breakpoint.c:9550
 msgid "Usage: stop at LINE\n"
 msgstr ""
 
-#: breakpoint.c:9562
+#: breakpoint.c:9594
 msgid "May only run agent-printf on the target"
 msgstr ""
 
-#: breakpoint.c:9687
+#: breakpoint.c:9719
 #, possible-c-format
 msgid "Hardware assisted ranged breakpoint %d from %s to %s."
 msgstr ""
 
-#: breakpoint.c:9729 breakpoint.c:9802
+#: breakpoint.c:9761 breakpoint.c:9834
 msgid "Could not find location of the end of the range."
 msgstr ""
 
-#: breakpoint.c:9751
+#: breakpoint.c:9783
 msgid "This target does not support hardware ranged breakpoints."
 msgstr ""
 
-#: breakpoint.c:9762
+#: breakpoint.c:9794
 msgid "No address range specified."
 msgstr ""
 
-#: breakpoint.c:9770
+#: breakpoint.c:9802
 msgid "Too few arguments."
 msgstr ""
 
-#: breakpoint.c:9772
+#: breakpoint.c:9804
 msgid "Could not find location of the beginning of the range."
 msgstr ""
 
-#: breakpoint.c:9778 breakpoint.c:9807
+#: breakpoint.c:9810 breakpoint.c:9839
 msgid "Cannot create a ranged breakpoint with multiple locations."
 msgstr ""
 
-#: breakpoint.c:9813
+#: breakpoint.c:9845
 msgid "Invalid address range, end precedes start."
 msgstr ""
 
 #. Length overflowed.
-#: breakpoint.c:9818
+#: breakpoint.c:9850
 msgid "Address range too large."
 msgstr ""
 
-#: breakpoint.c:10192 breakpoint.c:10329 breakpoint.c:10385 breakpoint.c:10416
+#: breakpoint.c:10224 breakpoint.c:10361 breakpoint.c:10417 breakpoint.c:10448
 msgid "Invalid hardware watchpoint type."
 msgstr ""
 
-#: breakpoint.c:10223
+#: breakpoint.c:10255
 msgid "Invalid watchpoint type."
 msgstr ""
 
-#: breakpoint.c:10333
+#: breakpoint.c:10365
 msgid ""
 "\n"
 "Check the underlying instruction at PC for the memory\n"
 "address and value which triggered this watchpoint.\n"
 msgstr ""
 
-#: breakpoint.c:10504
+#: breakpoint.c:10536
 msgid "You can specify only one thread."
 msgstr ""
 
-#: breakpoint.c:10523
+#: breakpoint.c:10555
 msgid "You can specify only one mask."
 msgstr ""
 
-#: breakpoint.c:10566
+#: breakpoint.c:10598
 #, possible-c-format
 msgid "Cannot watch constant value `%.*s'."
 msgstr ""
 
-#: breakpoint.c:10595
+#: breakpoint.c:10627
 msgid "This target does not support masked watchpoints."
 msgstr ""
 
-#: breakpoint.c:10597
+#: breakpoint.c:10629
 msgid "Invalid mask or memory region."
 msgstr ""
 
-#: breakpoint.c:10620
+#: breakpoint.c:10652
 msgid "Junk at end of command."
 msgstr ""
 
-#: breakpoint.c:10988
+#: breakpoint.c:11020
 msgid "Couldn't get information on specified line."
 msgstr ""
 
-#: breakpoint.c:11142
+#: breakpoint.c:11174
 msgid "unsupported or unknown fork kind; cannot catch it"
 msgstr ""
 
-#: breakpoint.c:11219 breakpoint.c:11226
+#: breakpoint.c:11251 breakpoint.c:11258
 msgid "Catch requires an event name."
 msgstr ""
 
-#: breakpoint.c:11276
+#: breakpoint.c:11308
 msgid "No source file specified."
 msgstr ""
 
-#: breakpoint.c:11370
+#: breakpoint.c:11402
 #, possible-c-format
 msgid "No breakpoint at %s."
 msgstr ""
 
-#: breakpoint.c:11372
+#: breakpoint.c:11404
 msgid "No breakpoint at this line."
 msgstr ""
 
-#: breakpoint.c:11393
+#: breakpoint.c:11425
 msgid "Deleted breakpoint "
 msgstr ""
 
-#: breakpoint.c:11395
+#: breakpoint.c:11427
 msgid "Deleted breakpoints "
 msgstr ""
 
@@ -3934,237 +3934,237 @@ msgstr ""
 #. Note that at this point, old_loc->owner is still
 #. valid, as delete_breakpoint frees the breakpoint
 #. only after calling us.
-#: breakpoint.c:11816
+#: breakpoint.c:11848
 #, possible-c-format
 msgid "warning: Error removing breakpoint %d\n"
 msgstr ""
 
-#: breakpoint.c:12050
+#: breakpoint.c:12082
 #, possible-c-format
 msgid " (%s) pending."
 msgstr ""
 
-#: breakpoint.c:12055
+#: breakpoint.c:12087
 #, possible-c-format
 msgid " (%s,%s) pending."
 msgstr ""
 
-#: breakpoint.c:12061
+#: breakpoint.c:12093
 #, possible-c-format
 msgid " (%s %s) pending."
 msgstr ""
 
-#: breakpoint.c:12408
+#: breakpoint.c:12440
 msgid "Temporary breakpoint"
 msgstr ""
 
-#: breakpoint.c:12410
+#: breakpoint.c:12442
 msgid "Breakpoint"
 msgstr ""
 
-#: breakpoint.c:12411 breakpoint.c:12724 breakpoint.c:12728 breakpoint.c:12732
+#: breakpoint.c:12443 breakpoint.c:12756 breakpoint.c:12760 breakpoint.c:12764
 #, possible-c-format
 msgid " %d"
 msgstr ""
 
-#: breakpoint.c:12413
+#: breakpoint.c:12445
 msgid " at gnu-indirect-function resolver"
 msgstr ""
 
-#: breakpoint.c:12416
+#: breakpoint.c:12448
 #, possible-c-format
 msgid "Hardware assisted breakpoint %d"
 msgstr ""
 
-#: breakpoint.c:12419
+#: breakpoint.c:12451
 #, possible-c-format
 msgid "Dprintf %d"
 msgstr ""
 
-#: breakpoint.c:12440
+#: breakpoint.c:12472
 #, possible-c-format
 msgid "unhandled breakpoint type %d"
 msgstr ""
 
 #. Not sure how we will get here.
 #. GDB should not stop for these breakpoints.
-#: breakpoint.c:12553
+#: breakpoint.c:12585
 msgid "Thread Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. By analogy with the thread event, GDB should not stop for these.
-#: breakpoint.c:12558
+#: breakpoint.c:12590
 msgid "Overlay Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:12563
+#: breakpoint.c:12595
 msgid "Longjmp Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:12568
+#: breakpoint.c:12600
 msgid "std::terminate Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:12574
+#: breakpoint.c:12606
 msgid "Exception Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
-#: breakpoint.c:12677
+#: breakpoint.c:12709
 msgid "probe not found"
 msgstr ""
 
-#: breakpoint.c:12723
+#: breakpoint.c:12755
 msgid "Tracepoint"
 msgstr ""
 
-#: breakpoint.c:12727
+#: breakpoint.c:12759
 msgid "Fast tracepoint"
 msgstr ""
 
-#: breakpoint.c:12731
+#: breakpoint.c:12763
 msgid "Static tracepoint"
 msgstr ""
 
-#: breakpoint.c:12736 breakpoint.c:12755
+#: breakpoint.c:12768 breakpoint.c:12787
 #, possible-c-format
 msgid "unhandled tracepoint type %d"
 msgstr ""
 
-#: breakpoint.c:12987
+#: breakpoint.c:13016
 #, possible-c-format
 msgid "marker %s not found"
 msgstr ""
 
-#: breakpoint.c:13151
+#: breakpoint.c:13180
 msgid "Delete all breakpoints? "
 msgstr ""
 
-#: breakpoint.c:13267
+#: breakpoint.c:13296
 #, possible-c-format
 msgid "static tracepoint %d changed probed marker from %s to %s"
 msgstr ""
 
-#: breakpoint.c:13298
+#: breakpoint.c:13327
 #, possible-c-format
 msgid "marker for static tracepoint %d (%s) not found at previous line number"
 msgstr ""
 
-#: breakpoint.c:13428
+#: breakpoint.c:13457
 #, possible-c-format
 msgid "Could not reset ranged breakpoint %d: multiple locations found\n"
 msgstr ""
 
-#: breakpoint.c:13468
+#: breakpoint.c:13497
 #, possible-c-format
 msgid "failed to reevaluate condition for breakpoint %d: %s"
 msgstr ""
 
-#: breakpoint.c:13809
+#: breakpoint.c:13838
 #, possible-c-format
 msgid "Ignore count ignored for tracepoint %d."
 msgstr ""
 
-#: breakpoint.c:13818
+#: breakpoint.c:13847
 #, possible-c-format
 msgid "Will stop next time breakpoint %d is reached."
 msgstr ""
 
-#: breakpoint.c:13822
+#: breakpoint.c:13851
 #, possible-c-format
 msgid "Will ignore next crossing of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:13825
+#: breakpoint.c:13854
 #, possible-c-format
 msgid "Will ignore next %d crossings of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:13845
+#: breakpoint.c:13874
 msgid "a breakpoint number"
 msgstr ""
 
-#: breakpoint.c:13849
+#: breakpoint.c:13878
 #, possible-c-format
 msgid "bad breakpoint number: '%s'"
 msgstr ""
 
-#: breakpoint.c:13851
+#: breakpoint.c:13880
 msgid "Second argument (specified ignore-count) is missing."
 msgstr ""
 
-#: breakpoint.c:13870
+#: breakpoint.c:13899
 #, possible-c-format
 msgid "bad breakpoint number at or near '%d'"
 msgstr ""
 
-#: breakpoint.c:13889
+#: breakpoint.c:13918
 #, possible-c-format
 msgid "No breakpoint number %d.\n"
 msgstr ""
 
-#: breakpoint.c:13902
+#: breakpoint.c:13931
 msgid "one or more breakpoint numbers"
 msgstr ""
 
-#: breakpoint.c:13928
+#: breakpoint.c:13957
 #, possible-c-format
 msgid "Bad breakpoint number '%d'"
 msgstr ""
 
-#: breakpoint.c:13931 breakpoint.c:13938
+#: breakpoint.c:13960 breakpoint.c:13967
 #, possible-c-format
 msgid "Bad breakpoint location number '%d'"
 msgstr ""
 
-#: breakpoint.c:13965
+#: breakpoint.c:13994
 #, possible-c-format
 msgid "Negative breakpoint number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13966
+#: breakpoint.c:13995
 #, possible-c-format
 msgid "Negative breakpoint location number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13970
+#: breakpoint.c:13999
 #, possible-c-format
 msgid "Bad breakpoint number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13971
+#: breakpoint.c:14000
 #, possible-c-format
 msgid "Bad breakpoint location number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13997 breakpoint.c:14047
+#: breakpoint.c:14026 breakpoint.c:14076
 #, possible-c-format
 msgid "Bad breakpoint number at or near: '%s'"
 msgstr ""
 
-#: breakpoint.c:13998
+#: breakpoint.c:14027
 #, possible-c-format
 msgid "Bad breakpoint location number at or near: '%s'"
 msgstr ""
 
-#: breakpoint.c:14009
+#: breakpoint.c:14038
 #, possible-c-format
 msgid "Inverted breakpoint range at '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14010
+#: breakpoint.c:14039
 #, possible-c-format
 msgid "Inverted breakpoint location range at '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14235
+#: breakpoint.c:14264
 #, possible-c-format
 msgid "Cannot enable watchpoint %d: "
 msgstr ""
 
-#: breakpoint.c:14300
+#: breakpoint.c:14329
 msgid "hit count"
 msgstr ""
 
@@ -4172,72 +4172,72 @@ msgstr ""
 #. address.  Since there is no way to confirm that the address
 #. means the same thing as when the trace was started, warn the
 #. user.
-#: breakpoint.c:14586
+#: breakpoint.c:14610
 #, possible-c-format
 msgid "Uploaded tracepoint %d has no source location, using raw address"
 msgstr ""
 
-#: breakpoint.c:14595
+#: breakpoint.c:14619
 #, possible-c-format
 msgid "Uploaded tracepoint %d condition has no source form, ignoring it"
 msgstr ""
 
-#: breakpoint.c:14645
+#: breakpoint.c:14669
 #, possible-c-format
 msgid "Uploaded tracepoint %d actions have no source form, ignoring them"
 msgstr ""
 
-#: breakpoint.c:14719
+#: breakpoint.c:14743
 msgid "Delete all tracepoints? "
 msgstr ""
 
-#: breakpoint.c:14742
+#: breakpoint.c:14766
 #, possible-c-format
 msgid "Setting tracepoint %d's passcount to %d\n"
 msgstr ""
 
-#: breakpoint.c:14759
+#: breakpoint.c:14783
 msgid "passcount command requires an argument (count + optional TP num)"
 msgstr ""
 
-#: breakpoint.c:14855
+#: breakpoint.c:14879
 #, possible-c-format
 msgid "bad tracepoint number at or near '%s'\n"
 msgstr ""
 
-#: breakpoint.c:14858
+#: breakpoint.c:14882
 msgid "No previous tracepoint\n"
 msgstr ""
 
-#: breakpoint.c:14898
+#: breakpoint.c:14922
 msgid "Argument required (file name in which to save)"
 msgstr ""
 
-#: breakpoint.c:14924
+#: breakpoint.c:14948
 msgid "Nothing to save."
 msgstr ""
 
-#: breakpoint.c:14933
+#: breakpoint.c:14957
 #, possible-c-format
 msgid "Unable to open file '%s' for saving (%s)"
 msgstr ""
 
-#: breakpoint.c:15001
+#: breakpoint.c:15025
 #, possible-c-format
 msgid "Saved to file '%s'.\n"
 msgstr ""
 
-#: breakpoint.c:15120
+#: breakpoint.c:15144
 msgid "\"save\" must be followed by the name of a save subcommand.\n"
 msgstr ""
 
-#: breakpoint.c:15393
+#: breakpoint.c:15417
 msgid ""
 "Set ignore-count of breakpoint number N to COUNT.\n"
 "Usage is `ignore N COUNT'."
 msgstr ""
 
-#: breakpoint.c:15398
+#: breakpoint.c:15422
 msgid ""
 "Set commands to be executed when the given breakpoints are hit.\n"
 "Give a space-separated breakpoint list as argument after \"commands\".\n"
@@ -4250,14 +4250,14 @@ msgid ""
 "then no output is printed when it is hit, except what the commands print."
 msgstr ""
 
-#: breakpoint.c:15409
+#: breakpoint.c:15433
 msgid ""
 "Specify breakpoint number N to break only if COND is true.\n"
 "Usage is `condition N COND', where N is an integer and COND is an\n"
 "expression to be evaluated whenever breakpoint N is reached."
 msgstr ""
 
-#: breakpoint.c:15415
+#: breakpoint.c:15439
 msgid ""
 "Set a temporary breakpoint.\n"
 "Like \"break\" except the breakpoint is only temporary,\n"
@@ -4266,7 +4266,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15424
+#: breakpoint.c:15448
 msgid ""
 "Set a hardware assisted breakpoint.\n"
 "Like \"break\" except the breakpoint requires hardware support,\n"
@@ -4274,7 +4274,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15432
+#: breakpoint.c:15456
 msgid ""
 "Set a temporary hardware assisted breakpoint.\n"
 "Like \"hbreak\" except the breakpoint is only temporary,\n"
@@ -4282,7 +4282,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15440
+#: breakpoint.c:15464
 msgid ""
 "Enable all or some breakpoints.\n"
 "Usage: enable [BREAKPOINTNUM]...\n"
@@ -4292,7 +4292,7 @@ msgid ""
 "With a subcommand you can enable temporarily."
 msgstr ""
 
-#: breakpoint.c:15451
+#: breakpoint.c:15475
 msgid ""
 "Enable all or some breakpoints.\n"
 "Usage: enable breakpoints [BREAKPOINTNUM]...\n"
@@ -4301,21 +4301,21 @@ msgid ""
 "May be abbreviated to simply \"enable\"."
 msgstr ""
 
-#: breakpoint.c:15459
+#: breakpoint.c:15483
 msgid ""
 "Enable some breakpoints for one hit.\n"
 "Usage: enable breakpoints once BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it becomes disabled."
 msgstr ""
 
-#: breakpoint.c:15465
+#: breakpoint.c:15489
 msgid ""
 "Enable some breakpoints and delete when hit.\n"
 "Usage: enable breakpoints delete BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it is deleted."
 msgstr ""
 
-#: breakpoint.c:15471
+#: breakpoint.c:15495
 msgid ""
 "Enable some breakpoints for COUNT hits.\n"
 "Usage: enable breakpoints count COUNT BREAKPOINTNUM...\n"
@@ -4323,21 +4323,21 @@ msgid ""
 "the count is decremented; when it reaches zero, the breakpoint is disabled."
 msgstr ""
 
-#: breakpoint.c:15478
+#: breakpoint.c:15502
 msgid ""
 "Enable some breakpoints and delete when hit.\n"
 "Usage: enable delete BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it is deleted."
 msgstr ""
 
-#: breakpoint.c:15484
+#: breakpoint.c:15508
 msgid ""
 "Enable some breakpoints for one hit.\n"
 "Usage: enable once BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it becomes disabled."
 msgstr ""
 
-#: breakpoint.c:15490
+#: breakpoint.c:15514
 msgid ""
 "Enable some breakpoints for COUNT hits.\n"
 "Usage: enable count COUNT BREAKPOINTNUM...\n"
@@ -4345,7 +4345,7 @@ msgid ""
 "the count is decremented; when it reaches zero, the breakpoint is disabled."
 msgstr ""
 
-#: breakpoint.c:15497
+#: breakpoint.c:15521
 msgid ""
 "Disable all or some breakpoints.\n"
 "Usage: disable [BREAKPOINTNUM]...\n"
@@ -4354,7 +4354,7 @@ msgid ""
 "A disabled breakpoint is not forgotten, but has no effect until re-enabled."
 msgstr ""
 
-#: breakpoint.c:15507
+#: breakpoint.c:15531
 msgid ""
 "Disable all or some breakpoints.\n"
 "Usage: disable breakpoints [BREAKPOINTNUM]...\n"
@@ -4364,7 +4364,7 @@ msgid ""
 "This command may be abbreviated \"disable\"."
 msgstr ""
 
-#: breakpoint.c:15516
+#: breakpoint.c:15540
 msgid ""
 "Delete all or some breakpoints.\n"
 "Usage: delete [BREAKPOINTNUM]...\n"
@@ -4374,7 +4374,7 @@ msgid ""
 "Also a prefix command for deletion of other GDB objects."
 msgstr ""
 
-#: breakpoint.c:15527
+#: breakpoint.c:15551
 msgid ""
 "Delete all or some breakpoints or auto-display expressions.\n"
 "Usage: delete breakpoints [BREAKPOINTNUM]...\n"
@@ -4383,7 +4383,7 @@ msgid ""
 "This command may be abbreviated \"delete\"."
 msgstr ""
 
-#: breakpoint.c:15535
+#: breakpoint.c:15559
 msgid ""
 "Clear breakpoint at specified location.\n"
 "Argument may be a linespec, explicit, or address location as described "
@@ -4395,23 +4395,23 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15545
+#: breakpoint.c:15569
 msgid "Set breakpoint at specified location.\n"
 msgstr ""
 
-#: breakpoint.c:15557
+#: breakpoint.c:15581
 msgid "Break in function/address or break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:15561
+#: breakpoint.c:15585
 msgid "Break in function or address."
 msgstr ""
 
-#: breakpoint.c:15563
+#: breakpoint.c:15587
 msgid "Break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:15564
+#: breakpoint.c:15588
 msgid ""
 "Status of user-settable breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4433,7 +4433,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:15581
+#: breakpoint.c:15605
 msgid ""
 "Status of specified breakpoints (all user-settable breakpoints if no "
 "argument).\n"
@@ -4456,7 +4456,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:15599
+#: breakpoint.c:15623
 msgid ""
 "Status of all breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4482,43 +4482,43 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:15620
+#: breakpoint.c:15644
 msgid "Set catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15625
+#: breakpoint.c:15649
 msgid "Set temporary catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15630
+#: breakpoint.c:15654
 msgid "Catch calls to fork."
 msgstr ""
 
-#: breakpoint.c:15635
+#: breakpoint.c:15659
 msgid "Catch calls to vfork."
 msgstr ""
 
-#: breakpoint.c:15640
+#: breakpoint.c:15664
 msgid "Catch calls to exec."
 msgstr ""
 
-#: breakpoint.c:15645
+#: breakpoint.c:15669
 msgid ""
 "Catch loads of shared libraries.\n"
 "Usage: catch load [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:15652
+#: breakpoint.c:15676
 msgid ""
 "Catch unloads of shared libraries.\n"
 "Usage: catch unload [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:15660
+#: breakpoint.c:15684
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: watch [-l|-location] EXPRESSION\n"
@@ -4528,7 +4528,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:15669
+#: breakpoint.c:15693
 msgid ""
 "Set a read watchpoint for an expression.\n"
 "Usage: rwatch [-l|-location] EXPRESSION\n"
@@ -4538,7 +4538,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:15678
+#: breakpoint.c:15702
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: awatch [-l|-location] EXPRESSION\n"
@@ -4548,19 +4548,19 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:15687
+#: breakpoint.c:15711
 msgid "Status of specified watchpoints (all watchpoints if no argument)."
 msgstr ""
 
-#: breakpoint.c:15693
+#: breakpoint.c:15717
 msgid "Set debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:15694
+#: breakpoint.c:15718
 msgid "Show debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:15695
+#: breakpoint.c:15719
 msgid ""
 "If zero, gdb will not use hardware for new watchpoints, even if\n"
 "such is available.  (However, any hardware watchpoints that were\n"
@@ -4569,19 +4569,19 @@ msgid ""
 msgstr ""
 
 #. Tracepoint manipulation commands.
-#: breakpoint.c:15708
+#: breakpoint.c:15732
 msgid ""
 "Set a tracepoint at specified location.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:15720
+#: breakpoint.c:15744
 msgid ""
 "Set a fast tracepoint at specified location.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:15727
+#: breakpoint.c:15751
 msgid ""
 "Set a static tracepoint at location or marker.\n"
 "\n"
@@ -4601,35 +4601,35 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15749
+#: breakpoint.c:15773
 msgid ""
 "Status of specified tracepoints (all tracepoints if no argument).\n"
 "Convenience variable \"$tpnum\" contains the number of the\n"
 "last tracepoint set."
 msgstr ""
 
-#: breakpoint.c:15756
+#: breakpoint.c:15780
 msgid ""
 "Delete specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means delete all tracepoints."
 msgstr ""
 
-#: breakpoint.c:15763
+#: breakpoint.c:15787
 msgid ""
 "Disable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means disable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:15770
+#: breakpoint.c:15794
 msgid ""
 "Enable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means enable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:15777
+#: breakpoint.c:15801
 msgid ""
 "Set the passcount for a tracepoint.\n"
 "The trace will end when the tracepoint has been passed 'count' times.\n"
@@ -4637,12 +4637,12 @@ msgid ""
 "if TPNUM is omitted, passcount refers to the last tracepoint defined."
 msgstr ""
 
-#: breakpoint.c:15784
+#: breakpoint.c:15808
 msgid "Save breakpoint definitions as a script."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15788
+#: breakpoint.c:15812
 msgid ""
 "Save current breakpoint definitions as a script.\n"
 "This includes all types of breakpoints (breakpoints, watchpoints,\n"
@@ -4650,29 +4650,29 @@ msgid ""
 "session to restore them."
 msgstr ""
 
-#: breakpoint.c:15796
+#: breakpoint.c:15820
 msgid ""
 "Save current tracepoint definitions as a script.\n"
 "Use the 'source' command in another debug session to restore them."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15805 breakpoint.c:15811
+#: breakpoint.c:15829 breakpoint.c:15835
 msgid ""
 "Breakpoint specific settings.\n"
 "Configure various breakpoint-specific variables such as\n"
 "pending breakpoint behavior."
 msgstr ""
 
-#: breakpoint.c:15819
+#: breakpoint.c:15843
 msgid "Set debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:15820
+#: breakpoint.c:15844
 msgid "Show debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:15821
+#: breakpoint.c:15845
 msgid ""
 "If on, an unrecognized breakpoint location will cause gdb to create a\n"
 "pending breakpoint.  If off, an unrecognized breakpoint location results in\n"
@@ -4680,15 +4680,15 @@ msgid ""
 "user-query to see if a pending breakpoint should be created."
 msgstr ""
 
-#: breakpoint.c:15834
+#: breakpoint.c:15858
 msgid "Set automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:15835
+#: breakpoint.c:15859
 msgid "Show automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:15836
+#: breakpoint.c:15860
 msgid ""
 "If set, the debugger will automatically use hardware breakpoints for\n"
 "breakpoints set with \"break\" but falling in read-only memory.  If not "
@@ -4696,15 +4696,15 @@ msgid ""
 "a warning will be emitted for such breakpoints."
 msgstr ""
 
-#: breakpoint.c:15846
+#: breakpoint.c:15870
 msgid "Set mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:15847
+#: breakpoint.c:15871
 msgid "Show mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:15848
+#: breakpoint.c:15872
 msgid ""
 "When this mode is on, breakpoints are inserted immediately as soon as\n"
 "they're created, kept inserted even when execution stops, and removed\n"
@@ -4713,15 +4713,15 @@ msgid ""
 "when execution stops."
 msgstr ""
 
-#: breakpoint.c:15861
+#: breakpoint.c:15885
 msgid "Set mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:15862
+#: breakpoint.c:15886
 msgid "Show mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:15863
+#: breakpoint.c:15887
 msgid ""
 "When this is set to \"host\", breakpoint conditions will be\n"
 "evaluated on the host's side by GDB.  When it is set to \"target\",\n"
@@ -4733,7 +4733,7 @@ msgid ""
 "be set to \"gdb\""
 msgstr ""
 
-#: breakpoint.c:15876
+#: breakpoint.c:15900
 msgid ""
 "Set a breakpoint for an address range.\n"
 "break-range START-LOCATION, END-LOCATION\n"
@@ -4751,7 +4751,7 @@ msgid ""
 "range (including START-LOCATION and END-LOCATION)."
 msgstr ""
 
-#: breakpoint.c:15892
+#: breakpoint.c:15916
 msgid ""
 "Set a dynamic printf at specified location.\n"
 "dprintf location,format string,arg1,arg2,...\n"
@@ -4759,15 +4759,15 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15900
+#: breakpoint.c:15924
 msgid "Set the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15901
+#: breakpoint.c:15925
 msgid "Show the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15902
+#: breakpoint.c:15926
 msgid ""
 "This setting chooses how GDB will do a dynamic printf.\n"
 "If the value is \"gdb\", then the printing is done by GDB to its own\n"
@@ -4777,37 +4777,37 @@ msgid ""
 "output stream by setting dprintf-function and dprintf-channel."
 msgstr ""
 
-#: breakpoint.c:15914
+#: breakpoint.c:15938
 msgid "Set the function to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15915
+#: breakpoint.c:15939
 msgid "Show the function to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15922
+#: breakpoint.c:15946
 msgid "Set the channel to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15923
+#: breakpoint.c:15947
 msgid "Show the channel to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15929
+#: breakpoint.c:15953
 msgid "Set whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:15930
+#: breakpoint.c:15954
 msgid "Show whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:15931
+#: breakpoint.c:15955
 msgid ""
 "Use this to let dprintf commands continue to hit and produce output\n"
 "even if GDB disconnects or detaches from the target."
 msgstr ""
 
-#: breakpoint.c:15938
+#: breakpoint.c:15962
 #, possible-c-format
 msgid ""
 "Target agent only formatted printing, like the C \"printf\" function.\n"
@@ -5145,45 +5145,45 @@ msgid ""
 "The next 'record' command will fetch the branch tracing data anew."
 msgstr ""
 
-#: build-id.c:56
+#: build-id.c:57
 #, possible-c-format
 msgid "File \"%s\" has no build-id, file skipped"
 msgstr ""
 
-#: build-id.c:60
+#: build-id.c:61
 #, possible-c-format
 msgid "File \"%s\" has a different build-id, file skipped"
 msgstr ""
 
-#: build-id.c:78 symfile.c:1288
+#: build-id.c:79 symfile.c:1288
 #, possible-c-format
 msgid "  Trying %s..."
 msgstr ""
 
-#: build-id.c:90
+#: build-id.c:91
 msgid " no, unable to compute real path\n"
 msgstr ""
 
-#: build-id.c:101 symfile.c:1297
+#: build-id.c:102 symfile.c:1297
 msgid " no, unable to open.\n"
 msgstr ""
 
-#: build-id.c:109
+#: build-id.c:110
 msgid " no, build-id does not match.\n"
 msgstr ""
 
-#: build-id.c:115 symfile.c:1371
+#: build-id.c:116 symfile.c:1371
 msgid " yes!\n"
 msgstr ""
 
-#: build-id.c:189
+#: build-id.c:209
 #, possible-c-format
 msgid ""
 "\n"
 "Looking for separate debug info (build-id) for %s\n"
 msgstr ""
 
-#: build-id.c:198
+#: build-id.c:218
 #, possible-c-format
 msgid "\"%s\": separate debug info file has no debug info"
 msgstr ""
@@ -5243,90 +5243,90 @@ msgstr ""
 msgid "%s is not an ObjC Class"
 msgstr ""
 
-#: c-exp.y:913
+#: c-exp.y:912
 msgid "Undefined string concatenation."
 msgstr ""
 
-#: c-exp.y:989 go-exp.y:539
+#: c-exp.y:988 go-exp.y:539
 #, possible-c-format
 msgid "@entry can be used only for function parameters, not for \"%s\""
 msgstr ""
 
-#: c-exp.y:1007 eval.c:1367 m2-exp.y:548 p-exp.y:656
+#: c-exp.y:1006 eval.c:1367 m2-exp.y:548 p-exp.y:656
 #, possible-c-format
 msgid "No symbol \"%s\" in specified context."
 msgstr ""
 
-#: c-exp.y:1023 c-exp.y:1039 d-exp.y:502 p-exp.y:671
+#: c-exp.y:1022 c-exp.y:1038 d-exp.y:502 p-exp.y:671
 #, possible-c-format
 msgid "`%s' is not defined as an aggregate type."
 msgstr ""
 
-#: c-exp.y:1058
+#: c-exp.y:1057
 #, possible-c-format
 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:1089 c-exp.y:1142 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."
 msgstr ""
 
-#: c-exp.y:1854
+#: c-exp.y:1818
 msgid "parameter types following 'void'"
 msgstr ""
 
-#: c-exp.y:1857
+#: c-exp.y:1821
 msgid "'void' invalid as parameter type"
 msgstr ""
 
-#: c-exp.y:2033 d-exp.y:819 go-exp.y:787 p-exp.y:970
+#: c-exp.y:1997 d-exp.y:819 go-exp.y:787 p-exp.y:970
 msgid "Numeric constant too large."
 msgstr ""
 
-#: c-exp.y:2135
+#: c-exp.y:2099
 msgid "\\x escape without a following hex digit"
 msgstr ""
 
-#: c-exp.y:2185
+#: c-exp.y:2149
 #, possible-c-format
 msgid "\\%c escape without a following hex digit"
 msgstr ""
 
-#: c-exp.y:2361 d-exp.y:930 go-exp.y:921 macroexp.c:410 p-exp.y:1373
+#: c-exp.y:2325 d-exp.y:930 go-exp.y:921 macroexp.c:410 p-exp.y:1373
 msgid "Unterminated string in expression."
 msgstr ""
 
-#: c-exp.y:2363 d-exp.y:932 go-exp.y:923 macroexp.c:353 p-exp.y:1204
+#: c-exp.y:2327 d-exp.y:932 go-exp.y:923 macroexp.c:353 p-exp.y:1204
 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:2696 d-exp.y:1176 f-exp.y:1215 go-exp.y:1148 m2-exp.y:918
 #: p-exp.y:1300
 #, possible-c-format
 msgid "Invalid number \"%s\"."
 msgstr ""
 
-#: c-exp.y:2805 d-exp.y:1228 go-exp.y:1200 p-exp.y:1191
+#: c-exp.y:2769 d-exp.y:1228 go-exp.y:1200 p-exp.y:1191
 msgid "Empty character constant."
 msgstr ""
 
-#: c-exp.y:2815 d-exp.y:1236 go-exp.y:1208 p-exp.y:1210
+#: c-exp.y:2779 d-exp.y:1236 go-exp.y:1208 p-exp.y:1210
 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:2787 f-exp.y:1249 go-exp.y:1217 m2-exp.y:927 p-exp.y:1385
 #, possible-c-format
 msgid "Invalid character '%c' in expression."
 msgstr ""
 
-#: c-exp.y:3145
+#: c-exp.y:3109
 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:3378 d-exp.y:1647 f-exp.y:1369 go-exp.y:1582 m2-exp.y:1052
 #: p-exp.y:1749
 #, possible-c-format
 msgid "A %s in expression, near `%s'."
@@ -5455,7 +5455,7 @@ msgid ""
 "`set target-wide-charset'<TAB>"
 msgstr ""
 
-#: c-lang.c:65 c-lang.c:626
+#: c-lang.c:65 c-lang.c:623
 msgid "unhandled c_string_type"
 msgstr ""
 
@@ -5484,12 +5484,12 @@ msgstr ""
 msgid "\\u used with no following hex digits"
 msgstr ""
 
-#: c-lang.c:684
+#: c-lang.c:681
 msgid "Could not convert character constant to target character set"
 msgstr ""
 
 #. To avoid memory corruption.
-#: c-lang.c:710 eval.c:1483
+#: c-lang.c:707 eval.c:1483
 msgid "Too many array elements"
 msgstr ""
 
@@ -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 ""
@@ -7906,40 +7906,40 @@ msgstr ""
 msgid "Use `set gnutarget auto' to specify automatic detection."
 msgstr ""
 
-#: corelow.c:58
+#: corelow.c:59
 msgid "Local core dump file"
 msgstr ""
 
-#: corelow.c:59
+#: corelow.c:60
 msgid ""
 "Use a core file as a target.\n"
 "Specify the filename of the core file."
 msgstr ""
 
-#: corelow.c:146 record-full.c:932
+#: corelow.c:147 record-full.c:932
 #, possible-c-format
 msgid "\"%s\": Can't find sections: %s"
 msgstr ""
 
-#: corelow.c:219
+#: corelow.c:220
 #, possible-c-format
 msgid "\"%s\": ambiguous core format, %d handlers match"
 msgstr ""
 
-#: corelow.c:223
+#: corelow.c:224
 #, possible-c-format
 msgid "\"%s\": no core file handler recognizes format"
 msgstr ""
 
-#: corelow.c:330
+#: corelow.c:331
 msgid "No core file now.\n"
 msgstr ""
 
-#: corelow.c:368
+#: corelow.c:390
 msgid "No core file specified.  (Use `detach' to stop debugging a core file.)"
 msgstr ""
 
-#: corelow.c:371
+#: corelow.c:393
 msgid "No core file specified."
 msgstr ""
 
@@ -7947,46 +7947,46 @@ msgstr ""
 #. FIXME: should be checking for errors from bfd_close (for one
 #. thing, on error it does not free all the storage associated
 #. with the bfd).
-#: corelow.c:401
+#: corelow.c:423
 #, possible-c-format
 msgid "\"%s\" is not a core dump: %s"
 msgstr ""
 
-#: corelow.c:477
+#: corelow.c:502
 #, possible-c-format
 msgid "Core was generated by `%s'.\n"
 msgstr ""
 
-#: corelow.c:499
+#: corelow.c:524
 #, possible-c-format
 msgid "Program terminated with signal %s, %s.\n"
 msgstr ""
 
-#: corelow.c:582
+#: corelow.c:607
 #, possible-c-format
 msgid "Couldn't find %s registers in core file."
 msgstr ""
 
-#: corelow.c:590
+#: corelow.c:615
 #, possible-c-format
 msgid "Section `%s' in core file too small."
 msgstr ""
 
-#: corelow.c:596
+#: corelow.c:621
 #, possible-c-format
 msgid "Unexpected size of section `%s' in core file."
 msgstr ""
 
-#: corelow.c:604
+#: corelow.c:629
 #, possible-c-format
 msgid "Couldn't read %s registers from `%s' section in core file."
 msgstr ""
 
-#: corelow.c:752
+#: corelow.c:777
 msgid "Couldn't read NT_AUXV note in core file."
 msgstr ""
 
-#: corelow.c:787
+#: corelow.c:812
 msgid "Couldn't read StackGhost cookie in core file."
 msgstr ""
 
@@ -8080,15 +8080,15 @@ msgstr ""
 msgid "invalid character"
 msgstr ""
 
-#: cp-namespace.c:981
+#: cp-namespace.c:980
 msgid "cp_lookup_nested_symbol called on a non-aggregate type."
 msgstr ""
 
-#: cp-namespace.c:1062
+#: cp-namespace.c:1061
 msgid "The `maint namespace' command was removed.\n"
 msgstr ""
 
-#: cp-namespace.c:1072
+#: cp-namespace.c:1071
 msgid "Deprecated placeholder for removed functionality."
 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:686
 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 ""
@@ -12760,7 +12769,7 @@ msgid "No registers."
 msgstr ""
 
 #: frame.c:1607 stack.c:1956 stack.c:1984 stack.c:3196 stack.c:3244
-#: stack.c:3259 thread.c:1859
+#: stack.c:3259 thread.c:1863
 msgid "No stack."
 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 ""
 
@@ -13523,89 +13532,89 @@ msgid ""
 "won't be propagated to spawned programs.\n"
 msgstr ""
 
-#: gdbtypes.c:136
+#: gdbtypes.c:137
 #, possible-c-format
 msgid ""
 "Resolution of opaque struct/class/union types (if set before loading "
 "symbols) is %s.\n"
 msgstr ""
 
-#: gdbtypes.c:147
+#: gdbtypes.c:148
 #, possible-c-format
 msgid "Debugging of C++ overloading is %s.\n"
 msgstr ""
 
-#: gdbtypes.c:157
+#: gdbtypes.c:158
 #, possible-c-format
 msgid "Strict type checking is %s.\n"
 msgstr ""
 
-#: gdbtypes.c:592
+#: gdbtypes.c:593
 #, possible-c-format
 msgid "Unknown address space specifier: \"%s\""
 msgstr ""
 
-#: gdbtypes.c:1544
+#: gdbtypes.c:1548
 #, possible-c-format
 msgid "Invalid anonymous type %s [in module %s], GCC PR debug/47510 bug?"
 msgstr ""
 
-#: gdbtypes.c:1567
+#: gdbtypes.c:1571
 #, 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:4455
 #, possible-c-format
 msgid ") length %d\n"
 msgstr ""
 
-#: gdbtypes.c:4577
+#: gdbtypes.c:4604
 msgid " <same as already seen type>\n"
 msgstr ""
 
-#: gdbtypes.c:5024
+#: gdbtypes.c:5051
 #, possible-c-format
 msgid "Unexpected type field location kind: %d"
 msgstr ""
 
-#: gdbtypes.c:5669
+#: gdbtypes.c:5696
 msgid "Set debugging of C++ overloading."
 msgstr ""
 
-#: gdbtypes.c:5670
+#: gdbtypes.c:5697
 msgid "Show debugging of C++ overloading."
 msgstr ""
 
-#: gdbtypes.c:5671
+#: gdbtypes.c:5698
 msgid "When enabled, ranking of the functions is displayed."
 msgstr ""
 
-#: gdbtypes.c:5680
+#: gdbtypes.c:5707
 msgid ""
 "Set resolution of opaque struct/class/union types (if set before loading "
 "symbols)."
 msgstr ""
 
-#: gdbtypes.c:5682
+#: gdbtypes.c:5709
 msgid ""
 "Show resolution of opaque struct/class/union types (if set before loading "
 "symbols)."
 msgstr ""
 
-#: gdbtypes.c:5691
+#: gdbtypes.c:5718
 msgid "Set strict type checking."
 msgstr ""
 
-#: gdbtypes.c:5692
+#: gdbtypes.c:5719
 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
@@ -14427,8 +14437,8 @@ msgstr ""
 msgid "not member of enumeration"
 msgstr ""
 
-#: guile/scm-param.c:722 guile/scm-utils.c:215 guile/scm-breakpoint.c:587
-#: guile/scm-breakpoint.c:626
+#: guile/scm-param.c:722 guile/scm-utils.c:215 guile/scm-breakpoint.c:589
+#: guile/scm-breakpoint.c:628
 msgid "boolean"
 msgstr ""
 
@@ -14441,8 +14451,8 @@ msgid "integer or #:unlimited"
 msgstr ""
 
 #: guile/scm-param.c:762 guile/scm-type.c:1109 guile/scm-ports.c:1179
-#: guile/scm-ports.c:1221 guile/scm-breakpoint.c:664
-#: guile/scm-breakpoint.c:705
+#: guile/scm-ports.c:1221 guile/scm-breakpoint.c:666
+#: guile/scm-breakpoint.c:707
 msgid "integer"
 msgstr ""
 
@@ -14952,27 +14962,27 @@ msgstr ""
 msgid "breakpoint is already registered"
 msgstr ""
 
-#: guile/scm-breakpoint.c:714
+#: guile/scm-breakpoint.c:716
 msgid "hit-count must be zero"
 msgstr ""
 
-#: guile/scm-breakpoint.c:751
+#: guile/scm-breakpoint.c:753
 msgid "invalid thread id"
 msgstr ""
 
-#: guile/scm-breakpoint.c:757 guile/scm-breakpoint.c:812
+#: guile/scm-breakpoint.c:759 guile/scm-breakpoint.c:814
 msgid "integer or #f"
 msgstr ""
 
-#: guile/scm-breakpoint.c:806
+#: guile/scm-breakpoint.c:808
 msgid "invalid task id"
 msgstr ""
 
-#: guile/scm-breakpoint.c:897
+#: guile/scm-breakpoint.c:899
 msgid "string or #f"
 msgstr ""
 
-#: guile/scm-breakpoint.c:936
+#: guile/scm-breakpoint.c:938
 msgid "procedure or #f"
 msgstr ""
 
@@ -16450,100 +16460,100 @@ msgstr ""
 msgid "[Inferior %d (%s) detached]\n"
 msgstr ""
 
-#: inferior.c:424
+#: inferior.c:422
 msgid "<noexec>"
 msgstr ""
 
-#: inferior.c:426
+#: inferior.c:424
 #, possible-c-format
 msgid "[Switching to inferior %d [%s] (%s)]\n"
 msgstr ""
 
-#: inferior.c:490
+#: inferior.c:488
 msgid ""
 "\n"
 "\tis vfork child of inferior "
 msgstr ""
 
-#: inferior.c:495
+#: inferior.c:493
 msgid ""
 "\n"
 "\tis vfork parent of inferior "
 msgstr ""
 
-#: inferior.c:507
+#: inferior.c:505
 msgid "Requires argument (inferior id(s) to detach)"
 msgstr ""
 
-#: inferior.c:517 inferior.c:554 inferior.c:589 inferior.c:642 inferior.c:792
+#: inferior.c:515 inferior.c:552 inferior.c:587 inferior.c:640 inferior.c:790
 #, possible-c-format
 msgid "Inferior ID %d not known."
 msgstr ""
 
-#: inferior.c:523 inferior.c:560
+#: inferior.c:521 inferior.c:558
 #, possible-c-format
 msgid "Inferior ID %d is not running."
 msgstr ""
 
-#: inferior.c:530 inferior.c:567
+#: inferior.c:528 inferior.c:565
 #, possible-c-format
 msgid "Inferior ID %d has no threads."
 msgstr ""
 
-#: inferior.c:544
+#: inferior.c:542
 msgid "Requires argument (inferior id(s) to kill)"
 msgstr ""
 
-#: inferior.c:597 mi/mi-main.c:412
+#: inferior.c:595 mi/mi-main.c:412
 msgid "Inferior has no threads."
 msgstr ""
 
-#: inferior.c:632
+#: inferior.c:630
 msgid "Requires an argument (inferior id(s) to remove)"
 msgstr ""
 
-#: inferior.c:648
+#: inferior.c:646
 #, possible-c-format
 msgid "Can not remove current inferior %d."
 msgstr ""
 
-#: inferior.c:654
+#: inferior.c:652
 #, possible-c-format
 msgid "Can not remove active inferior %d."
 msgstr ""
 
-#: inferior.c:714 inferior.c:773
+#: inferior.c:712 inferior.c:771
 msgid "No argument to -copies"
 msgstr ""
 
-#: inferior.c:721
+#: inferior.c:719
 msgid "No argument to -exec"
 msgstr ""
 
-#: inferior.c:726 inferior.c:796 mi/mi-main.c:1611
+#: inferior.c:724 inferior.c:794 mi/mi-main.c:1611
 msgid "Invalid argument"
 msgstr ""
 
-#: inferior.c:736
+#: inferior.c:734
 #, possible-c-format
 msgid "Added inferior %d\n"
 msgstr ""
 
-#: inferior.c:777
+#: inferior.c:775
 msgid "Invalid copies number"
 msgstr ""
 
-#: inferior.c:829
+#: inferior.c:827
 #, possible-c-format
 msgid "Added inferior %d.\n"
 msgstr ""
 
-#: inferior.c:842
+#: inferior.c:840
 #, possible-c-format
 msgid "Printing of inferior events is %s.\n"
 msgstr ""
 
-#: inferior.c:886
+#: inferior.c:884
 msgid ""
 "Print a list of inferiors being managed.\n"
 "Usage: info inferiors [ID]...\n"
@@ -16551,7 +16561,7 @@ msgid ""
 "By default all inferiors are displayed."
 msgstr ""
 
-#: inferior.c:891
+#: inferior.c:889
 msgid ""
 "Add a new inferior.\n"
 "Usage: add-inferior [-copies N] [-exec FILENAME]\n"
@@ -16560,13 +16570,13 @@ msgid ""
 "as main program."
 msgstr ""
 
-#: inferior.c:899
+#: inferior.c:897
 msgid ""
 "Remove inferior ID (or list of IDs).\n"
 "Usage: remove-inferiors ID..."
 msgstr ""
 
-#: inferior.c:903
+#: inferior.c:901
 msgid ""
 "Clone inferior ID.\n"
 "Usage: clone-inferior [-copies N] [ID]\n"
@@ -16576,30 +16586,30 @@ msgid ""
 "that is cloned."
 msgstr ""
 
-#: inferior.c:911
+#: inferior.c:909
 msgid ""
 "Detach from inferior ID (or list of IDS).\n"
 "Usage; detach inferiors ID..."
 msgstr ""
 
-#: inferior.c:916
+#: inferior.c:914
 msgid ""
 "Kill inferior ID (or list of IDs).\n"
 "Usage: kill inferiors ID..."
 msgstr ""
 
-#: inferior.c:921
+#: inferior.c:919
 msgid ""
 "Use this command to switch between inferiors.\n"
 "Usage: inferior ID\n"
 "The new inferior ID must be currently known."
 msgstr ""
 
-#: inferior.c:928
+#: inferior.c:926
 msgid "Set printing of inferior events (such as inferior start and exit)."
 msgstr ""
 
-#: inferior.c:929
+#: inferior.c:927
 msgid "Show printing of inferior events (such as inferior start and exit)."
 msgstr ""
 
@@ -18459,37 +18469,37 @@ msgstr ""
 msgid "No symbol table is loaded.  Use the \"symbol-file\" command."
 msgstr ""
 
-#: m2-exp.y:656
+#: m2-exp.y:655
 msgid "Floating point numbers must be base 10."
 msgstr ""
 
-#: m2-exp.y:658
+#: m2-exp.y:657
 #, possible-c-format
 msgid "Invalid digit '%c' in number."
 msgstr ""
 
-#: m2-exp.y:666
+#: m2-exp.y:665
 #, possible-c-format
 msgid "Invalid digit '%c' in octal number."
 msgstr ""
 
-#: m2-exp.y:707
+#: m2-exp.y:706
 msgid "Overflow on numeric constant -- number too large."
 msgstr ""
 
-#: m2-exp.y:872
+#: m2-exp.y:871
 msgid "Unterminated string or character constant."
 msgstr ""
 
-#: m2-exp.y:1004
+#: m2-exp.y:1003
 msgid "internal:  Undefined class in m2lex()"
 msgstr ""
 
-#: m2-exp.y:1008
+#: m2-exp.y:1007
 msgid "internal:  Unforseen case in m2lex()"
 msgstr ""
 
-#: m2-exp.y:1011
+#: m2-exp.y:1010
 msgid "unhandled token in m2lex()"
 msgstr ""
 
@@ -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 ""
@@ -21470,7 +21484,7 @@ msgstr ""
 msgid "Regexp is too long: %s"
 msgstr ""
 
-#: objc-lang.c:604 objc-lang.c:758 thread.c:1913
+#: objc-lang.c:604 objc-lang.c:758 thread.c:1917
 #, possible-c-format
 msgid "Invalid regexp (%s): %s"
 msgstr ""
@@ -22727,43 +22741,43 @@ msgstr ""
 msgid "  Number of psym tables (not yet expanded): %d\n"
 msgstr ""
 
-#: psymtab.c:1813 symmisc.c:413
+#: psymtab.c:1812 symmisc.c:413
 msgid "Missing pc value"
 msgstr ""
 
-#: psymtab.c:1819 symmisc.c:419
+#: psymtab.c:1818 symmisc.c:419
 msgid "Missing source file"
 msgstr ""
 
-#: psymtab.c:1825 symmisc.c:425 symmisc.c:698
+#: psymtab.c:1824 symmisc.c:425 symmisc.c:698
 msgid "Missing objfile name"
 msgstr ""
 
 #. Future proofing: Don't allow OUTFILE to begin with "-".
-#: psymtab.c:1837 symmisc.c:437 symmisc.c:710
+#: psymtab.c:1836 symmisc.c:437 symmisc.c:710
 #, possible-c-format
 msgid "Unknown option: %s"
 msgstr ""
 
-#: psymtab.c:1845 symmisc.c:445
+#: psymtab.c:1844 symmisc.c:445
 msgid "Must specify at most one of -pc and -source"
 msgstr ""
 
-#: psymtab.c:1852 symmisc.c:452 symmisc.c:722
+#: psymtab.c:1851 symmisc.c:452 symmisc.c:722
 msgid "Junk at end of command"
 msgstr ""
 
-#: psymtab.c:1944
+#: psymtab.c:1943
 #, possible-c-format
 msgid "No partial symtab for address: %s"
 msgstr ""
 
-#: psymtab.c:1946
+#: psymtab.c:1945
 #, possible-c-format
 msgid "No partial symtab for source file: %s"
 msgstr ""
 
-#: psymtab.c:2164
+#: psymtab.c:2163
 msgid ""
 "Print dump of current partial symbol definitions.\n"
 "Usage: mt print psymbols [-objfile OBJFILE] [-pc ADDRESS] [--] [OUTFILE]\n"
@@ -22775,14 +22789,14 @@ msgid ""
 "If OBJFILE is provided, dump only that file's minimal symbols."
 msgstr ""
 
-#: psymtab.c:2175
+#: psymtab.c:2174
 msgid ""
 "List the partial symbol tables for all object files.\n"
 "This does not include information about individual partial symbols,\n"
 "just the symbol table structures themselves."
 msgstr ""
 
-#: psymtab.c:2182
+#: psymtab.c:2181
 msgid "Check consistency of currently expanded psymtabs versus symtabs."
 msgstr ""
 
@@ -23517,15 +23531,15 @@ msgstr ""
 msgid "Line keyword should be an integer or a string. "
 msgstr ""
 
-#: python/py-breakpoint.c:854
+#: python/py-breakpoint.c:857
 msgid "Cannot understand watchpoint access type."
 msgstr ""
 
-#: python/py-breakpoint.c:858
+#: python/py-breakpoint.c:861
 msgid "Do not understand breakpoint type to set."
 msgstr ""
 
-#: python/py-breakpoint.c:1036
+#: python/py-breakpoint.c:1039
 msgid "Error while creating breakpoint from GDB."
 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 ""
 
@@ -26031,7 +26045,7 @@ msgstr ""
 msgid "No bookmark #%d."
 msgstr ""
 
-#: reverse.c:240 thread.c:1909
+#: reverse.c:240 thread.c:1913
 msgid "Command requires an argument."
 msgstr ""
 
@@ -28222,15 +28236,15 @@ msgid "Show printing of non-scalar frame
 msgstr ""
 
 #. show_cmd_cb
-#: stack.c:165 stack.c:3613
+#: stack.c:165 stack.c:3615
 msgid "Set whether to print frame arguments in raw form."
 msgstr ""
 
-#: stack.c:166 stack.c:3614
+#: stack.c:166 stack.c:3616
 msgid "Show whether to print frame arguments in raw form."
 msgstr ""
 
-#: stack.c:167 stack.c:3615
+#: stack.c:167 stack.c:3617
 msgid ""
 "If set, frame arguments are printed in raw form, bypassing any\n"
 "pretty-printers for that value."
@@ -28405,7 +28419,11 @@ msgstr ""
 msgid "Invalid COUNT argument."
 msgstr ""
 
-#: stack.c:3345
+#: stack.c:3285
+msgid "Please specify a command to apply on all frames"
+msgstr ""
+
+#: stack.c:3347
 msgid ""
 "Make selected stack frame return to its caller.\n"
 "Control remains in the debugger, but when you continue\n"
@@ -28413,31 +28431,31 @@ msgid ""
 "If an argument is given, it is an expression for the value to return."
 msgstr ""
 
-#: stack.c:3351
+#: stack.c:3353
 msgid ""
 "Select and print stack frame that called this one.\n"
 "An argument says how many frames up to go."
 msgstr ""
 
-#: stack.c:3354
+#: stack.c:3356
 msgid ""
 "Same as the `up' command, but does not print anything.\n"
 "This is useful in command scripts."
 msgstr ""
 
-#: stack.c:3358
+#: stack.c:3360
 msgid ""
 "Select and print stack frame called by this one.\n"
 "An argument says how many frames down to go."
 msgstr ""
 
-#: stack.c:3363
+#: stack.c:3365
 msgid ""
 "Same as the `down' command, but does not print anything.\n"
 "This is useful in command scripts."
 msgstr ""
 
-#: stack.c:3368 stack.c:3434
+#: stack.c:3370 stack.c:3436
 msgid ""
 "Select and print a stack frame.\n"
 "With no argument, print the selected stack frame.  (See also \"info frame"
@@ -28445,7 +28463,7 @@ msgid ""
 "A single numerical argument specifies the frame to select."
 msgstr ""
 
-#: stack.c:3388
+#: stack.c:3390
 msgid ""
 "Apply a command to a number of frames.\n"
 "Usage: frame apply COUNT [OPTION]... COMMAND\n"
@@ -28453,14 +28471,14 @@ msgid ""
 "frames.\n"
 msgstr ""
 
-#: stack.c:3401
+#: stack.c:3403
 msgid ""
 "Apply a command to all frames.\n"
 "\n"
 "Usage: frame apply all [OPTION]... COMMAND\n"
 msgstr ""
 
-#: stack.c:3413
+#: stack.c:3415
 msgid ""
 "Apply a command to a list of frames.\n"
 "\n"
@@ -28468,7 +28486,7 @@ msgid ""
 "LEVEL is a space-separated list of levels of frames to apply COMMAND on.\n"
 msgstr ""
 
-#: stack.c:3426
+#: stack.c:3428
 msgid ""
 "Apply a command to all frames (ignoring errors and empty output).\n"
 "Usage: faas [OPTION]... COMMAND\n"
@@ -28476,14 +28494,14 @@ msgid ""
 "See \"help frame apply all\" for available options."
 msgstr ""
 
-#: stack.c:3442
+#: stack.c:3444
 msgid ""
 "Select and print a stack frame by stack address.\n"
 "\n"
 "Usage: frame address STACK-ADDRESS"
 msgstr ""
 
-#: stack.c:3449
+#: stack.c:3451
 msgid ""
 "View a stack frame that might be outside the current backtrace.\n"
 "\n"
@@ -28491,7 +28509,7 @@ msgid ""
 "       frame view STACK-ADDRESS PC-ADDRESS"
 msgstr ""
 
-#: stack.c:3457
+#: stack.c:3459
 msgid ""
 "Select and print a stack frame by function name.\n"
 "\n"
@@ -28500,27 +28518,27 @@ msgid ""
 "The innermost frame that visited function NAME is selected."
 msgstr ""
 
-#: stack.c:3468
+#: stack.c:3470
 msgid ""
 "Select and print a stack frame by level.\n"
 "\n"
 "Usage: frame level LEVEL"
 msgstr ""
 
-#: stack.c:3475
+#: stack.c:3477
 msgid ""
 "Select a stack frame without printing anything.\n"
 "A single numerical argument specifies the frame to select."
 msgstr ""
 
-#: stack.c:3482
+#: stack.c:3484
 msgid ""
 "Select a stack frame by stack address.\n"
 "\n"
 "Usage: select-frame address STACK-ADDRESS"
 msgstr ""
 
-#: stack.c:3491
+#: stack.c:3493
 msgid ""
 "Select a stack frame that might be outside the current backtrace.\n"
 "\n"
@@ -28528,21 +28546,21 @@ msgid ""
 "       select-frame view STACK-ADDRESS PC-ADDRESS"
 msgstr ""
 
-#: stack.c:3500
+#: stack.c:3502
 msgid ""
 "Select a stack frame by function name.\n"
 "\n"
 "Usage: select-frame function NAME"
 msgstr ""
 
-#: stack.c:3509
+#: stack.c:3511
 msgid ""
 "Select a stack frame by level.\n"
 "\n"
 "Usage: select-frame level LEVEL"
 msgstr ""
 
-#: stack.c:3520
+#: stack.c:3522
 msgid ""
 "Print backtrace of all stack frames, or innermost COUNT frames.\n"
 "Usage: backtrace [OPTION]... [QUALIFIER]... [COUNT | -COUNT]\n"
@@ -28559,11 +28577,11 @@ msgid ""
 "With a negative COUNT, print outermost -COUNT frames."
 msgstr ""
 
-#: stack.c:3545
+#: stack.c:3547
 msgid "Backtrace of the stack, or innermost COUNT frames."
 msgstr ""
 
-#: stack.c:3549
+#: stack.c:3551
 msgid ""
 "All about the selected stack frame.\n"
 "With no arguments, displays information about the currently selected stack\n"
@@ -28571,14 +28589,14 @@ msgid ""
 "the information is then printed about the specified frame."
 msgstr ""
 
-#: stack.c:3557
+#: stack.c:3559
 msgid ""
 "Print information about a stack frame selected by stack address.\n"
 "\n"
 "Usage: info frame address STACK-ADDRESS"
 msgstr ""
 
-#: stack.c:3564
+#: stack.c:3566
 msgid ""
 "Print information about a stack frame outside the current backtrace.\n"
 "\n"
@@ -28586,59 +28604,59 @@ msgid ""
 "       info frame view STACK-ADDRESS PC-ADDRESS"
 msgstr ""
 
-#: stack.c:3572
+#: stack.c:3574
 msgid ""
 "Print information about a stack frame selected by function name.\n"
 "\n"
 "Usage: info frame function NAME"
 msgstr ""
 
-#: stack.c:3580
+#: stack.c:3582
 msgid ""
 "Print information about a stack frame selected by level.\n"
 "\n"
 "Usage: info frame level LEVEL"
 msgstr ""
 
-#: stack.c:3587
+#: stack.c:3589
 msgid ""
 "All local variables of current stack frame or those matching REGEXPs.\n"
 "Usage: info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the local variables of the current stack frame.\n"
 msgstr ""
 
-#: stack.c:3591
+#: stack.c:3593
 msgid "local variables"
 msgstr ""
 
-#: stack.c:3595
+#: stack.c:3597
 msgid ""
 "All argument variables of current stack frame or those matching REGEXPs.\n"
 "Usage: info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the argument variables of the current stack frame.\n"
 msgstr ""
 
-#: stack.c:3599
+#: stack.c:3601
 msgid "argument variables"
 msgstr ""
 
-#: stack.c:3604
+#: stack.c:3606
 msgid ""
 "Select the stack frame that contains NAME.\n"
 "Usage: func NAME"
 msgstr ""
 
-#: stack.c:3623
+#: stack.c:3625
 msgid ""
 "Set whether to disassemble next source line or insn when execution stops."
 msgstr ""
 
-#: stack.c:3625
+#: stack.c:3627
 msgid ""
 "Show whether to disassemble next source line or insn when execution stops."
 msgstr ""
 
-#: stack.c:3627
+#: stack.c:3629
 msgid ""
 "If ON, GDB will display disassembly of the next source line, in addition\n"
 "to displaying the source line itself.  If the next source line cannot\n"
@@ -29496,31 +29514,31 @@ msgid ""
 "With an argument REGEXP, only expand the symbol tables with matching names."
 msgstr ""
 
-#: symtab.c:1304
+#: symtab.c:1327
 #, possible-c-format
 msgid "Symbol cache size is too large, max is %u."
 msgstr ""
 
-#: symtab.c:1546
+#: symtab.c:1559
 #, possible-c-format
 msgid ""
 "Symbol cache for pspace %d\n"
 "%s:\n"
 msgstr ""
 
-#: symtab.c:1617
+#: symtab.c:1630
 #, possible-c-format
 msgid ""
 "Symbol cache statistics for pspace %d\n"
 "%s:\n"
 msgstr ""
 
-#: symtab.c:2089
+#: symtab.c:2102
 #, possible-c-format
 msgid "Internal error: `%s' is not an aggregate"
 msgstr ""
 
-#: symtab.c:2360
+#: symtab.c:2373
 #, possible-c-format
 msgid ""
 "Internal: %s symbol `%s' found in %s psymtab but not in symtab.\n"
@@ -29528,193 +29546,193 @@ msgid ""
 "\t (if a template, try specifying an instantiation: %s<type>)."
 msgstr ""
 
-#: symtab.c:4037
+#: symtab.c:4050
 msgid "mismatched quoting on brackets, try 'operator\\[\\]'"
 msgstr ""
 
-#: symtab.c:4045
+#: symtab.c:4058
 msgid "nothing is allowed between '[' and ']'"
 msgstr ""
 
-#: symtab.c:4101
+#: symtab.c:4114
 msgid "`operator ()' must be specified without whitespace in `()'"
 msgstr ""
 
-#: symtab.c:4107
+#: symtab.c:4120
 msgid "`operator ?:' must be specified without whitespace in `?:'"
 msgstr ""
 
-#: symtab.c:4113
+#: symtab.c:4126
 msgid "`operator []' must be specified without whitespace in `[]'"
 msgstr ""
 
-#: symtab.c:4118
+#: symtab.c:4131
 #, possible-c-format
 msgid "`operator %s' not supported"
 msgstr ""
 
-#: symtab.c:4227
+#: symtab.c:4240
 msgid "Show only the files having a dirname matching REGEXP."
 msgstr ""
 
-#: symtab.c:4233
+#: symtab.c:4246
 msgid "Show only the files having a basename matching REGEXP."
 msgstr ""
 
-#: symtab.c:4260
+#: symtab.c:4273
 #, possible-c-format
 msgid "(dirname matching regular expression \"%s\")"
 msgstr ""
 
-#: symtab.c:4263
+#: symtab.c:4276
 #, possible-c-format
 msgid "(basename matching regular expression \"%s\")"
 msgstr ""
 
-#: symtab.c:4266
+#: symtab.c:4279
 #, possible-c-format
 msgid "(filename matching regular expression \"%s\")"
 msgstr ""
 
-#: symtab.c:4309
+#: symtab.c:4322
 msgid "You cannot give both -basename and -dirname to 'info sources'."
 msgstr ""
 
-#: symtab.c:4312
+#: symtab.c:4325
 msgid "Missing REGEXP for 'info sources'."
 msgstr ""
 
-#: symtab.c:4327
+#: symtab.c:4340
 msgid "Source files for which symbols have been read in:\n"
 msgstr ""
 
-#: symtab.c:4344
+#: symtab.c:4357
 msgid "Source files for which symbols will be read in on demand:\n"
 msgstr ""
 
-#: symtab.c:4796
+#: symtab.c:4854
 #, possible-c-format
 msgid ""
 "\n"
 "File %ps:\n"
 msgstr ""
 
-#: symtab.c:4832
+#: symtab.c:4890
 #, possible-c-format
 msgid "%ps  %ps\n"
 msgstr ""
 
-#: symtab.c:4868
+#: symtab.c:4926
 #, possible-c-format
 msgid ""
 "All %ss matching regular expression \"%s\" with type matching regular "
 "expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4872
+#: symtab.c:4930
 #, possible-c-format
 msgid "All %ss matching regular expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4879
+#: symtab.c:4937
 #, possible-c-format
 msgid "All defined %ss with type matching regular expression \"%s\" :\n"
 msgstr ""
 
-#: symtab.c:4883
+#: symtab.c:4941
 #, possible-c-format
 msgid "All defined %ss:\n"
 msgstr ""
 
-#: symtab.c:4896
+#: symtab.c:4954
 msgid ""
 "\n"
 "Non-debugging symbols:\n"
 msgstr ""
 
-#: symtab.c:6408
+#: symtab.c:6466
 msgid "All variables in all modules:"
 msgstr ""
 
-#: symtab.c:6409
+#: symtab.c:6467
 msgid "All functions in all modules:"
 msgstr ""
 
-#: symtab.c:6413
+#: symtab.c:6471
 #, possible-c-format
 msgid "All variables matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6415
+#: symtab.c:6473
 #, possible-c-format
 msgid "All functions matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6424
+#: symtab.c:6482
 #, possible-c-format
 msgid ""
 "All variables with type matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6426
+#: symtab.c:6484
 #, possible-c-format
 msgid ""
 "All functions with type matching regular expression \"%s\" in all modules:"
 msgstr ""
 
-#: symtab.c:6432
+#: 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:6435
+#: 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:6448
+#: symtab.c:6506
 #, possible-c-format
 msgid "All variables in all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6450
+#: symtab.c:6508
 #, possible-c-format
 msgid "All functions in all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6456
+#: symtab.c:6514
 #, possible-c-format
 msgid ""
 "All variables matching regular expression \"%s\",\n"
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6459
+#: symtab.c:6517
 #, possible-c-format
 msgid ""
 "All functions matching regular expression \"%s\",\n"
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6469
+#: 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:6472
+#: 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:6479
+#: symtab.c:6537
 #, possible-c-format
 msgid ""
 "All variables matching regular expression \"%s\",\n"
@@ -29722,7 +29740,7 @@ msgid ""
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6483
+#: symtab.c:6541
 #, possible-c-format
 msgid ""
 "All functions matching regular expression \"%s\",\n"
@@ -29730,41 +29748,41 @@ msgid ""
 "\tin all modules matching regular expression \"%s\":"
 msgstr ""
 
-#: symtab.c:6522
+#: symtab.c:6580
 #, possible-c-format
 msgid "Module \"%s\":\n"
 msgstr ""
 
-#: symtab.c:6644
+#: 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:6648 symtab.c:6658
+#: symtab.c:6706 symtab.c:6716
 msgid "global and static variables"
 msgstr ""
 
-#: symtab.c:6654
+#: 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:6664
+#: 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:6668
+#: symtab.c:6726
 msgid "functions"
 msgstr ""
 
-#: symtab.c:6672
+#: symtab.c:6730
 msgid ""
 "All type names, or those matching REGEXP.\n"
 "Usage: info types [-q] [REGEXP]\n"
@@ -29772,7 +29790,7 @@ msgid ""
 "REGEXP is given.  The optional flag -q disables printing of headers."
 msgstr ""
 
-#: symtab.c:6682
+#: symtab.c:6740
 msgid ""
 "All source files in the program or those matching REGEXP.\n"
 "Usage: info sources [OPTION]... [REGEXP]\n"
@@ -29782,15 +29800,15 @@ msgid ""
 "%OPTIONS%"
 msgstr ""
 
-#: symtab.c:6695
+#: symtab.c:6753
 msgid "All module names, or those matching REGEXP."
 msgstr ""
 
-#: symtab.c:6698
+#: symtab.c:6756
 msgid "Print information about modules."
 msgstr ""
 
-#: symtab.c:6703
+#: symtab.c:6761
 msgid ""
 "Display functions arranged by modules.\n"
 "Usage: info module functions [-q] [-m MODREGEXP] [-t TYPEREGEXP] [REGEXP]\n"
@@ -29806,7 +29824,7 @@ msgid ""
 "The -q flag suppresses printing some header information."
 msgstr ""
 
-#: symtab.c:6720
+#: symtab.c:6778
 msgid ""
 "Display variables arranged by modules.\n"
 "Usage: info module variables [-q] [-m MODREGEXP] [-t TYPEREGEXP] [REGEXP]\n"
@@ -29822,32 +29840,32 @@ msgid ""
 "The -q flag suppresses printing some header information."
 msgstr ""
 
-#: symtab.c:6738
+#: symtab.c:6796
 msgid "Set a breakpoint for all functions matching REGEXP."
 msgstr ""
 
-#: symtab.c:6742
+#: symtab.c:6800
 msgid "Set how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6743
+#: symtab.c:6801
 msgid "Show how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6744
+#: symtab.c:6802
 msgid ""
 "Valid values are \"ask\", \"all\", \"cancel\", and the default is \"all\"."
 msgstr ""
 
-#: symtab.c:6749
+#: symtab.c:6807
 msgid "Set whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6750
+#: symtab.c:6808
 msgid "Show whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6751
+#: 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 +29876,60 @@ msgid ""
 "one base name, and gdb will do file name comparisons more efficiently."
 msgstr ""
 
-#: symtab.c:6763
+#: symtab.c:6821
 msgid "Set debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6764
+#: symtab.c:6822
 msgid "Show debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6764
+#: 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:6773
+#: symtab.c:6831
 msgid "Set debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6774
+#: symtab.c:6832
 msgid "Show debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6775
+#: symtab.c:6833
 msgid "When enabled (non-zero), symbol lookups are logged."
 msgstr ""
 
-#: symtab.c:6782
+#: symtab.c:6840
 msgid "Set the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6783
+#: symtab.c:6841
 msgid "Show the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6783
+#: symtab.c:6841
 msgid ""
 "The size of the symbol cache.\n"
 "If zero then the symbol cache is disabled."
 msgstr ""
 
-#: symtab.c:6791
+#: symtab.c:6849
 msgid "Dump the symbol cache for each program space."
 msgstr ""
 
-#: symtab.c:6796
+#: symtab.c:6854
 msgid "Print symbol cache statistics for each program space."
 msgstr ""
 
-#: symtab.c:6801
+#: 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 ""
 
@@ -30591,56 +30609,64 @@ msgstr ""
 msgid "Thread %s has terminated."
 msgstr ""
 
-#: thread.c:1843 thread.c:1891
+#: thread.c:1822
+msgid "Please specify a command to apply on all threads"
+msgstr ""
+
+#: thread.c:1833
+msgid "Please specify a command to apply on all frames of all threads"
+msgstr ""
+
+#: thread.c:1847 thread.c:1895
 msgid "No thread selected"
 msgstr ""
 
-#: thread.c:1850
+#: thread.c:1854
 #, possible-c-format
 msgid "[Current thread is %s (%s) (exited)]\n"
 msgstr ""
 
-#: thread.c:1854
+#: thread.c:1858
 #, possible-c-format
 msgid "[Current thread is %s (%s)]\n"
 msgstr ""
 
-#: thread.c:1920
+#: thread.c:1924
 #, possible-c-format
 msgid "Thread %s has name '%s'\n"
 msgstr ""
 
-#: thread.c:1928
+#: thread.c:1932
 #, possible-c-format
 msgid "Thread %s has target name '%s'\n"
 msgstr ""
 
-#: thread.c:1936
+#: thread.c:1940
 #, possible-c-format
 msgid "Thread %s has target id '%s'\n"
 msgstr ""
 
-#: thread.c:1944
+#: thread.c:1948
 #, possible-c-format
 msgid "Thread %s has extra info '%s'\n"
 msgstr ""
 
-#: thread.c:1950
+#: thread.c:1954
 #, possible-c-format
 msgid "No threads match '%s'\n"
 msgstr ""
 
-#: thread.c:1960
+#: thread.c:1964
 #, possible-c-format
 msgid "Printing of thread events is %s.\n"
 msgstr ""
 
-#: thread.c:1970
+#: thread.c:1974
 #, possible-c-format
 msgid "Thread ID %s has terminated."
 msgstr ""
 
-#: thread.c:2123
+#: thread.c:2127
 msgid ""
 "Display currently known threads.\n"
 "Usage: info threads [OPTION]... [ID]...\n"
@@ -30651,27 +30677,27 @@ msgid ""
 "Otherwise, all threads are displayed."
 msgstr ""
 
-#: thread.c:2136
+#: thread.c:2140
 msgid ""
 "Use this command to switch between threads.\n"
 "The new thread ID must be currently known."
 msgstr ""
 
-#: thread.c:2153
+#: thread.c:2157
 msgid ""
 "Apply a command to a list of threads.\n"
 "Usage: thread apply ID... [OPTION]... COMMAND\n"
 "ID is a space-separated list of IDs of threads to apply COMMAND on.\n"
 msgstr ""
 
-#: thread.c:2169
+#: thread.c:2173
 msgid ""
 "Apply a command to all threads.\n"
 "\n"
 "Usage: thread apply all [OPTION]... COMMAND\n"
 msgstr ""
 
-#: thread.c:2181
+#: thread.c:2185
 msgid ""
 "Apply a command to all threads (ignoring errors and empty output).\n"
 "Usage: taas [OPTION]... COMMAND\n"
@@ -30679,7 +30705,7 @@ msgid ""
 "See \"help thread apply all\" for available options."
 msgstr ""
 
-#: thread.c:2188
+#: thread.c:2192
 msgid ""
 "Apply a command to all frames of all threads (ignoring errors and empty "
 "output).\n"
@@ -30689,25 +30715,25 @@ msgid ""
 "See \"help frame apply all\" for available options."
 msgstr ""
 
-#: thread.c:2196
+#: thread.c:2200
 msgid ""
 "Set the current thread's name.\n"
 "Usage: thread name [NAME]\n"
 "If NAME is not given, then any existing name is removed."
 msgstr ""
 
-#: thread.c:2200
+#: thread.c:2204
 msgid ""
 "Find threads that match a regular expression.\n"
 "Usage: thread find REGEXP\n"
 "Will display thread ids whose name, target ID, or extra info matches REGEXP."
 msgstr ""
 
-#: thread.c:2209
+#: thread.c:2213
 msgid "Set printing of thread events (such as thread start and exit)."
 msgstr ""
 
-#: thread.c:2210
+#: thread.c:2214
 msgid "Show printing of thread events (such as thread start and exit)."
 msgstr ""
 
@@ -33423,6 +33449,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.20191203/gdb/printcmd.c ./gdb/printcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/printcmd.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/printcmd.c	2019-12-10 01:49:26.000000000 +0000
@@ -2326,7 +2326,7 @@ printf_wide_c_string (struct ui_file *st
   const gdb_byte *str;
   size_t len;
   struct gdbarch *gdbarch = get_type_arch (value_type (value));
-  struct type *wctype = lookup_typename (current_language, gdbarch,
+  struct type *wctype = lookup_typename (current_language,
 					 "wchar_t", NULL, 0);
   int wcwidth = TYPE_LENGTH (wctype);
 
@@ -2601,7 +2601,7 @@ ui_printf (const char *arg, struct ui_fi
 	    {
 	      struct gdbarch *gdbarch
 		= get_type_arch (value_type (val_args[i]));
-	      struct type *wctype = lookup_typename (current_language, gdbarch,
+	      struct type *wctype = lookup_typename (current_language,
 						     "wchar_t", NULL, 0);
 	      struct type *valtype;
 	      const gdb_byte *bytes;
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.20191203/gdb/psymtab.c ./gdb/psymtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/psymtab.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/psymtab.c	2019-12-10 01:49:26.000000000 +0000
@@ -1530,14 +1530,13 @@ psymbol_hash (const void *addr, int leng
   unsigned int domain = psymbol->domain;
   unsigned int theclass = psymbol->aclass;
 
-  h = hash_continue (&psymbol->ginfo.value, sizeof (psymbol->ginfo.value), h);
-  h = hash_continue (&lang, sizeof (unsigned int), h);
-  h = hash_continue (&domain, sizeof (unsigned int), h);
-  h = hash_continue (&theclass, sizeof (unsigned int), h);
+  h = fast_hash (&psymbol->ginfo.value, sizeof (psymbol->ginfo.value), h);
+  h = fast_hash (&lang, sizeof (unsigned int), h);
+  h = fast_hash (&domain, sizeof (unsigned int), h);
+  h = fast_hash (&theclass, sizeof (unsigned int), h);
   /* Note that psymbol names are interned via symbol_set_names, so
      there's no need to hash the contents of the name here.  */
-  h = hash_continue (&psymbol->ginfo.name,
-		     sizeof (psymbol->ginfo.name), h);
+  h = fast_hash (&psymbol->ginfo.name, sizeof (psymbol->ginfo.name), h);
 
   return 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.20191203/gdb/psymtab.h ./gdb/psymtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/psymtab.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/psymtab.h	2019-12-10 01:49:26.000000000 +0000
@@ -120,7 +120,7 @@ public:
   /* A byte cache where we can stash arbitrary "chunks" of bytes that
      will not change.  */
 
-  struct bcache psymbol_cache;
+  gdb::bcache psymbol_cache;
 
   /* Vectors of all partial symbols read in from file.  The actual data
      is stored in the objfile_obstack.  */
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.20191203/gdb/p-valprint.c ./gdb/p-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/p-valprint.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/p-valprint.c	2019-12-10 01:49:26.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.20191203/gdb/python/py-breakpoint.c ./gdb/python/py-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/python/py-breakpoint.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/python/py-breakpoint.c	2019-12-10 01:49:26.000000000 +0000
@@ -828,13 +828,16 @@ bppy_init (PyObject *self, PyObject *arg
 		location = new_explicit_location (&explicit_loc);
 	      }
 
+	    const struct breakpoint_ops *ops =
+	      breakpoint_ops_for_event_location (location.get (), false);
+
 	    create_breakpoint (python_gdbarch,
 			       location.get (), NULL, -1, NULL,
 			       0,
 			       temporary_bp, bp_breakpoint,
 			       0,
 			       AUTO_BOOLEAN_TRUE,
-			       &bkpt_breakpoint_ops,
+			       ops,
 			       0, 1, internal_bp, 0);
 	    break;
 	  }
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.20191203/gdb/python/py-type.c ./gdb/python/py-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/python/py-type.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/python/py-type.c	2019-12-10 01:49:26.000000000 +0000
@@ -758,7 +758,7 @@ typy_lookup_typename (const char *type_n
       else if (startswith (type_name, "enum "))
 	type = lookup_enum (type_name + 5, NULL);
       else
-	type = lookup_typename (python_language, python_gdbarch,
+	type = lookup_typename (python_language,
 				type_name, block, 0);
     }
   catch (const gdb_exception &except)
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.20191203/gdb/python/py-xmethods.c ./gdb/python/py-xmethods.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/python/py-xmethods.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/python/py-xmethods.c	2019-12-10 01:49:26.000000000 +0000
@@ -580,7 +580,7 @@ python_xmethod_worker::invoke (struct va
     }
   else
     {
-      res = allocate_value (lookup_typename (python_language, python_gdbarch,
+      res = allocate_value (lookup_typename (python_language,
 					     "void", NULL, 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.20191203/gdb/regcache.c ./gdb/regcache.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/regcache.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/regcache.c	2019-12-10 01:49:26.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.20191203/gdb/rust-exp.c ./gdb/rust-exp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/rust-exp.c	2019-12-03 01:53:21.000000000 +0000
+++ ./gdb/rust-exp.c	2019-12-10 01:53:03.000000000 +0000
@@ -4241,7 +4241,7 @@ rust_parser::rust_lookup_type (const cha
       return SYMBOL_TYPE (result.symbol);
     }
 
-  type = lookup_typename (language (), arch (), name, NULL, 1);
+  type = lookup_typename (language (), name, NULL, 1);
   if (type != NULL)
     return 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.20191203/gdb/rust-exp.y ./gdb/rust-exp.y
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/rust-exp.y	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/rust-exp.y	2019-12-10 01:49:26.000000000 +0000
@@ -2024,7 +2024,7 @@ rust_parser::rust_lookup_type (const cha
       return SYMBOL_TYPE (result.symbol);
     }
 
-  type = lookup_typename (language (), arch (), name, NULL, 1);
+  type = lookup_typename (language (), name, NULL, 1);
   if (type != NULL)
     return 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.20191203/gdb/stabsread.c ./gdb/stabsread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/stabsread.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/stabsread.c	2019-12-10 01:49:26.000000000 +0000
@@ -4778,7 +4778,7 @@ find_name_end (const char *name)
 int
 hashname (const char *name)
 {
-  return hash (name, strlen (name)) % HASHSIZE;
+  return fast_hash (name, strlen (name)) % HASHSIZE;
 }
 
 /* Initializer for this module.  */
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.20191203/gdb/stack.c ./gdb/stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/stack.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/stack.c	2019-12-10 01:49:26.000000000 +0000
@@ -3281,6 +3281,8 @@ frame_apply_command (const char* cmd, in
 static void
 faas_command (const char *cmd, int from_tty)
 {
+  if (cmd == NULL || *cmd == '\0')
+    error (_("Please specify a command to apply on all frames"));
   std::string expanded = std::string ("frame apply all -s ") + cmd;
   execute_command (expanded.c_str (), from_tty);
 }
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.20191203/gdb/symtab.c ./gdb/symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/symtab.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/symtab.c	2019-12-10 01:49:26.000000000 +0000
@@ -183,6 +183,16 @@ struct symbol_cache_slot
   } value;
 };
 
+/* Clear out SLOT.  */
+
+static void
+symbol_cache_clear_slot (struct symbol_cache_slot *slot)
+{
+  if (slot->state == SYMBOL_SLOT_NOT_FOUND)
+    xfree (slot->value.not_found.name);
+  slot->state = SYMBOL_SLOT_UNUSED;
+}
+
 /* Symbols don't specify global vs static block.
    So keep them in separate caches.  */
 
@@ -201,6 +211,19 @@ struct block_symbol_cache
   struct symbol_cache_slot symbols[1];
 };
 
+/* Clear all slots of BSC and free BSC.  */
+
+static void
+destroy_block_symbol_cache (struct block_symbol_cache *bsc)
+{
+  if (bsc != nullptr)
+    {
+      for (unsigned int i = 0; i < bsc->size; i++)
+	symbol_cache_clear_slot (&bsc->symbols[i]);
+      xfree (bsc);
+    }
+}
+
 /* The symbol cache.
 
    Searching for symbols in the static and global blocks over multiple objfiles
@@ -217,8 +240,8 @@ struct symbol_cache
 
   ~symbol_cache ()
   {
-    xfree (global_symbols);
-    xfree (static_symbols);
+    destroy_block_symbol_cache (global_symbols);
+    destroy_block_symbol_cache (static_symbols);
   }
 
   struct block_symbol_cache *global_symbols = nullptr;
@@ -1234,8 +1257,8 @@ resize_symbol_cache (struct symbol_cache
 	  && new_size == 0))
     return;
 
-  xfree (cache->global_symbols);
-  xfree (cache->static_symbols);
+  destroy_block_symbol_cache (cache->global_symbols);
+  destroy_block_symbol_cache (cache->static_symbols);
 
   if (new_size == 0)
     {
@@ -1373,16 +1396,6 @@ symbol_cache_lookup (struct symbol_cache
   return {};
 }
 
-/* Clear out SLOT.  */
-
-static void
-symbol_cache_clear_slot (struct symbol_cache_slot *slot)
-{
-  if (slot->state == SYMBOL_SLOT_NOT_FOUND)
-    xfree (slot->value.not_found.name);
-  slot->state = SYMBOL_SLOT_UNUSED;
-}
-
 /* Mark SYMBOL as found in SLOT.
    OBJFILE_CONTEXT is the current objfile when the lookup was done, or NULL
    if it's not needed to distinguish lookups (STATIC_BLOCK).  It is *not*
@@ -4370,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,
@@ -4432,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
 {
-  std::sort (result->begin (), result->end ());
-  result->erase (std::unique (result->begin (), result->end ()),
-		 result->end ());
+  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
+{
+  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.  */
@@ -4448,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;
@@ -4529,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.20191203/gdb/symtab.h ./gdb/symtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/symtab.h	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/symtab.h	2019-12-10 01:49:26.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.20191203/gdb/target-descriptions.c ./gdb/target-descriptions.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/target-descriptions.c	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/target-descriptions.c	2019-12-10 01:49:26.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.20191203/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/ChangeLog	2019-12-03 01:49:15.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2019-12-10 01:49:26.000000000 +0000
@@ -1,3 +1,109 @@
+2019-12-10  George Barrett  <bob@bob131.so>
+
+	Test scripted probe breakpoints.
+	* gdb.guile/scm-breakpoint.c (main): Add probe point.
+	* gdb.python/py-breakpoint.c (main): Likewise.
+	* gdb.guile/scm-breakpoint.exp (test_bkpt_probe): Add probe
+	specifier test.
+	* gdb.python/py-breakpoint.exp (test_bkpt_probe): Likewise.
+
+2019-12-09  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	* gdb.cp/rvalue-ref-overload.cc (g): New function that takes
+	an rvalue parameter.
+	* gdb.cp/rvalue-ref-overload.exp: Test calling it with an lvalue
+	parameter.
+
+2019-12-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.mi/mi-fortran-modules.exp: Add patterns to skip system
+	modules.
+
+2019-12-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/derived-type-striding.exp: KFAIL if we are using a
+	broken version of GCC.
+
+2019-12-09  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/info-modules.exp: Rewrite to make use of new
+	sym-info-cmds library.
+	* gdb.fortran/info-types.exp: Likewise.
+	* lib/sym-info-cmds.exp: New file.
+
+2019-12-08  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.dwarf2/imported-unit.exp: Fix inter-CU references.
+
+2019-12-07  Keith Seitz  <keiths@redhat.com>
+
+	* gdb.base/corefile-buildid-shlib-shr.c: New file.
+	* gdb.base/corefile-buildid-shlib.c: New file.
+	* gdb.base/corefile-buildid.c: New file.
+	* gdb.base/corefile-buildid.exp: New file.
+
+2019-12-06  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.dwarf2/varval.exp: Add decl before def test.
+
+2019-12-06  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	* gdb.cp/rvalue-ref-overload.exp: Minor cleanup.
+
+2019-12-06  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	* gdb.cp/rvalue-ref-overload.cc: Add a case that involves both
+	CV and reference conversion for overload resolution.
+	* gdb.cp/rvalue-ref-overload.exp: Test it.
+
+2019-12-06  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* gdb.threads/pthreads.exp: Test taas and tfaas without command.
+	* gdb.base/frameapply.exp: Test faas without command.
+
+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.20191203/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.20191203/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-10 01:49:26.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.20191203/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.20191203/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-10 01:49:26.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.20191203/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.20191203/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-10 01:49:26.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.20191203/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.20191203/gdb/testsuite/gdb.ada/scalar_storage.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/scalar_storage.exp	2019-12-10 01:49:26.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.20191203/gdb/testsuite/gdb.base/corefile-buildid.c ./gdb/testsuite/gdb.base/corefile-buildid.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.base/corefile-buildid.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/corefile-buildid.c	2019-12-10 01:49:26.000000000 +0000
@@ -0,0 +1,43 @@
+/* Copyright (C) 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/>.  */
+
+#ifdef TEST_SHARED
+/* A function in the shared library linked with this program.  */
+extern int shlib_function (void);
+#else
+#include <stdlib.h>
+
+static int crashfunc_global = 4321;
+
+static int
+crashfunc (void)
+{
+  abort ();
+  return crashfunc_global;
+}
+
+int
+shlib_function (void)
+{
+  return crashfunc ();
+}
+#endif
+
+int
+main (void)
+{
+  int ret = shlib_function ();
+  return ret;
+}
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.20191203/gdb/testsuite/gdb.base/corefile-buildid.exp ./gdb/testsuite/gdb.base/corefile-buildid.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.base/corefile-buildid.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/corefile-buildid.exp	2019-12-10 01:49:26.000000000 +0000
@@ -0,0 +1,271 @@
+# 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/>.
+
+# Based on break.exp, written by Rob Savoye. (rob@cygnus.com)
+# Modified to test gdb's handling of separate debug info files.
+# Modified to test gdb's handling of a debug-id retrieval.
+
+# Build-id-related tests for core files.
+
+standard_testfile
+
+# Build a non-shared executable.
+
+proc build_corefile_buildid_exec {} {
+    global testfile srcfile binfile execdir
+
+    if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} {
+	untested "failed to compile"
+	return false
+    }
+
+    # Move executable to non-default path.
+    set builddir [standard_output_file $execdir]
+    remote_exec build "rm -rf $builddir"
+    remote_exec build "mkdir $builddir"
+    remote_exec build "mv $binfile [file join $builddir [file tail $binfile]]"
+
+    return true
+}
+
+# Build a shared executable.
+
+proc build_corefile_buildid_shared {} {
+    global srcdir subdir testfile binfile srcfile sharedir
+
+    set builddir [standard_output_file $sharedir]
+
+    # Compile DSO.
+    set srcdso [file join $srcdir $subdir $testfile-shlib-shr.c]
+    set objdso [standard_output_file $testfile-shlib-shr.so]
+    if {[gdb_compile_shlib $srcdso $objdso {debug}] != ""} {
+	untested "failed to compile dso"
+	return false
+    }
+
+    # Compile shared library.
+    set srclib [file join $srcdir $subdir $testfile-shlib.c]
+    set libname lib$testfile.so
+    set objlib [standard_output_file $libname]
+    set dlopen_lib [shlib_target_file \
+			[file join $builddir [file tail $objdso]]]
+    set opts [list debug shlib_load \
+		  additional_flags=-DSHLIB_NAME=\"$dlopen_lib\"]
+    if {[gdb_compile_shlib $srclib $objlib $opts] != ""} {
+	untested "failed to compile shared library"
+	return false
+    }
+
+    # Compile main program.
+    set srcexec [file join $srcdir $subdir $srcfile]
+    set binfile [standard_output_file $testfile-shared]
+    set opts [list debug shlib=$objlib additional_flags=-DTEST_SHARED]
+    if {[gdb_compile $srcexec $binfile executable $opts] != ""} {
+	untested "failed to compile shared executable"
+	return false
+    }
+
+    # Move objects to non-default path.
+    remote_exec build "rm -rf $builddir"
+    remote_exec build "mkdir $builddir"
+    remote_exec build "mv $binfile $builddir"
+    remote_exec build "mv $objdso  $builddir"
+    remote_exec build "mv $objlib $builddir"
+
+    return true
+}
+
+# Append DEBUGDIR to the debug-file-directory path.
+
+proc append_debug_dir {debugdir} {
+    global gdb_prompt
+
+    set orig_debugdir {}
+    gdb_test_multiple "show debug-file-directory" \
+	"get debug-file-directory" {
+	    -re "The directory where separate debug symbols are searched for is \"(.*)\"\.\[\r\n\]+$gdb_prompt $" {
+		set orig_debugdir $expect_out(1,string)
+		pass "get debug-file-directory"
+	    }
+	}
+    gdb_test_no_output "set debug-file-directory $debugdir:$orig_debugdir" \
+	"append debug directory"
+}
+
+# A convenience procedure to check if "info files" mentions the exec file
+# FILE.
+
+proc check_exec_file {file} {
+    send_log "expecting exec file \"$file\"\n"
+    gdb_test "info files" "Local exec file:\[\r\n\t\ \]+`[string_to_regexp $file]'.*"
+}
+
+# Test whether gdb can find an exec file from a core file's build-id.
+# The executable (and separate debuginfo if SEPDEBUG is true) is
+# copied to the .build-id directory.
+#
+# SUFFIX is appended to the .builid-id parent directory name to
+# keep all tests separate.
+# SYMLINK specifies whether build-id files should be copied or symlinked.
+# SHARED is a boolean indicating whether we are testing the shared
+# library core dump test case.
+
+proc locate_exec_from_core_build_id {corefile buildid suffix \
+					 sepdebug symlink shared} {
+    global testfile binfile srcfile
+
+    clean_restart
+
+    # Set up the build-id directory and symlink the binary there.
+    if {$symlink} {
+	set d "symlinkdir"
+    } else {
+	set d "debugdir"
+    }
+    set debugdir [standard_output_file $d-$suffix]
+    remote_exec build "rm -rf $debugdir"
+    remote_exec build \
+	"mkdir -p [file join $debugdir [file dirname $buildid]]"
+
+    set files_list {}
+    if {$sepdebug} {
+	lappend files_list "$binfile.stripped" $buildid
+	lappend files_list "$binfile.debug" "$buildid.debug"
+    } else {
+	lappend files_list $binfile $buildid
+    }
+    if {$shared} {
+	global sharedir
+	set builddir [standard_output_file $sharedir]
+    } else {
+	global execdir
+	set builddir [standard_output_file $execdir]
+    }
+    foreach {target name} $files_list {
+	set t [file join $builddir [file tail $target]]
+	if {$symlink} {
+	    remote_exec build "ln -s $t [file join $debugdir $name]"
+	} else {
+	    remote_exec build "cp $t [file join $debugdir $name]"
+	}
+    }
+
+    # Append the debugdir to the separate debug directory search path.
+    append_debug_dir $debugdir
+
+    gdb_test "core-file $corefile" "Program terminated with .*" \
+	"load core file"
+    if {$symlink} {
+	if {$sepdebug} {
+	    set expected_file [file join $builddir \
+				   [file tail "$binfile.stripped"]]
+	} else {
+	    set expected_file [file join $builddir [file tail $binfile]]
+	}
+    } else {
+	set expected_file $buildid
+    }
+    check_exec_file [file join $debugdir $expected_file]
+}
+
+# Run a build-id tests on a core file.
+# Supported options: "-shared" and "-sepdebug" for running tests
+# of shared and/or stripped/.debug executables.
+
+proc do_corefile_buildid_tests {args} {
+    global binfile testfile srcfile execdir sharedir
+
+    # Parse options.
+    parse_args [list {sepdebug} {shared}]
+
+    # PROGRAM to run to generate core file.  This could be different
+    # than the program that was originally built, e.g., for a stripped
+    # executable.
+    if {$shared} {
+	set builddir [standard_output_file $sharedir]
+    } else {
+	set builddir [standard_output_file $execdir]
+    }
+    set program_to_run [file join $builddir [file tail $binfile]]
+
+    # A list of suffixes to use to describe the test and the .build-id
+    # directory for the test.  The suffix will be used, joined with spaces,
+    # to prefix all tests for the given run.  It will be used, joined with
+    # dashes, to create a unique build-id directory.
+    set suffix {}
+    if {$shared} {
+	lappend suffix "shared"
+    } else {
+	lappend suffix "exec"
+    }
+
+    if {$sepdebug} {
+	# Strip debuginfo into its own file.
+	if {[gdb_gnu_strip_debug [standard_output_file $program_to_run]] \
+		!= 0} {
+	    untested "could not strip executable  for [join $suffix \ ]"
+	    return
+	}
+
+	# Run the stripped program instead of the original.
+	set program_to_run [file join $builddir \
+				[file tail "$binfile.stripped"]]
+	lappend suffix "sepdebug"
+    }
+
+    # Find the core file.
+    set corefile [core_find $program_to_run]
+    if {$corefile == ""} {
+	untested "could not generate core file"
+	return
+    }
+    verbose -log "corefile is $corefile"
+
+    # Grab the build-id from the binary, removing ".debug" from the end.
+    set buildid [build_id_debug_filename_get $program_to_run]
+    if {$buildid == ""} {
+	untested "binary for [join $suffix \ ] has no build-id"
+    }
+    regsub {\.debug$} $buildid {} buildid
+    verbose -log "build-id is $buildid"
+
+    with_test_prefix "[join $suffix \ ]"  {
+	locate_exec_from_core_build_id $corefile $buildid \
+	    [join $suffix -] $sepdebug false $shared
+    }
+
+    with_test_prefix "symlink [join $suffix \ ]" {
+	locate_exec_from_core_build_id $corefile $buildid \
+	    [join $suffix -] $sepdebug true $shared
+    }
+}
+
+# Directories where executables will be moved before testing.
+set execdir "build-exec"
+set sharedir "build-shared"
+
+#
+# Do tests
+#
+
+build_corefile_buildid_exec
+do_corefile_buildid_tests
+do_corefile_buildid_tests -sepdebug
+
+if {![skip_shlib_tests]} {
+    build_corefile_buildid_shared
+    do_corefile_buildid_tests -shared
+    do_corefile_buildid_tests -shared -sepdebug
+}
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.20191203/gdb/testsuite/gdb.base/corefile-buildid-shlib.c ./gdb/testsuite/gdb.base/corefile-buildid-shlib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.base/corefile-buildid-shlib.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/corefile-buildid-shlib.c	2019-12-10 01:49:26.000000000 +0000
@@ -0,0 +1,58 @@
+/* Copyright (C) 2007-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/>.  */
+
+/* This shared library will dlopen another shared object.
+   This is based on gdb.base/solib-disc.c.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef __WIN32__
+#include <windows.h>
+#define dlopen(name, mode) LoadLibrary (name)
+#define dlsym(handle, func) GetProcAddress (handle, func)
+#define dlclose(handle) FreeLibrary (handle)
+#define dlerror() "an error occurred"
+#else
+#include <dlfcn.h>
+#endif
+
+const char *the_shlib = SHLIB_NAME;
+
+int
+shlib_function (void)
+{
+  void *handle;
+  int (*func) (void);
+  int result;
+
+  handle = dlopen (the_shlib, RTLD_LAZY);
+  if (!handle)
+    {
+      fprintf (stderr, "%s\n", dlerror ());
+      exit (1);
+    }
+
+  func = (int (*)(void)) dlsym (handle, "crashfunc");
+  if (func == NULL)
+    {
+      fprintf (stderr, "%s\n", dlerror ());
+      exit (1);
+    }
+
+  result = func ();
+  dlclose (handle);
+  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.20191203/gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c ./gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c	2019-12-10 01:49:26.000000000 +0000
@@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   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/>.  */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+static int crashfunc_global = 1234;
+
+int
+crashfunc (void)
+{
+  printf ("in crashfunc\n");
+  abort ();
+  return crashfunc_global;
+}
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.20191203/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.20191203/gdb/testsuite/gdb.base/endianity.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.base/endianity.c	2019-12-10 01:49:26.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.20191203/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.20191203/gdb/testsuite/gdb.base/endianity.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.base/endianity.exp	2019-12-10 01:49:26.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.20191203/gdb/testsuite/gdb.base/frameapply.exp ./gdb/testsuite/gdb.base/frameapply.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.base/frameapply.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.base/frameapply.exp	2019-12-10 01:49:26.000000000 +0000
@@ -215,3 +215,5 @@ gdb_test "frame apply level 4-2 p 1" "in
 gdb_test "frame apply level 0-3" \
     "Please specify a command to apply on the selected frames" \
     "missing command"
+gdb_test "faas" "Please specify a command to apply on all frames" \
+    "missing command for faas"
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.20191203/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc ./gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-overload.cc	2019-12-10 01:49:26.000000000 +0000
@@ -35,6 +35,8 @@ public:
 
   int overload1arg (foo_lval_ref);
   int overload1arg (foo_rval_ref);
+  int overloadConst (const foo &);
+  int overloadConst (const foo &&);
 };
 
 void
@@ -60,6 +62,12 @@ f (int &&x)
   return 3;
 }
 
+static int
+g (int &&x)
+{
+  return x;
+}
+
 int
 main ()
 {
@@ -71,6 +79,17 @@ main ()
   // result = 1 + 2 + 3 + 3 = 9
   int result = f (i) + f (ci) + f (0) + f (std::move (i));
 
+  /* Overload resolution below requires both a CV-conversion
+     and reference conversion.  */
+  int test_const // = 3
+    = foo_rr_instance1.overloadConst (arg);
+
+  /* The statement below is illegal: cannot bind rvalue reference of
+     type 'int&&' to lvalue of type 'int'.
+
+     result = g (i); */
+  result = g (5); // this is OK
+
   marker1 (); // marker1-returns-here
   return result;
 }
@@ -84,3 +103,5 @@ foo::~foo ()                       {}
 
 int foo::overload1arg (foo_lval_ref arg)           { return 1; }
 int foo::overload1arg (foo_rval_ref arg)           { return 2; }
+int foo::overloadConst (const foo &arg)            { return 3; }
+int foo::overloadConst (const foo &&arg)           { return 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.20191203/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp ./gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/rvalue-ref-overload.exp	2019-12-10 01:49:26.000000000 +0000
@@ -49,20 +49,24 @@ cp_test_ptype_class "foo_rr_instance1" "
 	{ method public "~foo();" }
 	{ method public "int overload1arg(foo_lval_ref);" }
 	{ method public "int overload1arg(foo_rval_ref);" }
+	{ method public "int overloadConst(const foo &);" }
+	{ method public "int overloadConst(const foo &&);" }
     }
 
-gdb_test "print foo_rr_instance1.overload1arg(arg)" \
-    "\\$\[0-9\]+ = 1" \
-    "print call overloaded func foo & arg"
-
-gdb_test "print foo_rr_instance1.overload1arg(static_cast<foo&&>(arg))" \
-    "\\$\[0-9\]+ = 2" \
-    "print call overloaded func foo && arg"
+gdb_test "print foo_rr_instance1.overload1arg(arg)" "1"
+
+gdb_test "print foo_rr_instance1.overload1arg(static_cast<foo&&>(arg))" "2"
+
+gdb_test "print foo_rr_instance1.overloadConst(arg)" "3"
 
 # Test lvalue vs rvalue function overloads
-gdb_test "print f (i)" "= 1" "lvalue reference overload"
+gdb_test "print f (i)" "1" "lvalue reference overload"
 
-gdb_test "print f (ci)" "= 2" "lvalue reference to const overload"
+gdb_test "print f (ci)" "2" "lvalue reference to const overload"
 
 setup_kfail "c++/15372" "*-*-*"
-gdb_test "print f (3)" "= 3" "rvalue reference overload"
+gdb_test "print f (3)" "3" "rvalue reference overload"
+
+gdb_test "print g (i)" \
+    "Cannot resolve function g to any overloaded instance" \
+    "passing lvalue arg to rvalue parameter"
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.20191203/gdb/testsuite/gdb.dwarf2/imported-unit.exp ./gdb/testsuite/gdb.dwarf2/imported-unit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.dwarf2/imported-unit.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/imported-unit.exp	2019-12-10 01:49:27.000000000 +0000
@@ -73,24 +73,24 @@ Dwarf::assemble $asm_file {
 	    {name "<artificial>"}
 	} {
 	    imported_unit {
-		{import :$cu_label ref_addr}
+		{import %$cu_label}
 	    }
 	    subprogram {
-		{abstract_origin :$main_label}
+		{abstract_origin %$main_label}
 		{low_pc $main_start addr}
 		{high_pc "$main_start + $main_length" addr}
 	    } {
 		subprogram {
-		    {abstract_origin :$doit_label}
+		    {abstract_origin %$doit_label}
 		    {low_pc $doit_start addr}
 		    {high_pc "$doit_start + $doit_length" addr}
 		} {
 		    formal_parameter {
-			{abstract_origin :$doit_self_label}
+			{abstract_origin %$doit_self_label}
 		    }
 		}
 	        DW_TAG_variable {
-		    {abstract_origin :$foo_label}
+		    {abstract_origin %$foo_label}
 		    {location 4 data1}
 		}
 	    }
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.20191203/gdb/testsuite/gdb.dwarf2/varval.exp ./gdb/testsuite/gdb.dwarf2/varval.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.dwarf2/varval.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/varval.exp	2019-12-10 01:49:27.000000000 +0000
@@ -55,7 +55,8 @@ proc setup_exec { arg_bad } {
 		    var_b_label var_c_label var_p_label var_bad_label \
 		    varval_label var_s_label var_untyped_label \
 		    var_a_abstract_label var_a_concrete_label \
-		    varval2_label
+		    varval2_label varval3_def_label varval3_decl_label \
+		    int_array_label int_array_of_1_label
 
 		set int_size [get_sizeof "int" -1]
 
@@ -171,6 +172,32 @@ proc setup_exec { arg_bad } {
 		    {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_b"]} SPECIAL_expr}
 		}
 
+		int_array_label: DW_TAG_array_type {
+		    {DW_AT_type :${int_label}}
+		} {
+		    DW_TAG_subrange_type {}
+		}
+		varval3_decl_label: DW_TAG_variable {
+		    {DW_AT_name "varval3"}
+		    {DW_AT_type :${int_array_label}}
+		    {DW_AT_external 1 DW_FORM_flag}
+		    {DW_AT_declaration 1 DW_FORM_flag}
+		}
+		int_array_of_1_label: DW_TAG_array_type {
+		    {DW_AT_type :${int_label}}
+		} {
+		    DW_TAG_subrange_type {
+			{DW_AT_type        :$int_label}
+			{DW_AT_upper_bound 0 DW_FORM_data1}
+		    }
+		}
+		varval3_def_label: DW_TAG_variable {
+		    {DW_AT_name "varval3"}
+		    {DW_AT_external 1 DW_FORM_flag}
+		    {DW_AT_type :${int_array_of_1_label}}
+		    {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_a"]} SPECIAL_expr}
+		}
+
 		DW_TAG_subprogram {
 		    {MACRO_AT_func { "main" "${srcdir}/${subdir}/${srcfile}" }}
 		    {DW_AT_type :${int_label}}
@@ -277,19 +304,24 @@ proc setup_exec { arg_bad } {
     if [prepare_for_testing "failed to prepare" ${executable} [list ${asm_file} ${srcfile}] {}] {
 	return -1
     }
-
-    # DW_OP_GNU_variable_value implementation requires a valid frame.
-    if ![runto_main] {
-	return -1
-    }
 }
 
 if { [setup_exec 0] == -1 } {
     return -1
 }
 
+with_test_prefix "pre-main" {
+    gdb_test "print varval3" "= \\{8\\}" ""
+}
+
+# DW_OP_GNU_variable_value implementation requires a valid frame.
+if ![runto_main] {
+    return -1
+}
+
 gdb_test "print varval" "= 8"
 gdb_test "print varval2" "= 8"
+gdb_test "print varval3" "= \\{8\\}"
 gdb_test "print constval" "= 53"
 gdb_test "print mixedval" "= 42"
 gdb_test "print pointerval" "= \\(int \\*\\) $hex <var_b>"
@@ -311,6 +343,10 @@ if { [setup_exec 1] == -1 } {
     return -1
 }
 
+# DW_OP_GNU_variable_value implementation requires a valid frame.
+if ![runto_main] {
+    return -1
+}
 gdb_test "print badval" "value has been optimized out"
 gdb_test "print bad_die_val1" \
          "invalid dwarf2 offset 0xabcdef11"
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.20191203/gdb/testsuite/gdb.fortran/derived-type-striding.exp ./gdb/testsuite/gdb.fortran/derived-type-striding.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.fortran/derived-type-striding.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/derived-type-striding.exp	2019-12-10 01:49:27.000000000 +0000
@@ -20,6 +20,10 @@ if {[skip_fortran_tests]} { return -1 }
 
 standard_testfile ".f90"
 
+# Unfortunately recent versions of GCC broke the stride information in
+# the DEBUG so tests in this file will fail.
+set gcc_with_broken_stride [test_compiler_info {gcc-[89]-*}]
+
 if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
 	 {debug f90}]} {
     return -1
@@ -31,7 +35,9 @@ if {![runto [gdb_get_line_number "post_i
 }
 
 # Test homogeneous derived type.
+if { $gcc_with_broken_stride } { setup_kfail *-*-* gcc/92775 }
 gdb_test "p point_dimension" "= \\\(2, 2, 2, 2, 2, 2, 2, 2, 2\\\)"
 
 # Test mixed type derived type.
+if { $gcc_with_broken_stride } { setup_kfail *-*-* gcc/92775 }
 gdb_test "p point_mixed_dimension" "= \\\(3, 3, 3, 3\\\)"
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.20191203/gdb/testsuite/gdb.fortran/info-modules.exp ./gdb/testsuite/gdb.fortran/info-modules.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.fortran/info-modules.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/info-modules.exp	2019-12-10 01:49:27.000000000 +0000
@@ -17,6 +17,7 @@
 # module variables'.
 
 load_lib "fortran.exp"
+load_lib "sym-info-cmds.exp"
 
 if { [skip_fortran_tests] } { continue }
 
@@ -38,150 +39,130 @@ set real4 [fortran_real4]
 
 # Test 'info modules' command.
 
-gdb_test "info modules" \
-    [multi_line \
-	 "All defined modules:" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "18:\[\t \]+mod2" \
-	 "" \
-	 "File .*${srcfile}:" \
-	 "16:\[\t \]+mod1" ]
-
-gdb_test "info modules 1" \
-    [multi_line \
-	 "All modules matching regular expression \"1\":" \
-	 "" \
-	 "File .*${srcfile}:" \
-	 "16:\[\t \]+mod1" ]
-
-gdb_test "info modules 2" \
-    [multi_line \
-	 "All modules matching regular expression \"2\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "18:\[\t \]+mod2" ]
-
-gdb_test "info modules mod" \
-    [multi_line \
-	 "All modules matching regular expression \"mod\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "18:\[\t \]+mod2" \
-	 "" \
-	 "File .*${srcfile}:" \
-	 "16:\[\t \]+mod1" ]
+GDBInfoSymbols::run_command "info modules"
+GDBInfoSymbols::check_header "All defined modules:"
+GDBInfoSymbols::check_entry "${srcfile2}" "18" "mod2"
+GDBInfoSymbols::check_entry "${srcfile}" "16" "mod1"
+GDBInfoSymbols::check_no_entry "${srcfile}"
+GDBInfoSymbols::check_no_entry "${srcfile2}"
+
+GDBInfoSymbols::run_command "info modules 1"
+GDBInfoSymbols::check_header \
+    "All modules matching regular expression \"1\":"
+GDBInfoSymbols::check_entry "${srcfile}" "16" "mod1"
+GDBInfoSymbols::check_no_entry "${srcfile}"
+GDBInfoSymbols::check_no_entry "${srcfile2}"
+
+GDBInfoSymbols::run_command "info modules 2"
+GDBInfoSymbols::check_header \
+    "All modules matching regular expression \"2\":"
+GDBInfoSymbols::check_entry "${srcfile2}" "18" "mod2"
+GDBInfoSymbols::check_no_entry "${srcfile}"
+GDBInfoSymbols::check_no_entry "${srcfile2}"
+
+GDBInfoSymbols::run_command "info modules mod"
+GDBInfoSymbols::check_header \
+    "All modules matching regular expression \"mod\":"
+GDBInfoSymbols::check_entry "${srcfile2}" "18" "mod2"
+GDBInfoSymbols::check_entry "${srcfile}" "16" "mod1"
+GDBInfoSymbols::check_no_entry "${srcfile}"
+GDBInfoSymbols::check_no_entry "${srcfile2}"
 
 # Test 'info module functions'.
 
-gdb_test "info module functions" \
-    [multi_line \
-	 "All functions in all modules:" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "22:\[\t \]+void mod2::sub_m2_a\\(${integer4}, ${logical4}\\);" \
-	 "30:\[\t \]+${logical4} mod2::sub_m2_b\\(${real4}\\);" \
-	 "" \
-	 "Module \"mod1\":" \
-	 "" \
-	 "File .*${srcfile}:" \
-	 "35:\[\t \]+void mod1::__copy_mod1_M1t1\\(Type m1t1, Type m1t1\\);" \
-	 "25:\[\t \]+void mod1::sub_m1_a\\(${integer4}\\);" \
-	 "31:\[\t \]+${integer4} mod1::sub_m1_b\\(void\\);" ]
-
-gdb_test "info module functions -m mod1" \
-    [multi_line \
-	 "All functions in all modules matching regular expression \"mod1\":" \
-	 "" \
-	 "Module \"mod1\":" \
-	 "" \
-	 "File .*:" \
-	 "35:\[\t \]+void mod1::__copy_mod1_M1t1\\(Type m1t1, Type m1t1\\);" \
-	 "25:\[\t \]+void mod1::sub_m1_a\\(${integer4}\\);" \
-	 "31:\[\t \]+${integer4} mod1::sub_m1_b\\(void\\);" ]
-
-gdb_test "info module functions -t integer" \
-    [multi_line \
-	 "All functions with type matching regular expression \"integer\" in all modules:" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "22:\[\t \]+void mod2::sub_m2_a\\(${integer4}, ${logical4}\\);" \
-	 "" \
-	 "Module \"mod1\":" \
-	 "" \
-	 "File .*${srcfile}:" \
-	 "25:\[\t \]+void mod1::sub_m1_a\\(${integer4}\\);" \
-	 "31:\[\t \]+${integer4} mod1::sub_m1_b\\(void\\);" ]
+GDBInfoModuleSymbols::run_command "info module functions"
+GDBInfoModuleSymbols::check_header "All functions in all modules:"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "22" \
+    "void mod2::sub_m2_a\\(${integer4}, ${logical4}\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "30" \
+    "${logical4} mod2::sub_m2_b\\(${real4}\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "35" \
+    "void mod1::__copy_mod1_M1t1\\(Type m1t1, Type m1t1\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "25" \
+    "void mod1::sub_m1_a\\(${integer4}\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "31" \
+    "${integer4} mod1::sub_m1_b\\(void\\);"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
+
+GDBInfoModuleSymbols::run_command "info module functions -m mod1"
+GDBInfoModuleSymbols::check_header \
+    "All functions in all modules matching regular expression \"mod1\":"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "35" \
+    "void mod1::__copy_mod1_M1t1\\(Type m1t1, Type m1t1\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "25" \
+    "void mod1::sub_m1_a\\(${integer4}\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "31" \
+    "${integer4} mod1::sub_m1_b\\(void\\);"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
+
+GDBInfoModuleSymbols::run_command "info module functions -t integer"
+GDBInfoModuleSymbols::check_header \
+    "All functions with type matching regular expression \"integer\" in all modules:"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "22" \
+    "void mod2::sub_m2_a\\(${integer4}, ${logical4}\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "25" \
+    "void mod1::sub_m1_a\\(${integer4}\\);"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "31" \
+    "${integer4} mod1::sub_m1_b\\(void\\);"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
 
 # Test 'info module variables'.
 
-gdb_test "info module variables" \
-    [multi_line \
-	 "All variables in all modules:" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "19:\[\t \]+${integer4} mod2::mod2_var_1;" \
-	 "20:\[\t \]+${real4} mod2::mod2_var_2;" \
-	 "" \
-	 "Module \"mod1\":" \
-	 "" \
-	 "File .*${srcfile}:" \
-	 "35:\[\t \]+Type m1t1 mod1::__def_init_mod1_M1t1;" \
-	 "35:\[\t \]+Type __vtype_mod1_M1t1 mod1::__vtab_mod1_M1t1;" \
-	 "21:\[\t \]+${real4} mod1::mod1_var_1;" \
-	 "22:\[\t \]+${integer4} mod1::mod1_var_2;" ]
-
-gdb_test "info module variables -t real" \
-    [multi_line \
-	 "All variables with type matching regular expression \"real\" in all modules:" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*:" \
-	 "20:\[\t \]+${real4} mod2::mod2_var_2;" \
-	 "" \
-	 "Module \"mod1\":" \
-	 "" \
-	 "File .*:" \
-	 "21:\[\t \]+${real4} mod1::mod1_var_1;" ]
-
-gdb_test "info module variables -m mod2" \
-    [multi_line \
-	 "All variables in all modules matching regular expression \"mod2\":" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "19:\[\t \]+${integer4} mod2::mod2_var_1;" \
-	 "20:\[\t \]+${real4} mod2::mod2_var_2;" ]
-
-gdb_test "info module variables -m mod2 -t real" \
-    [multi_line \
-	 "All variables with type matching regular expression \"real\"" \
-	 "	in all modules matching regular expression \"mod2\":" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*${srcfile2}:" \
-	 "20:\[\t \]+${real4} mod2::mod2_var_2;" ]
-
-gdb_test "info module variables _1" \
-    [multi_line \
-	 "All variables matching regular expression \"_1\" in all modules:" \
-	 "" \
-	 "Module \"mod2\":" \
-	 "" \
-	 "File .*:" \
-	 "19:\[\t \]+${integer4} mod2::mod2_var_1;" \
-	 "" \
-	 "Module \"mod1\":" \
-	 "" \
-	 "File .*:" \
-	 "21:\[\t \]+${real4} mod1::mod1_var_1;" ]
+GDBInfoModuleSymbols::run_command "info module variables"
+GDBInfoModuleSymbols::check_header "All variables in all modules:"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "19" \
+    "${integer4} mod2::mod2_var_1;"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "20" \
+    "${real4} mod2::mod2_var_2;"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "35" \
+    "Type m1t1 mod1::__def_init_mod1_M1t1;"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "35" \
+    "Type __vtype_mod1_M1t1 mod1::__vtab_mod1_M1t1;"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "21" \
+    "${real4} mod1::mod1_var_1;"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "22" \
+    "${integer4} mod1::mod1_var_2;"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
+
+GDBInfoModuleSymbols::run_command "info module variables -t real"
+GDBInfoModuleSymbols::check_header \
+    "All variables with type matching regular expression \"real\" in all modules:"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "20" \
+    "${real4} mod2::mod2_var_2;"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "21" \
+    "${real4} mod1::mod1_var_1;"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
+
+GDBInfoModuleSymbols::run_command "info module variables -m mod2"
+GDBInfoModuleSymbols::check_header \
+    "All variables in all modules matching regular expression \"mod2\":"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "19" \
+    "${integer4} mod2::mod2_var_1;"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "20" \
+    "${real4} mod2::mod2_var_2;"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
+
+GDBInfoModuleSymbols::run_command "info module variables -m mod2 -t real"
+GDBInfoModuleSymbols::check_header \
+    "All variables with type matching regular expression \"real\" in all modules matching regular expression \"mod2\":"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "20" \
+    "${real4} mod2::mod2_var_2;"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
+
+GDBInfoModuleSymbols::run_command "info module variables _1"
+GDBInfoModuleSymbols::check_header \
+    "All variables matching regular expression \"_1\" in all modules:"
+GDBInfoModuleSymbols::check_entry "${srcfile2}" "mod2" "19" \
+    "${integer4} mod2::mod2_var_1;"
+GDBInfoModuleSymbols::check_entry "${srcfile}" "mod1" "21" \
+    "${real4} mod1::mod1_var_1;"
+GDBInfoModuleSymbols::check_no_entry "${srcfile}" ".*"
+GDBInfoModuleSymbols::check_no_entry "${srcfile2}" ".*"
 
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.20191203/gdb/testsuite/gdb.fortran/info-types.exp ./gdb/testsuite/gdb.fortran/info-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.fortran/info-types.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/info-types.exp	2019-12-10 01:49:27.000000000 +0000
@@ -16,6 +16,7 @@
 # This file tests 'info types' for some Fortran types.
 
 load_lib "fortran.exp"
+load_lib "sym-info-cmds.exp"
 
 if { [skip_fortran_tests] } { continue }
 
@@ -37,6 +38,18 @@ set logical4 [fortran_logical4]
 set character1 [fortran_character1]
 set real4 [fortran_real4]
 
+GDBInfoSymbols::run_command "info types"
+GDBInfoSymbols::check_header "All defined types:"
+
+GDBInfoSymbols::check_entry "${srcfile}" "" "${character1}"
+GDBInfoSymbols::check_entry "${srcfile}" "" "${integer4}"
+GDBInfoSymbols::check_entry "${srcfile}" "" "${logical4}"
+GDBInfoSymbols::check_entry "${srcfile}" "$decimal" "Type m1t1;"
+GDBInfoSymbols::check_entry "${srcfile}" "" "${real4}"
+GDBInfoSymbols::check_entry "${srcfile}" "37" "Type s1;"
+
+return 0
+
 gdb_test "info types" \
     [multi_line \
 	 "All defined types:" \
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.20191203/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.20191203/gdb/testsuite/gdb.fortran/type-kinds.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/type-kinds.exp	2019-12-10 01:49:27.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.20191203/gdb/testsuite/gdb.guile/scm-breakpoint.c ./gdb/testsuite/gdb.guile/scm-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.guile/scm-breakpoint.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-breakpoint.c	2019-12-10 01:49:27.000000000 +0000
@@ -15,6 +15,10 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see  <http://www.gnu.org/licenses/>.  */
 
+#ifdef USE_PROBES
+#include <sys/sdt.h>
+#endif
+
 int result = 0;
 
 int multiply (int i)
@@ -38,6 +42,9 @@ int main (int argc, char *argv[])
     {
       result += multiply (foo);  /* Break at multiply. */
       result += add (bar); /* Break at add. */
+#ifdef USE_PROBES
+      DTRACE_PROBE1 (test, result_updated, result);
+#endif
     }
 
   return 0; /* Break at 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.20191203/gdb/testsuite/gdb.guile/scm-breakpoint.exp ./gdb/testsuite/gdb.guile/scm-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.guile/scm-breakpoint.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.guile/scm-breakpoint.exp	2019-12-10 01:49:27.000000000 +0000
@@ -499,6 +499,28 @@ proc test_bkpt_address {} {
 	".*Breakpoint ($decimal)+ at .*$srcfile, line ($decimal)+\."
 }
 
+proc test_bkpt_probe {} {
+    global decimal hex testfile srcfile
+
+    if { [prepare_for_testing "failed to prepare" ${testfile}-probes \
+	    ${srcfile} {additional_flags=-DUSE_PROBES}] } {
+	return -1
+    }
+
+    if ![gdb_guile_runto_main] then {
+	return
+    }
+
+    gdb_scm_test_silent_cmd \
+	"guile (define bp1 (make-breakpoint \"-probe test:result_updated\"))" \
+	"create probe breakpoint"
+
+    gdb_test \
+	"guile (register-breakpoint! bp1)" \
+	"Breakpoint $decimal at $hex" \
+	"register probe breakpoint"
+}
+
 test_bkpt_basic
 test_bkpt_deletion
 test_bkpt_cond_and_cmds
@@ -508,3 +530,4 @@ test_bkpt_internal
 test_bkpt_eval_funcs
 test_bkpt_registration
 test_bkpt_address
+test_bkpt_probe
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.20191203/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.20191203/gdb/testsuite/gdb.mi/mi-fortran-modules.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-fortran-modules.exp	2019-12-10 01:49:27.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
 }
 
@@ -33,8 +33,15 @@ if {[mi_gdb_start]} {
 
 mi_run_to_main
 
+
+# Patterns to skip optional system modules that appear with later versions of GFortran.
+set system_modules_pattern \
+    "\{filename=\"\[^\"\]+/ieee/\[^/\]+\.F90\",fullname=\"\[^\"\]+\",symbols=\\\[(\[^\]\]+)\\\]\},"
+set system_module_symbols_pattern \
+    "\{module=\"\[^\"\]*ieee\[^\"\]*\",files=\\\[\{filename=\"\[^\"\]+\",fullname=\"\[^\"\]+\",symbols=\\\[\[^\]\]+\\\]\}\\\]\},"
+
 mi_gdb_test "101-symbol-info-modules" \
-    "101\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"16\",name=\"mod1\"\},\{line=\"27\",name=\"mod2\"\}\\\]\},\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"16\",name=\"mod3\"\},\{line=\"32\",name=\"modmany\"\},\{line=\"41\",name=\"moduse\"\}\\\]\}\\\]\}" \
+    "101\\^done,symbols=\{debug=\\\[($system_modules_pattern)*\{filename=\"\[^\"\]+$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[\{line=\"16\",name=\"mod1\"\},\{line=\"27\",name=\"mod2\"\}\\\]\},\{filename=\"\[^\"\]+$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[\{line=\"16\",name=\"mod3\"\},\{line=\"32\",name=\"modmany\"\},\{line=\"41\",name=\"moduse\"\}\\\]\}\\\]\}" \
     "-symbol-info-modules"
 
 mi_gdb_test "102-symbol-info-modules --name mod\[123\]" \
@@ -45,7 +52,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=\\\[(${system_module_symbols_pattern})*\{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=\\\[(${system_module_symbols_pattern})*\{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.20191203/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.20191203/gdb/testsuite/gdb.mi/mi-sym-info.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.mi/mi-sym-info.exp	2019-12-10 01:49:27.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.20191203/gdb/testsuite/gdb.python/py-breakpoint.c ./gdb/testsuite/gdb.python/py-breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.python/py-breakpoint.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint.c	2019-12-10 01:49:27.000000000 +0000
@@ -15,6 +15,10 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see  <http://www.gnu.org/licenses/>.  */
 
+#ifdef USE_PROBES
+#include <sys/sdt.h>
+#endif
+
 int result = 0;
 
 namespace foo_ns
@@ -46,6 +50,9 @@ int main (int argc, char *argv[])
     {
       result += multiply (foo);  /* Break at multiply. */
       result += add (bar); /* Break at add. */
+#ifdef USE_PROBES
+      DTRACE_PROBE1 (test, result_updated, result);
+#endif
     }
 
   return 0; /* Break at 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.20191203/gdb/testsuite/gdb.python/py-breakpoint.exp ./gdb/testsuite/gdb.python/py-breakpoint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.python/py-breakpoint.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-breakpoint.exp	2019-12-10 01:49:27.000000000 +0000
@@ -695,6 +695,25 @@ proc_with_prefix test_bkpt_qualified {} 
 	"-q in spec string and qualified false"
 }
 
+proc_with_prefix test_bkpt_probe {} {
+    global decimal hex testfile srcfile
+
+    if { [prepare_for_testing "failed to prepare" ${testfile}-probes \
+	    ${srcfile} {debug c++ additional_flags=-DUSE_PROBES}] } {
+	return -1
+    }
+
+    if ![runto_main] then {
+	fail "cannot run to main."
+	return 0
+    }
+
+    gdb_test \
+	"python gdb.Breakpoint(\"-probe test:result_updated\")" \
+	"Breakpoint $decimal at $hex" \
+	"-probe in spec string"
+}
+
 test_bkpt_basic
 test_bkpt_deletion
 test_bkpt_cond_and_cmds
@@ -708,3 +727,4 @@ test_bkpt_pending
 test_bkpt_events
 test_bkpt_explicit_loc
 test_bkpt_qualified
+test_bkpt_probe
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.20191203/gdb/testsuite/gdb.threads/pthreads.exp ./gdb/testsuite/gdb.threads/pthreads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/gdb.threads/pthreads.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/pthreads.exp	2019-12-10 01:49:27.000000000 +0000
@@ -334,10 +334,14 @@ proc check_qcs {} {
 	    ] \
 	"run a failing command except in one frame of thread 2,3, -s to silently continue.  Do not show thread and frame info"
 
-    # Check invalid flag combinations.
+    # Check invalid flag combinations and errors.
     gdb_test "thread apply all -c -s p 1" \
 	"thread apply all: -c and -s are mutually exclusive" \
 	"check -c and -s cannot be used simultaneously"
+    gdb_test "taas" "Please specify a command to apply on all threads" \
+	"missing command for taas"
+    gdb_test "tfaas" "Please specify a command to apply on all frames of all threads" \
+	"missing command for tfaas"
 
 }
 
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.20191203/gdb/testsuite/lib/gdb.exp ./gdb/testsuite/lib/gdb.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/lib/gdb.exp	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/testsuite/lib/gdb.exp	2019-12-10 01:49:27.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.20191203/gdb/testsuite/lib/sym-info-cmds.exp ./gdb/testsuite/lib/sym-info-cmds.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/testsuite/lib/sym-info-cmds.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/lib/sym-info-cmds.exp	2019-12-10 01:49:27.000000000 +0000
@@ -0,0 +1,507 @@
+# 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/>.
+
+# Make it easier to run the 'info modules' command (using
+# GDBInfoModules), and the 'info module ...' commands (using
+# GDBInfoModuleContents) and process the output.
+#
+# The difficulty we run into is that different versions of gFortran
+# include different helper modules which show up in the results.  The
+# procedures in this library help process those parts of the output we
+# actually want to check, while ignoring those parts that we don't
+# care about.
+#
+# For each namespace GDBInfoModules and GDBInfoModuleContents, there's
+# a run_command proc, use this to run a command and capture the
+# output.  Then make calls to check_header, check_entry, and
+# check_no_entry to ensure the output was as expected.
+
+namespace eval GDBInfoSymbols {
+
+    # A string that is the header printed by GDB immediately after the
+    # 'info [modules|types|functions|variables]' command has been issued.
+    variable _header
+
+    # A list of entries extracted from the output of the command.
+    # Each entry is a filename, a line number, and the rest of the
+    # text describing the entry.  If an entry has no line number then
+    # it is replaced with the text NONE.
+    variable _entries
+
+    # The string that is the complete last command run.
+    variable _last_command
+
+    # Add a new entry to the _entries list.
+    proc _add_entry { filename lineno text } {
+	variable _entries
+
+	set entry [list $filename $lineno $text]
+	lappend _entries $entry
+    }
+
+    # Run the 'info modules' command, passing ARGS as extra arguments
+    # to the command.  Process the output storing the results within
+    # the variables in this namespace.
+    #
+    # The results of any previous call to run_command are discarded
+    # when this is called.
+    proc run_command { cmd { testname "" } } {
+	global gdb_prompt
+
+	variable _header
+	variable _entries
+	variable _last_command
+
+	if {![regexp -- "^info (modules|types|variables|functions)" $cmd]} {
+	    perror "invalid command"
+	}
+
+	set _header ""
+	set _entries [list]
+	set _last_command $cmd
+
+	if { $testname == "" } {
+	    set testname $cmd
+	}
+
+	send_gdb "$cmd\n"
+	gdb_expect {
+	    -re "^$cmd\r\n" {
+		# Match the original command echoed back to us.
+	    }
+	    timeout {
+		fail "$testname (timeout)"
+		return 0
+	    }
+	}
+
+	gdb_expect {
+	    -re "^\r\n" {
+		# Found the blank line after the header, we're done
+		# parsing the header now.
+	    }
+	    -re "^\[ \t]*(\[^\r\n\]+)\r\n" {
+		set str $expect_out(1,string)
+		if { $_header == "" } {
+		    set _header $str
+		} else {
+		    set _header "$_header $str"
+		}
+		exp_continue
+	    }
+	    timeout {
+		fail "$testname (timeout)"
+		return 0
+	    }
+	}
+
+	set current_file ""
+	gdb_expect {
+	    -re "^File (\[^\r\n\]+):\r\n" {
+		set current_file $expect_out(1,string)
+		exp_continue
+	    }
+	    -re "^(\[0-9\]+):\[ \t\]+(\[^\r\n\]+)\r\n" {
+		set lineno $expect_out(1,string)
+		set text $expect_out(2,string)
+		if { $current_file == "" } {
+		    fail "$testname (missing filename)"
+		    return 0
+		}
+		_add_entry $current_file $lineno $text
+		exp_continue
+	    }
+	    -re "^\[ \t\]+(\[^\r\n\]+)\r\n" {
+		set lineno "NONE"
+		set text $expect_out(1,string)
+		if { $current_file == "" } {
+		    fail "$testname (missing filename)"
+		    return 0
+		}
+		_add_entry $current_file $lineno $text
+		exp_continue
+	    }
+	    -re "^\r\n" {
+		exp_continue
+	    }
+	    -re "^$gdb_prompt $" {
+		# All done.
+	    }
+	    timeout {
+		fail "$testname (timeout)"
+		return 0
+	    }
+	}
+
+	pass $testname
+	return 1
+    }
+
+    # Check that the header held in _header matches PATTERN.  Use
+    # TESTNAME as the name of the test, or create a suitable default
+    # test name based on the last command.
+    proc check_header { pattern { testname "" } } {
+	variable _header
+	variable _last_command
+
+	if { $testname == "" } {
+	    set testname "$_last_command: check header"
+	}
+
+	gdb_assert {[regexp -- $pattern $_header]} $testname
+    }
+
+    # Check that we have an entry in _entries matching FILENAME,
+    # LINENO, and TEXT.  If LINENO is the empty string it is replaced
+    # with the string NONE in order to match a similarly missing line
+    # number in the output of the command.
+    #
+    # TESTNAME is the name of the test, or a default will be created
+    # based on the last command run and the arguments passed here.
+    #
+    # If a matching entry is found then it is removed from the
+    # _entries list, this allows us to check for duplicates using the
+    # check_no_entry call.
+    proc check_entry { filename lineno text { testname "" } } {
+	variable _entries
+	variable _last_command
+
+	if { $testname == "" } {
+	    set testname \
+		"$_last_command: check for entry '$filename', '$lineno', '$text'"
+	}
+
+	if { $lineno == "" } {
+	    set lineno "NONE"
+	}
+
+	set new_entries [list]
+
+	set found_match 0
+	foreach entry $_entries {
+
+	    if {!$found_match} {
+		set f [lindex $entry 0]
+		set l [lindex $entry 1]
+		set t [lindex $entry 2]
+		if { [regexp -- $filename $f] \
+			 && [regexp -- $lineno $l] \
+			 && [regexp -- $text $t] } {
+		    set found_match 1
+		} else {
+		    lappend new_entries $entry
+		}
+	    } else {
+		lappend new_entries $entry
+	    }
+	}
+
+	set _entries $new_entries
+	gdb_assert { $found_match } $testname
+    }
+
+    # Check that there is no entry in the _entries list matching
+    # FILENAME, LINENO, and TEXT.  The LINENO and TEXT are optional,
+    # and will be replaced with '.*' if missing.
+    #
+    # If LINENO is the empty string then it will be replaced with the
+    # string NONE in order to match against missing line numbers in
+    # the output of the command.
+    #
+    # TESTNAME is the name of the test, or a default will be built
+    # from the last command run and the arguments passed here.
+    #
+    # This can be used after a call to check_entry to ensure that
+    # there are no further matches for a particular file in the
+    # output.
+    proc check_no_entry { filename { lineno ".*" } { text ".*" } \
+			      { testname "" } } {
+	variable _entries
+	variable _last_command
+
+	if { $testname == "" } {
+	    set testname \
+		"$_last_command: check no matches for '$filename', $lineno', and '$text'"
+	}
+
+	if { $lineno == "" } {
+	    set lineno "NONE"
+	}
+
+	foreach entry $_entries {
+	    set f [lindex $entry 0]
+	    set l [lindex $entry 1]
+	    set t [lindex $entry 2]
+	    if { [regexp -- $filename $f] \
+		     && [regexp -- $lineno $l] \
+		     && [regexp -- $text $t] } {
+		fail $testname
+	    }
+	}
+
+	pass $testname
+    }
+}
+
+
+namespace eval GDBInfoModuleSymbols {
+
+    # A string that is the header printed by GDB immediately after the
+    # 'info modules (variables|functions)' command has been issued.
+    variable _header
+
+    # A list of entries extracted from the output of the command.
+    # Each entry is a filename, a module name, a line number, and the
+    # rest of the text describing the entry.  If an entry has no line
+    # number then it is replaced with the text NONE.
+    variable _entries
+
+    # The string that is the complete last command run.
+    variable _last_command
+
+    # Add a new entry to the _entries list.
+    proc _add_entry { filename module lineno text } {
+	variable _entries
+
+	set entry [list $filename $module $lineno $text]
+	lappend _entries $entry
+    }
+
+    # Run the 'info module ....' command, passing ARGS as extra
+    # arguments to the command.  Process the output storing the
+    # results within the variables in this namespace.
+    #
+    # The results of any previous call to run_command are discarded
+    # when this is called.
+    proc run_command { cmd { testname "" } } {
+	global gdb_prompt
+
+	variable _header
+	variable _entries
+	variable _last_command
+
+	if {![regexp -- "^info module (variables|functions)" $cmd]} {
+	    perror "invalid command: '$cmd'"
+	}
+
+	set _header ""
+	set _entries [list]
+	set _last_command $cmd
+
+	if { $testname == "" } {
+	    set testname $cmd
+	}
+
+	send_gdb "$cmd\n"
+	gdb_expect {
+	    -re "^$cmd\r\n" {
+		# Match the original command echoed back to us.
+	    }
+	    timeout {
+		fail "$testname (timeout)"
+		return 0
+	    }
+	}
+
+	gdb_expect {
+	    -re "^\r\n" {
+		# Found the blank line after the header, we're done
+		# parsing the header now.
+	    }
+	    -re "^\[ \t\]*(\[^\r\n\]+)\r\n" {
+		set str $expect_out(1,string)
+		if { $_header == "" } {
+		    set _header $str
+		} else {
+		    set _header "$_header $str"
+		}
+		exp_continue
+	    }
+	    timeout {
+		fail "$testname (timeout)"
+		return 0
+	    }
+	}
+
+	set current_module ""
+	set current_file ""
+	gdb_expect {
+	    -re "^Module \"(\[^\"\]+)\":\r\n" {
+		set current_module $expect_out(1,string)
+		exp_continue
+	    }
+	    -re "^File (\[^\r\n\]+):\r\n" {
+		if { $current_module == "" } {
+		    fail "$testname (missing module)"
+		    return 0
+		}
+		set current_file $expect_out(1,string)
+		exp_continue
+	    }
+	    -re "^(\[0-9\]+):\[ \t\]+(\[^\r\n\]+)\r\n" {
+		set lineno $expect_out(1,string)
+		set text $expect_out(2,string)
+		if { $current_module == "" } {
+		    fail "$testname (missing module)"
+		    return 0
+		}
+		if { $current_file == "" } {
+		    fail "$testname (missing filename)"
+		    return 0
+		}
+		_add_entry $current_file $current_module \
+		    $lineno $text
+		exp_continue
+	    }
+	    -re "^\[ \t\]+(\[^\r\n\]+)\r\n" {
+		set lineno "NONE"
+		set text $expect_out(1,string)
+		if { $current_module == "" } {
+		    fail "$testname (missing module)"
+		    return 0
+		}
+		if { $current_file == "" } {
+		    fail "$testname (missing filename)"
+		    return 0
+		}
+		_add_entry $current_file $current_module \
+		    $lineno $text
+		exp_continue
+	    }
+	    -re "^\r\n" {
+		exp_continue
+	    }
+	    -re "^$gdb_prompt $" {
+		# All done.
+	    }
+	    timeout {
+		fail "$testname (timeout)"
+		return 0
+	    }
+	}
+
+	pass $testname
+	return 1
+    }
+
+    # Check that the header held in _header matches PATTERN.  Use
+    # TESTNAME as the name of the test, or create a suitable default
+    # test name based on the last command.
+    proc check_header { pattern { testname "" } } {
+	variable _header
+	variable _last_command
+
+	if { $testname == "" } {
+	    set testname "$_last_command: check header"
+	}
+
+	gdb_assert {[regexp -- $pattern $_header]} $testname
+    }
+
+    # Check that we have an entry in _entries matching FILENAME,
+    # MODULE, LINENO, and TEXT.  If LINENO is the empty string it is
+    # replaced with the string NONE in order to match a similarly
+    # missing line number in the output of the command.
+    #
+    # TESTNAME is the name of the test, or a default will be created
+    # based on the last command run and the arguments passed here.
+    #
+    # If a matching entry is found then it is removed from the
+    # _entries list, this allows us to check for duplicates using the
+    # check_no_entry call.
+    proc check_entry { filename module lineno text { testname "" } } {
+	variable _entries
+	variable _last_command
+
+	if { $testname == "" } {
+	    set testname \
+		"$_last_command: check for entry '$filename', '$lineno', '$text'"
+	}
+
+	if { $lineno == "" } {
+	    set lineno "NONE"
+	}
+
+	set new_entries [list]
+
+	set found_match 0
+	foreach entry $_entries {
+
+	    if {!$found_match} {
+		set f [lindex $entry 0]
+		set m [lindex $entry 1]
+		set l [lindex $entry 2]
+		set t [lindex $entry 3]
+		if { [regexp -- $filename $f] \
+			 && [regexp -- $module $m] \
+			 && [regexp -- $lineno $l] \
+			 && [regexp -- $text $t] } {
+		    set found_match 1
+		} else {
+		    lappend new_entries $entry
+		}
+	    } else {
+		lappend new_entries $entry
+	    }
+	}
+
+	set _entries $new_entries
+	gdb_assert { $found_match } $testname
+    }
+
+    # Check that there is no entry in the _entries list matching
+    # FILENAME, MODULE, LINENO, and TEXT.  The LINENO and TEXT are
+    # optional, and will be replaced with '.*' if missing.
+    #
+    # If LINENO is the empty string then it will be replaced with the
+    # string NONE in order to match against missing line numbers in
+    # the output of the command.
+    #
+    # TESTNAME is the name of the test, or a default will be built
+    # from the last command run and the arguments passed here.
+    #
+    # This can be used after a call to check_entry to ensure that
+    # there are no further matches for a particular file in the
+    # output.
+    proc check_no_entry { filename module { lineno ".*" } \
+			      { text ".*" } { testname "" } } {
+	variable _entries
+	variable _last_command
+
+	if { $testname == "" } {
+	    set testname \
+		"$_last_command: check no matches for '$filename', $lineno', and '$text'"
+	}
+
+	if { $lineno == "" } {
+	    set lineno "NONE"
+	}
+
+	foreach entry $_entries {
+	    set f [lindex $entry 0]
+	    set m [lindex $entry 1]
+	    set l [lindex $entry 2]
+	    set t [lindex $entry 3]
+	    if { [regexp -- $filename $f] \
+		     && [regexp -- $module $m] \
+		     && [regexp -- $lineno $l] \
+		     && [regexp -- $text $t] } {
+		fail $testname
+	    }
+	}
+
+	pass $testname
+    }
+}
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.20191203/gdb/thread.c ./gdb/thread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/thread.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/thread.c	2019-12-10 01:49:27.000000000 +0000
@@ -1818,6 +1818,8 @@ thread_apply_command (const char *tidlis
 static void
 taas_command (const char *cmd, int from_tty)
 {
+  if (cmd == NULL || *cmd == '\0')
+    error (_("Please specify a command to apply on all threads"));
   std::string expanded = std::string ("thread apply all -s ") + cmd;
   execute_command (expanded.c_str (), from_tty);
 }
@@ -1827,6 +1829,8 @@ taas_command (const char *cmd, int from_
 static void
 tfaas_command (const char *cmd, int from_tty)
 {
+  if (cmd == NULL || *cmd == '\0')
+    error (_("Please specify a command to apply on all frames of all threads"));
   std::string expanded
     = std::string ("thread apply all -s -- frame apply all -s ") + cmd;
   execute_command (expanded.c_str (), from_tty);
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.20191203/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.20191203/gdb/unittests/filtered_iterator-selftests.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/unittests/filtered_iterator-selftests.c	2019-12-10 01:49:27.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.20191203/gdb/unittests/tui-selftests.c ./gdb/unittests/tui-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/unittests/tui-selftests.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/unittests/tui-selftests.c	2019-12-10 01:49:27.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.20191203/gdb/utils.h ./gdb/utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/utils.h	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/utils.h	2019-12-10 01:49:27.000000000 +0000
@@ -571,17 +571,18 @@ extern void copy_bitwise (gdb_byte *dest
 			  const gdb_byte *source, ULONGEST source_offset,
 			  ULONGEST nbits, int bits_big_endian);
 
-/* A fast hashing function.  This can be used to hash strings in a fast way
+/* A fast hashing function.  This can be used to hash data in a fast way
    when the length is known.  If no fast hashing library is available, falls
-   back to iterative_hash from libiberty.  */
+   back to iterative_hash from libiberty.  START_VALUE can be set to
+   continue hashing from a previous value.  */
 
 static inline unsigned int
-fast_hash (const char* str, size_t len)
+fast_hash (const void *ptr, size_t len, unsigned int start_value = 0)
 {
 #ifdef HAVE_LIBXXHASH
-  return XXH64 (str, len, 0);
+  return XXH64 (ptr, len, start_value);
 #else
-  return iterative_hash (str, len, 0);
+  return iterative_hash (ptr, len, start_value);
 #endif
 }
 
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.20191203/gdb/valarith.c ./gdb/valarith.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/valarith.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/valarith.c	2019-12-10 01:49:27.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.20191203/gdb/valprint.c ./gdb/valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/valprint.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/valprint.c	2019-12-10 01:49:27.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.20191203/gdb/value.c ./gdb/value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/value.c	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/value.c	2019-12-10 01:49:27.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.20191203/gdb/value.h ./gdb/value.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/gdb/value.h	2019-12-03 01:49:16.000000000 +0000
+++ ./gdb/value.h	2019-12-10 01:49:27.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.20191203/include/ChangeLog ./include/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/include/ChangeLog	2019-12-03 01:49:16.000000000 +0000
+++ ./include/ChangeLog	2019-12-10 01:49:27.000000000 +0000
@@ -1,3 +1,18 @@
+2019-12-10  Alan Modra  <amodra@gmail.com>
+
+	PR 24960
+	* dis-asm.h (disassemble_free_target): Declare.
+
+2019-12-10  Alan Modra  <amodra@gmail.com>
+
+	* dis-asm.h (struct disassemble_info): Delete insn_sets.
+	(INIT_DISASSEMBLE_INFO_NO_ARCH): Don't define.
+
+2019-12-05  Jan Beulich  <jbeulich@suse.com>
+
+	* opcode/aarch64.h (AARCH64_FEATURE_CRYPTO): Expand to the
+	combination of AES and SHA2.
+
 2019-11-25  Alan Modra  <amodra@gmail.com>
 
 	* coff/ti.h (GET_SCNHDR_SIZE, PUT_SCNHDR_SIZE, GET_SCN_SCNLEN),
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.20191203/include/dis-asm.h ./include/dis-asm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/include/dis-asm.h	2019-12-03 01:49:16.000000000 +0000
+++ ./include/dis-asm.h	2019-12-10 01:49:27.000000000 +0000
@@ -78,11 +78,6 @@ typedef struct disassemble_info
   enum bfd_endian endian;
   /* Endianness of code, for mixed-endian situations such as ARM BE8.  */
   enum bfd_endian endian_code;
-  /* An arch/mach-specific bitmask of selected instruction subsets, mainly
-     for processors with run-time-switchable instruction sets.  The default,
-     zero, means that there is no constraint.  CGEN-based opcodes ports
-     may use ISA_foo masks.  */
-  void *insn_sets;
 
   /* Some targets need information about the current section to accurately
      display insns.  If this is NULL, the target disassembler function
@@ -330,7 +325,10 @@ extern disassembler_ftype disassembler (
 
 /* Amend the disassemble_info structure as necessary for the target architecture.
    Should only be called after initialising the info->arch field.  */
-extern void disassemble_init_for_target (struct disassemble_info * dinfo);
+extern void disassemble_init_for_target (struct disassemble_info *);
+
+/* Tidy any memory allocated by targets, such as info->private_data.  */
+extern void disassemble_free_target (struct disassemble_info *);
 
 /* Document any target specific options available from the disassembler.  */
 extern void disassembler_usage (FILE *);
@@ -394,9 +392,6 @@ extern void init_disassemble_info (struc
 /* For compatibility with existing code.  */
 #define INIT_DISASSEMBLE_INFO(INFO, STREAM, FPRINTF_FUNC) \
   init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-#define INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC) \
-  init_disassemble_info (&(INFO), (STREAM), (fprintf_ftype) (FPRINTF_FUNC))
-
 
 #ifdef __cplusplus
 }
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.20191203/include/opcode/aarch64.h ./include/opcode/aarch64.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/include/opcode/aarch64.h	2019-12-03 01:49:16.000000000 +0000
+++ ./include/opcode/aarch64.h	2019-12-10 01:49:27.000000000 +0000
@@ -45,7 +45,6 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_FEATURE_V8	0x00000001	/* All processors.  */
 #define AARCH64_FEATURE_V8_2	0x00000020      /* ARMv8.2 processors.  */
 #define AARCH64_FEATURE_V8_3	0x00000040      /* ARMv8.3 processors.  */
-#define AARCH64_FEATURE_CRYPTO	0x00010000	/* Crypto instructions.  */
 #define AARCH64_FEATURE_FP	0x00020000	/* FP instructions.  */
 #define AARCH64_FEATURE_SIMD	0x00040000	/* SIMD instructions.  */
 #define AARCH64_FEATURE_CRC	0x00080000	/* CRC instructions.  */
@@ -103,6 +102,9 @@ typedef uint32_t aarch64_insn;
 #define AARCH64_FEATURE_SVE2_SM4		0x000000200
 #define AARCH64_FEATURE_SVE2_SHA3	0x000000400
 
+/* Crypto instructions are the combination of AES and SHA2.  */
+#define AARCH64_FEATURE_CRYPTO	(AARCH64_FEATURE_SHA2 | AARCH64_FEATURE_AES)
+
 /* Architectures are the sum of the base and extensions.  */
 #define AARCH64_ARCH_V8		AARCH64_FEATURE (AARCH64_FEATURE_V8, \
 						 AARCH64_FEATURE_FP  \
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.20191203/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/md5.sum	2019-12-03 01:53:58.000000000 +0000
+++ ./md5.sum	2019-12-10 01:53:37.000000000 +0000
@@ -2,7 +2,7 @@ a657821f65bab77f4fbf3a75cdee6da9  ar-lib
 9404e13ea7b152453c548082da92b8da  bfd/cpu-pru.c
 deb393f679e2cb9d8afcf5d8f94ef4d5  bfd/tekhex.c
 c6f2335d823903da573f827b8c5d8290  bfd/reloc.c
-deab5899cc3961c62a5d237f9f1d8192  bfd/dwarf2.c
+b1aadeb5a4365caf0125f7f54ef7c240  bfd/dwarf2.c
 2f4f0e5bdcd60849e8038ac3045b33ec  bfd/libbfd.h
 8b8a453da673107291f4754c544a2ebe  bfd/cpu-nds32.c
 fb32050ffb28a5c4858c29991be30938  bfd/vaxnetbsd.c
@@ -36,7 +36,7 @@ a8bf329c24203303d1343c3eed58c07b  bfd/el
 5cb0eef365977eb8c7430c04738a9e2c  bfd/wasm-module.c
 ce93ef6cd4c0ba0799b9d6d75b36638a  bfd/elf64-mips.c
 c4d082a9c0c27456afe3357c4987b675  bfd/cpu-m9s12x.c
-ce68f762e76f6a32ba10248ae1a56a79  bfd/version.h
+3f6476259991df361c310ca5d5863d34  bfd/version.h
 f635e95e06957e744083b2160029e168  bfd/cpu-tilegx.c
 f2af796af1efd1971472837a26010b6f  bfd/coff-mcore.c
 89637e92fbef834ef0c545805106bcc4  bfd/cpu-avr.c
@@ -109,7 +109,7 @@ d86e0e4100a7bd9dadceadd1e4d9a175  bfd/hp
 b492fefb50386669e07ff028379c2801  bfd/elf-bfd.h
 2aeedee8927595bec83bf600ce9a405c  bfd/mach-o-target.c
 fcbbbeeb235fcaa81d3253c7000bb0ae  bfd/elf-strtab.c
-3c9aa173f68337f903597e964a2b7b2f  bfd/peXXigen.c
+417ecd118f1a13a4159345560fa26b5c  bfd/peXXigen.c
 06c8428cc4a55ada8601e8ef4ffb24bd  bfd/simple.c
 b967a433433ae3829243f460e1dbfa3f  bfd/pe-x86_64.c
 9fc873fbf603255dbcaed016ebd095f4  bfd/init.c
@@ -173,7 +173,7 @@ bbcba73fa5056239bb44500e9ec00d90  bfd/ci
 3419b03546d9c8690ec02c4e0d6e07bb  bfd/elf32-wasm32.c
 f429a221c87ad5751721df36245fba7a  bfd/cpu-i386.c
 ed6baa180c313066fcaf71503df9156f  bfd/rs6000-core.c
-57d01ff4b5ed1debb233c8c75e051f2d  bfd/elf-eh-frame.c
+f238056ba921d8d82efe67f75f0e9749  bfd/elf-eh-frame.c
 7c747b42264a2a2f5b18c5e346c3f9ff  bfd/netbsd.h
 a6e415e05baf84511c3d62d58056870f  bfd/elf32-hppa.h
 97996874ca7c27a7fc1311616e406158  bfd/elf32-rx.h
@@ -323,7 +323,7 @@ d6bd4f6d0c2627b13c05ef7cb49b2d7d  bfd/el
 5fe07072b4e42cbce08a02876952cb71  bfd/elf32-m68hc12.c
 05cedb42f6a9cc65a191a092e591bf32  bfd/elf32-m32c.c
 8f7b5397a7bb5d502a9997e19d244cea  bfd/ChangeLog-2014
-3fccb7e7678bbcefc786b8260781b61b  bfd/elflink.c
+d380bb7436faf3e33529d6b594073a98  bfd/elflink.c
 784c80a5abc1b2693d0a0f8438e82545  bfd/elf32-iq2000.c
 506e4cf89b13520b65527de435f6e4b4  bfd/arc-plt.def
 0dcd615606a2ea2fdc30b601c1e9d7bc  bfd/elf-hppa.h
@@ -403,7 +403,7 @@ bf3124212f297f533195226f5574c9d1  bfd/el
 4f64387cc2f68f7f980105d0a6443858  bfd/elfxx-ia64.h
 72fd73fc0277b8c62634baabecbda132  bfd/elf32-or1k.c
 968eb947c31825340e4d7b98a8896ec4  bfd/targets.c
-436432cde9589983a1daea57279889b5  bfd/ChangeLog
+3bce650c3005a4eea4b262ed11feb141  bfd/ChangeLog
 9c32275c313835ee61d8589d518f660b  bfd/section.c
 2fddd07f100af0551285d028f9fe8eb0  bfd/elf-s390-common.c
 07d1c3689bb0c5e5b6d5dfce7aee122e  bfd/elf32-lm32.c
@@ -722,7 +722,7 @@ aabc0e3af9169d4298ca70c709f97494  gdb/pp
 440ee11435de5ec90320b04f5a7bc2e2  gdb/charset-list.h
 425ba96cd44e77192fff951906a6acc6  gdb/m2-lang.c
 4059bdae2cb8752e4cd11edd7c1b1e07  gdb/target-float.h
-edc1e5f8741a05461314b520f077f176  gdb/corelow.c
+ed569e84c07211d1f97c847c8440314a  gdb/corelow.c
 4c8af26a9d9474284d6b5c5e6284543b  gdb/ppc-linux-tdep.h
 9fa0e1a75ea46cb1b721a15b772c6c63  gdb/dwarf2-frame-tailcall.h
 349b188907736d3ac349e30e509f4e37  gdb/ChangeLog-1996
@@ -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
@@ -756,7 +756,7 @@ f58a6ef9094881fb0797296e47d6358a  gdb/i3
 02e431732534d52ead450b6d33a6ebba  gdb/maint.h
 c53d011c44de38f7035cdc4592a6c648  gdb/microblaze-linux-tdep.c
 3883017d85f3d418e11b1e486c651f83  gdb/unwind_stop_reasons.def
-15d7db35557a6abedb31d14f59624d51  gdb/bcache.h
+270a9f5aad16278236d04147afdf278b  gdb/bcache.h
 3724de6d692ecabe045b076296ce0a98  gdb/objfile-flags.h
 f8eeb7d8ca92555d4f09fc6e25ff33f6  gdb/ui-style.c
 b27dfa5b4181f6b8684d3bbea927cb80  gdb/contrib/expect-read1.c
@@ -776,24 +776,24 @@ 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
+4779b1ab4581745256ef253d157db1f7  gdb/gdbtypes.h
 a3e2eab3f675ede38d26697497bc0000  gdb/sim-regno.h
 e6441bf52ce0c783b9536b4cede70f4e  gdb/mips64-obsd-tdep.c
 08cfa0e1d1851e99aae2024bcf989b74  gdb/ia64-libunwind-tdep.c
 161075dc6935d2df14e3616460c60d25  gdb/rs6000-aix-tdep.c
-5b7d600fa479574abbf7c34722f49b28  gdb/macrotab.c
+4208d961a8455c6c3d06cae96636537f  gdb/macrotab.c
 5c1eb5863bd908ee8d3cbc89841b2329  gdb/rust-lang.h
 eea46dc745ad41c3c792bcd632b2fc18  gdb/agent.c
 526536cf30b137dcebfaaa604fa55615  gdb/ChangeLog-1994
 88c0a5cd6f2bd1d113bd928936920300  gdb/arm-pikeos-tdep.c
 bd7b80cd16fe95f7d70ee3876305b201  gdb/d-lang.c
 7f6cc2f509fd17f4780e9b03dde00a41  gdb/linux-fork.c
-9587a8be16fdf38a1c5a056915fc73fd  gdb/m2-exp.y
+65e6d2a25af4b93110f05934321bf4e2  gdb/m2-exp.y
 d4eb68544b7474a5c136d55a38682934  gdb/f-lang.h
 a9b71fd14417841a731468b55136751a  gdb/gdb-gdb.py.in
 3a923c24c03a9bac1a42b92120033e3c  gdb/hppa-obsd-nat.c
@@ -823,7 +823,7 @@ aaba5be6cbb9d783df71def1db3822c3  gdb/xt
 4b9f990273ead540d6b8b11096660791  gdb/python/py-continueevent.c
 462e4f315910547a4ebbd3646fe10d58  gdb/python/py-all-events.def
 b554d6dbf7d78fc2c1e36c5c8b99f2ba  gdb/python/python-internal.h
-0ddb322f5ecb882b38456dac79a7b06c  gdb/python/py-xmethods.c
+02825154a68075a33e80741312fce3b8  gdb/python/py-xmethods.c
 2d1990d20250dd72326a2034eb7be4a3  gdb/python/py-objfile.c
 95f50024400b7ed6e668eabb26d80e03  gdb/python/py-event.h
 d9b1e78876f51bedd9c157159bace883  gdb/python/py-event-types.def
@@ -833,7 +833,7 @@ af27a6ac111aabb8ce2d8f62be70de87  gdb/py
 da72f3e4b78c8b52f9580c1312ccd5f2  gdb/python/py-value.c
 87c569f54eb5bdb4a5eae09dedc956e6  gdb/python/py-unwind.c
 5b9897306f45fae728fe16a32773e371  gdb/python/py-instruction.h
-dd3a51843810d9859dc54a5011f68e2b  gdb/python/py-type.c
+345696b34511d34a7e0ca58b78084e66  gdb/python/py-type.c
 612dbc0908526ebef59ac45876ebb118  gdb/python/py-evtregistry.c
 ea11c0d816513c55610db76cd858b9e0  gdb/python/py-utils.c
 5923213c77e253dd90b80cdb2e6ee16a  gdb/python/py-linetable.c
@@ -878,7 +878,7 @@ a4924125913c496d495ae2e685e139c4  gdb/py
 19b481f913074a213b2dd1164bb58a1d  gdb/python/py-stopevent.c
 1e0f6a7364c21c01ec4134915e064a0d  gdb/python/python.h
 f1042d8229b84413ea2487c3c6ba6e40  gdb/python/py-signalevent.c
-ba859ead70990006fc90e0b42b4bcb61  gdb/python/py-breakpoint.c
+8f6f9599f5388eef9bcf4d54c0861de1  gdb/python/py-breakpoint.c
 d262230254a03b37628d51ce9dd07956  gdb/python/py-newobjfileevent.c
 45407a8f22e38332b27fbcfd47e34ac3  gdb/python/py-param.c
 1f4e9c6528d73fba26a0a374db1023f2  gdb/python/py-varobj.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
@@ -1025,7 +1025,7 @@ ce9e4d25454b0aa061b6e7ba88a24331  gdb/cl
 cd657a4e8ed2d45e7bd6bac5a702c10c  gdb/cli/cli-utils.c
 09304ec3c1277123e9d2beff2a20863c  gdb/cli/cli-option.h
 00f89ff2b81028c32352996aa07f7b4f  gdb/copyright.py
-e028b7abe14710c81376c8dba0e7174b  gdb/cp-namespace.c
+32fb805dd705a07bbaba10b9a38bb445  gdb/cp-namespace.c
 21b85dc2ed09d1125c8ab4fbdb043c7a  gdb/notify.defs
 82899e567314d0cadf3c96f25d6548eb  gdb/bsd-uthread.h
 04a81d92a29c02f77e16049f1b9c05ba  gdb/inferior.h
@@ -1035,7 +1035,7 @@ e028b7abe14710c81376c8dba0e7174b  gdb/cp
 0658d32a1f1c82c01c24cc55cca65d34  gdb/valprint.h
 0110a020b84a78ca16939ce417bf9caf  gdb/amd64-fbsd-nat.c
 ef066d07ce477b1c1eacd6ca754bb7a8  gdb/ravenscar-thread.h
-5428f48895880bce0f5531497de5acc0  gdb/objfiles.h
+aaa82b382f9fc70dc98b25237dc5f652  gdb/objfiles.h
 429546b995763d93b68e72b3c3e0b543  gdb/reply_mig_hack.awk
 0affd1e5b89d0a34bd8be605a4c4c42e  gdb/nto-tdep.h
 24096aca3294cab3717506c2c69a7272  gdb/msg_reply.defs
@@ -1060,7 +1060,7 @@ a6611d644d27479184db42627778c689  gdb/co
 cc4a8d780d09dfb64ad4a3f9e65f97ce  gdb/README
 726c7279928f259999c506ca13b9cd8d  gdb/riscv-fbsd-tdep.h
 ee4a61e6937e01529f64a6d89f2f4613  gdb/fbsd-nat.h
-cdea5d6f9bac90f1cc2253a8ac6588c5  gdb/inferior.c
+b51b16d9d2a7a5d1419300d404e22537  gdb/inferior.c
 cf4bf55d52b3fd322e1e505aa0676578  gdb/mips-tdep.c
 85bb40c5d02876059100091fbfff9353  gdb/solib-dsbt.c
 bbcb64a09dc92b845d1b65dca6426240  gdb/minsyms.c
@@ -1149,18 +1149,18 @@ e3eacfa14bfda41e07058fd6c5cabdc6  gdb/da
 7653d011da75c74a03bc1604dca44ac9  gdb/ada-typeprint.c
 e432650f349837ea0344c360fdbc4092  gdb/sparc64-nbsd-tdep.c
 f971d36e35ec0c3fce64b819d7891f15  gdb/ChangeLog-1993
-f9cc8b094bb2d94a31214e353808d959  gdb/regcache.c
-1cf32c1dc17ab8f2a21e63ce12ecb109  gdb/thread.c
+97cf02bb61361edc782a95cfc85a6deb  gdb/regcache.c
+7df96f040c2f0143864fda00b9dc1360  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
 aa2a7f6fd9f90abd11c4788816931fa6  gdb/i386-sol2-tdep.c
 f0f0f42873330be830a2ed8ee825e2bc  gdb/frame.h
-cf7a4b2f598a72e543dd03779502a87f  gdb/darwin-nat.c
+79ff19cc2bac7ab2a7435c28252656d3  gdb/darwin-nat.c
 cd48a447305aa41ba9525cdf1cdbc876  gdb/symfile-debug.c
-4ab35895f5bcfd25d8b616d20cc13f2a  gdb/stack.c
+bd803d570c171081a07a26dc11df213a  gdb/stack.c
 dceecd1f6b79c70b072c20fe1322e39f  gdb/ser-tcp.c
 aef891e489ec61945aa539060447dd83  gdb/vax-tdep.h
 923e62f97e0d12603992f06db4646984  gdb/ptrace.m4
@@ -1175,16 +1175,16 @@ 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
 fe457323b648ee915db69d8eca7fe933  gdb/gnu-v2-abi.c
-2de51d4fc608e690e8089edf45526f70  gdb/block.c
+524a2a1e6b6bf6c3054823af9373b275  gdb/block.c
 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
@@ -1197,7 +1197,7 @@ aa0a6e756d88ffde87f7fde6b143b292  gdb/co
 b08fe1e6c3db19cb8a9ac1d4d56caa2d  gdb/observable.h
 3f2670e44833c7cd879bc3e6122fd045  gdb/x86-nat.h
 da569d364e8c66dc7bf7096eb628cf41  gdb/linux-thread-db.c
-ac248e274c2c760c953e346666672b33  gdb/c-exp.c
+8f4c8e42b584c88f0408af460d79aee4  gdb/c-exp.c
 06d80438c468e3b5e61b2dec2ae1d7ef  gdb/alpha-linux-nat.c
 cdaa654bddaff716531556c9f599dfd5  gdb/type-stack.h
 57bca29613546a9cbc8fcf5f847da7d9  gdb/ada-exp.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
-85962abafbd798d5844e26d6612346a5  gdb/psymtab.c
+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
@@ -1259,9 +1259,9 @@ ba791ae012c88482992494d24cfb73bd  gdb/gd
 45ec9abd1b2d4826e8e0f221a7f1474a  gdb/sentinel-frame.c
 e626c8d9e613c75ce8e3d3a606d2e89c  gdb/score-tdep.h
 7292a61746f040ef1b0503033e56bd9b  gdb/coff-pe-read.c
-b41211493d2874762ee48e4e202bb832  gdb/bcache.c
+cae5fb3c4bb703a86ed8f11863f16187  gdb/bcache.c
 e82e1a53dbb63d792fc8645192a4b2cb  gdb/gdb-gdb.gdb.in
-6de6b99fba813f41cfc34f9f3a3ee100  gdb/rust-exp.c
+a900d20b330fb8bb2bfe7b3275055a04  gdb/rust-exp.c
 3003aeb2f0a62020daf165042967653a  gdb/i386-linux-tdep.h
 0cc7848cb02c6994bce128c6dd8d9094  gdb/tui/tui-winsource.h
 4938d1612eed96c389ba7d89136a6fdb  gdb/tui/tui-stack.h
@@ -1298,7 +1298,7 @@ aa7596d6a9a59de31d516173c2f4b159  gdb/tu
 1c4827e1487d0d3852b24fc243af7a8f  gdb/target-dcache.h
 494954741fe33105057d00270b597a02  gdb/run-on-main-thread.h
 5c594f36a3a4c1cd26c04c565181c092  gdb/ui-file.c
-43b1580f440d14ab98d54191fc2ea29b  gdb/m2-exp.c
+5d63cb3e30e9762dac4754588d76817b  gdb/m2-exp.c
 b05d438c126e44cabe19eb5c84fc92cb  gdb/ser-base.h
 c815c1d921ff65e1fdbf9f40e1b5e2ad  gdb/progspace-and-thread.c
 3e6745ef821c3ffbc694130b72a06131  gdb/record-full.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
@@ -1512,7 +1512,7 @@ e5803325cf92401f3a7638513c2c4639  gdb/te
 4195d3718293b642b8ead0ca9e2e1448  gdb/testsuite/gdb.cp/nsusing.cc
 f6f98a1cd66f0c2a9e1be299c914bf47  gdb/testsuite/gdb.cp/align.exp
 0a1de27ae133d3d51404caa05c9c59e0  gdb/testsuite/gdb.cp/demangle.exp
-4a0a9e315ffbe1b96cb6583c0a15b9df  gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
+aee3eda71ea3781db5c61c32559f7c19  gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
 d6ed226431adc34de1f41f2c2bc2168a  gdb/testsuite/gdb.cp/overload.cc
 eec8d6f0d95309501de1537ecc22af8a  gdb/testsuite/gdb.cp/destrprint.exp
 5ab1dc11161266de97c8c541e83f9137  gdb/testsuite/gdb.cp/ref-params.exp
@@ -1692,7 +1692,7 @@ fa68c66356324fc27903bd0b487b5727  gdb/te
 5aa100b253777f14d000cbac2d0a5c31  gdb/testsuite/gdb.cp/namespace-nested-import.cc
 1b230ab8da1b477237f0e769d5bd1af3  gdb/testsuite/gdb.cp/operator.cc
 02176d52bd4fef7223ffe44feabf3540  gdb/testsuite/gdb.cp/minsym-fallback.cc
-151a1802f27cf24d16a5326d16d9ccf6  gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
+42af395c5b5371192f33d0df12c7febc  gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
 b4e27711f6e1b4b16df591b4acd7bdf1  gdb/testsuite/gdb.cp/hang3.cc
 feb819b43dbe4b5c8af03a9f050c6d04  gdb/testsuite/gdb.cp/virtbase.cc
 5eebbdbf1092b43b40e5ff4130959eb4  gdb/testsuite/gdb.cp/virtfunc.cc
@@ -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
+872507c4c1f23f5822186fd7eb936fcc  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
@@ -2003,7 +2003,7 @@ b4eaa369534fd4c330f78a6780626c09  gdb/te
 2e2ca1bae1e37f98845fbd35d2c3acdc  gdb/testsuite/gdb.python/py-pp-re-notag.py
 bbe8bc9b865b04727e82f703863090e3  gdb/testsuite/gdb.python/py-symbol-2.c
 71fb884e1d6f19d19bf280180654e3e6  gdb/testsuite/gdb.python/py-nested-maps.c
-1bd54f94f422a43cfe7d4e28a21b4197  gdb/testsuite/gdb.python/py-breakpoint.exp
+55065198c15aa990f9126e256125a3aa  gdb/testsuite/gdb.python/py-breakpoint.exp
 7a1fe7bb453c826dd5a20e18a4c9e673  gdb/testsuite/gdb.python/py-linetable.exp
 08872fa36c197ae5f6fac367439156c2  gdb/testsuite/gdb.python/py-bad-printers.c
 2201fe232be56f834518596b4f09f9ce  gdb/testsuite/gdb.python/py-frame.c
@@ -2071,7 +2071,7 @@ bece49873340ace23d604e46cd75def5  gdb/te
 0daea34f6f525761460b543ed91e3e76  gdb/testsuite/gdb.python/py-pp-re-notag.c
 5d1951b4374b57b77d91de116ff3b490  gdb/testsuite/gdb.python/py-pp-registration.exp
 886d921550c59d823537fe9eec26b04f  gdb/testsuite/gdb.python/py-section-script.c
-28e18a3617468429a2a4e53e878160f3  gdb/testsuite/gdb.python/py-breakpoint.c
+c29b171b06fda5786ef0dd9a7b443470  gdb/testsuite/gdb.python/py-breakpoint.c
 b25123940ce653c48d9e97417c31446e  gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
 054efd4f65de6cc6cf5910e85df9af17  gdb/testsuite/gdb.python/py-recurse-unwind.exp
 12eddaec271994a3c45169b097f6787c  gdb/testsuite/gdb.python/py-pp-registration.py
@@ -2557,6 +2557,7 @@ d179665fde046cbf9e0486d82f6faf50  gdb/te
 643e43ce4a1b53cd0c5202347923e097  gdb/testsuite/gdb.base/siginfo-addr.exp
 bbc18d088b883b68167dc47b3ef1c2c8  gdb/testsuite/gdb.base/relocate.exp
 ec99cffd123826f9f63acad45faf24df  gdb/testsuite/gdb.base/execution-termios.exp
+c762836584bf46fb056623fed6a88ac0  gdb/testsuite/gdb.base/corefile-buildid.c
 5fc616efdcf382b5c4ae8259d6b97e85  gdb/testsuite/gdb.base/large-frame.exp
 34f7fb309e611721df0de9687eb24d11  gdb/testsuite/gdb.base/gdb-sigterm.c
 aae2e2516df17b1886720814bbb28d1c  gdb/testsuite/gdb.base/symbol-alias.exp
@@ -2628,7 +2629,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
@@ -2685,6 +2686,7 @@ c8986c14d4112a6ed025e2195551a2e8  gdb/te
 e1bb584f3b0671072986952b4cd25a22  gdb/testsuite/gdb.base/info-shared-solib1.c
 f9310a059587f1a36cbbd9cedfb4fe75  gdb/testsuite/gdb.base/find.c
 acbf5cbbd8c3cb209ce83e906b45fe01  gdb/testsuite/gdb.base/func-ptrs.c
+ed32495df9b916c670434840327b768b  gdb/testsuite/gdb.base/corefile-buildid-shlib.c
 3c341b4c7797f3910629bec6d17b9bf8  gdb/testsuite/gdb.base/sigstep.exp
 942d57244ba1c8c0ea4f98950177c953  gdb/testsuite/gdb.base/argv0-symlink.exp
 15a87b4b3d993a80899b27d41b7d5dc7  gdb/testsuite/gdb.base/settings.c
@@ -2909,7 +2911,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
@@ -2955,6 +2957,7 @@ a5f24423099c976cfa89f67798c92e6b  gdb/te
 2b866eb6e084c3e6e0cf002297b95d85  gdb/testsuite/gdb.base/pr10179-a.c
 a1aafc06b957313c522de4c0c457d9d5  gdb/testsuite/gdb.base/line-symtabs.c
 67b2954cdfcf88aafa666bc0291262b5  gdb/testsuite/gdb.base/enum_cond.exp
+c7fdd518f44eb34ec83b361657c8562f  gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c
 7734d0bb83b8e0dc12a293a9db15cc2c  gdb/testsuite/gdb.base/pendshr.c
 c6ffdfba0f0ad86cd5ac3b28d94b4d5d  gdb/testsuite/gdb.base/exprs.exp
 2017a578eb9a9282a3d775e2c302b0be  gdb/testsuite/gdb.base/info-var-f1.c
@@ -3009,7 +3012,7 @@ cbca4021b81834df64f23994321f8658  gdb/te
 44d14e004dfe93f30e08d9dfe79a1835  gdb/testsuite/gdb.base/watch-vfork.exp
 0feec0a0e975168b7e6bb9d8f92a25b4  gdb/testsuite/gdb.base/noreturn-return.c
 0b4e499f872cfeaab21e0b173c718ca9  gdb/testsuite/gdb.base/lineinc1.h
-358c21963d6a28985745ce1f6b164a14  gdb/testsuite/gdb.base/frameapply.exp
+65011f8b35f81667b0304a7704bd3d91  gdb/testsuite/gdb.base/frameapply.exp
 aa0440e5086c8d58feedaef0af5fc0d4  gdb/testsuite/gdb.base/dprintf-next.c
 e97692b1e8aa59fb622c3636e877c35e  gdb/testsuite/gdb.base/shr1.c
 7de13b24548f6a29b1e84492b3f44b9f  gdb/testsuite/gdb.base/step-symless.c
@@ -3175,6 +3178,7 @@ b628f691880445bae3d464ccfc5d5f91  gdb/te
 63f8c4b52aa9552861675aa446f41d59  gdb/testsuite/gdb.base/sepsymtab.c
 439c9c43ed0a17d1908a37e7a1bc1aa0  gdb/testsuite/gdb.base/expand-psymtabs.exp
 75b9d014d3989d26c28f8b4bb1557f87  gdb/testsuite/gdb.base/restore.exp
+ff359f5a8f6b07bbff23f9bb15618f02  gdb/testsuite/gdb.base/corefile-buildid.exp
 8aad61c3a545c7df57784b0d27fe06df  gdb/testsuite/gdb.base/enumval.exp
 2a4aa59203d24147b833015285f9e825  gdb/testsuite/gdb.base/opaque1.c
 e7d4a34455ca6d3d13bb7d9b544c20c1  gdb/testsuite/gdb.base/linespecs.exp
@@ -3292,7 +3296,7 @@ eb1b11af62b865da0e1131c5c418b8e5  gdb/te
 5b4488b46dee8efd670abfdebe93e15d  gdb/testsuite/gdb.fortran/array-element.exp
 a1564a2c1d66cdbd4217c7c05a419ebc  gdb/testsuite/gdb.fortran/module.exp
 fda26f2bea70360a9c1abc10fd888605  gdb/testsuite/gdb.fortran/vla-history.exp
-e332c089e205284013b3fc5ce9455706  gdb/testsuite/gdb.fortran/info-types.exp
+f743748d249e12f2602327b342a2413a  gdb/testsuite/gdb.fortran/info-types.exp
 43e84b69e278b6cab6b7ba8e230addb6  gdb/testsuite/gdb.fortran/short-circuit-argument-list.f90
 e4632adc4901b89099a070569420467b  gdb/testsuite/gdb.fortran/vla-sizeof.exp
 89de9f1ea8d68ca58df32c1b36a3419e  gdb/testsuite/gdb.fortran/vla-datatypes.f90
@@ -3309,11 +3313,11 @@ a52244712b420c89de3d39536a18e14d  gdb/te
 23d5de4f34f6d0fc5fd33534baac6e63  gdb/testsuite/gdb.fortran/vla-sub.f90
 39bb8c8add5476e3ca38f5ee219ddb68  gdb/testsuite/gdb.fortran/common-block.f90
 894cd1c42cc4491dc48b6d6928e8575b  gdb/testsuite/gdb.fortran/exprs.exp
-a1eb647994f7aec7696a1bbb3cbb015e  gdb/testsuite/gdb.fortran/info-modules.exp
+b771a1093701cde85424d62e4de2d8e6  gdb/testsuite/gdb.fortran/info-modules.exp
 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
@@ -3325,7 +3329,7 @@ b8fd51c608bff4b3c1b2180ee1de0ac3  gdb/te
 4cc009298304e303844c11db9fa0f206  gdb/testsuite/gdb.fortran/module.f90
 edc2f85e3f302e8a2ebe0e1a3ea201d1  gdb/testsuite/gdb.fortran/library-module-main.f90
 cdb6a59c77c3a104db50c725d286ae28  gdb/testsuite/gdb.fortran/ptr-indentation.exp
-8f7f90a99fe0409329bf8ae816a3606f  gdb/testsuite/gdb.fortran/derived-type-striding.exp
+62d624e8b6546389015facd5ffd9318e  gdb/testsuite/gdb.fortran/derived-type-striding.exp
 55340b24db8533984926072168e714eb  gdb/testsuite/gdb.fortran/max-depth.f90
 da855aaa95733876e7cfa169ad01977c  gdb/testsuite/analyze-racy-logs.py
 6d64dbc77bf895960b91ea27023f1790  gdb/testsuite/gdb.btrace/vdso.exp
@@ -3401,7 +3405,7 @@ bfceab5c07e44efa3352eb9296dfa607  gdb/te
 02de0d315213441b525e8188d45baa2e  gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
 609645a0fe254d28ca4f38c0c567223c  gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
 077af012e972d3d4b51adeed9733bf43  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
-a4db0450a2b856d8ac7cff65f330d878  gdb/testsuite/gdb.dwarf2/imported-unit.exp
+846b13d534a7f0d84a3bebcfe3525018  gdb/testsuite/gdb.dwarf2/imported-unit.exp
 b37cafeac79671ac3889b4d748f803d4  gdb/testsuite/gdb.dwarf2/subrange.exp
 ec20c38b114576838578f500ea05b7fd  gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
 526715cab8abd8df7a548b4c5e8d3204  gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
@@ -3626,7 +3630,7 @@ f20450392941ec91f2bdf88ee73157a0  gdb/te
 261286880f14012a947686db1cf2d857  gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
 9413d614a82ea8a31593569668c01644  gdb/testsuite/gdb.dwarf2/watch-notconst.c
 8bfd91f66c2fdd8859c75ebe0f86c6c1  gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
-63fcf8039e8b320593fd1e3ce0a1f707  gdb/testsuite/gdb.dwarf2/varval.exp
+41c26b05caa1814fe2ea241ef8876bc6  gdb/testsuite/gdb.dwarf2/varval.exp
 ed0a15ff3cc30121f65c188809a7c109  gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
 99bee9618cc8cf3efae34b607602a8e7  gdb/testsuite/gdb.dwarf2/variant.exp
 c83967e85db3718566affa58c9fb460d  gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
@@ -4081,6 +4085,7 @@ b18f9c9b1f310ffe0298ec1b13f5d814  gdb/te
 2229bb11603ea3b0505514e3cc1c03d0  gdb/testsuite/lib/ada.exp
 b95dc2a351d65373861d5ccbc6f62d5c  gdb/testsuite/lib/opencl_kernel.cl
 955ce455baef4ea8405d2a9c324f36fc  gdb/testsuite/lib/compiler.c
+547bbf64fccfe8f8443d950bec310333  gdb/testsuite/lib/sym-info-cmds.exp
 3a88b98ce6c8c5d95fdd6b4c8984e2cb  gdb/testsuite/lib/pascal.exp
 3decac2fda2dfa0e19a40816183f065d  gdb/testsuite/lib/cl_util.c
 57805105071e24f65316f679f639df7a  gdb/testsuite/lib/range-stepping-support.exp
@@ -4092,7 +4097,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
@@ -4275,7 +4280,7 @@ ff8b646fd14d27e9192d922a83987306  gdb/te
 82962b92e540353c8a584d70bae20817  gdb/testsuite/gdb.threads/attach-into-signal.exp
 462a279b61a728340bc505bd2873f931  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
 fd28d9c559efa7def4dec225297041de  gdb/testsuite/gdb.threads/interrupted-hand-call.exp
-f03bb898d34f2b7ed0bdcea62e640c1e  gdb/testsuite/gdb.threads/pthreads.exp
+f295ad40ec1c3f1c32b950edf7fa9e2a  gdb/testsuite/gdb.threads/pthreads.exp
 093c6279466030c1bb91888ebabdd9f9  gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
 c10009079428641acf3c19959c3bff7f  gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
 ff5bdcfa74d17ba00d6c2cecfcdc2b2b  gdb/testsuite/gdb.threads/leader-exit.c
@@ -4449,7 +4454,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
+d99c6d97d02139c430af82a99786e6fe  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
@@ -4508,7 +4513,7 @@ e4d4db674514c0f5bdc218dde507d324  gdb/te
 80fcf02b29bf8ebfba0283103c18e370  gdb/testsuite/gdb.guile/scm-type.c
 64366a6f352ff8f611990c80180e6d30  gdb/testsuite/gdb.guile/types-module.exp
 16820bbf6bcc11f9137cce9c7f83897e  gdb/testsuite/gdb.guile/scm-section-script.exp
-1fe2d532477806d1cc242ec8705150cb  gdb/testsuite/gdb.guile/scm-breakpoint.exp
+3f64094f2eda84fead30ce54cbaf2691  gdb/testsuite/gdb.guile/scm-breakpoint.exp
 6ddecf28e0113958c6d6e541c138857c  gdb/testsuite/gdb.guile/scm-equal.exp
 3aa85f8710b5daa3b20bd3d252f894dd  gdb/testsuite/gdb.guile/scm-frame-inline.exp
 5218398a166be044915abe3c1233e16c  gdb/testsuite/gdb.guile/scm-pretty-print.scm
@@ -4531,7 +4536,7 @@ e383c73a2b546f73e913d56dbde92cfe  gdb/te
 06d36e423ae7e283c45cc049ea9dcc2f  gdb/testsuite/gdb.guile/scm-error.exp
 a2254a117757956fde444fe24338be10  gdb/testsuite/gdb.guile/scm-symtab.c
 41cf5792442917741ef07d7dc92cf5fd  gdb/testsuite/gdb.guile/scm-math.c
-4800813025294502f4dadfff435e2e40  gdb/testsuite/gdb.guile/scm-breakpoint.c
+aa20228db21553361f144f7ac5c4777f  gdb/testsuite/gdb.guile/scm-breakpoint.c
 b43d2d2db9da1be4557c14f8b23bbfa6  gdb/testsuite/gdb.guile/scm-cmd.exp
 fce56e09f6b6e71e0871530bd4f5c4c5  gdb/testsuite/gdb.guile/scm-symtab.exp
 3b6d0f129b6b44bcf7e98e76759a2e6e  gdb/testsuite/gdb.guile/scm-section-script.c
@@ -4629,6 +4634,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 +5003,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 +5285,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
-84073b5ef50f060fd68d13d8ac33f6f6  gdb/doc/gdb.info-3
-d281677c0e6daf9214670579c99354de  gdb/doc/gdb.info-4
+d525ffe5314ef04630cada54df13693e  gdb/doc/gdb.info-3
+bbe1a0d295a2017a0aa76eba8d8da541  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 5db562992b3f0178f803b66c2b2337fd  gdb/doc/Makefile.in
-8664b8af390c68001f064d8189d77414  gdb/doc/gdb.info-7
-c6462ef88d87bfed0271b06b82234268  gdb/doc/gdbserver.1
+039ca77797f764387a59832f05117060  gdb/doc/gdb.info-7
+3772ef2ae3303306603c80d2bdf22a8b  gdb/doc/gdbserver.1
 34e70c52a663f6a691f6ceb17e8b3e48  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 a07e6b7f88c558d15d03adeeaca94c74  gdb/doc/stabs.info
-42fcb7244425d5164637be54e19e8a95  gdb/doc/gdb.info-5
-c881da4f5fc65b37f872aa9b9722039d  gdb/doc/gdb.info-8
+014e00ad5a5d13f0c78df30722a7ede6  gdb/doc/gdb.info-5
+f33eebf73a7ea7738e94321cb15db07a  gdb/doc/gdb.info-8
 9137c9e47e1692b8efec8e28482aa6fb  gdb/doc/agentexpr.texi
 66674dc351ba95941f422dc18cae24bb  gdb/doc/.gitignore
-e64be871bc86365665ee2fd34a1eb2cf  gdb/doc/gdb.info-1
+ff833244b2cec8d786f939864301eb16  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-cbc0487d8ea7028d6b7a74002e644e93  gdb/doc/gdb.info-6
-c913592b2fb88d4c4788b3559213a0e8  gdb/doc/gdb.texinfo
-fdb5a88e0a2586032e9f9990e03632ca  gdb/doc/gdb-add-index.1
+113d5a83b056154137377d1df9cb7414  gdb/doc/gdb.info-6
+e56d1d100677e3f5949bacad8189c328  gdb/doc/gdb.texinfo
+6862a15786323978783d40d20f418510  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
-c0f569997de12da533fb34305cf42fab  gdb/doc/gdb.info-2
+a69f5066145d3a78441353a459cecdb5  gdb/doc/gdb.info-2
 fdd79e6125e56c1eb7e28b2a71d5b48e  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-e645e6ad3372f7f886939d9c1ed6cbe9  gdb/doc/gdb.info
+fda022f7d27464713ad4919165ad6317  gdb/doc/gdb.info
 8bb39bf41da6a03890e05a9ab1b373b9  gdb/doc/python.texi
 9927faec0d3464d1bc485cd0c69a4a46  gdb/doc/stabs.texinfo
-90f029c9cdc64ed39ea0be5f07f90b7e  gdb/doc/ChangeLog
-bd1a981830d9e1d39f78e9f2918f9ace  gdb/doc/gdb.1
-7396f7cf684032c7c4aa21487353fcbf  gdb/doc/gcore.1
+452fabbb30b88f1fc182fc8e5e31ba27  gdb/doc/ChangeLog
+b7b23c41e8510a22f983d219befce3bb  gdb/doc/gdb.1
+75595f9d460626b62f25ef82b09b2647  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
-fa7c6a0e79e457d3e68c981b4738ea32  gdb/doc/gdbinit.5
+8e28dddcdba02f130ad60a0abe2fd0fa  gdb/doc/gdbinit.5
 24d4f8b6396da16d9a8dd98281ac40ff  gdb/doc/Doxyfile-gdb-xref.in
 6f3b23a5f42aba8cbac1bcf7329942e4  gdb/doc/annotate.texinfo
 0b3e26fe6db92700f1e51071ff475193  gdb/doc/doxy-index.in
@@ -5348,13 +5357,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 +5372,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 +5382,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
@@ -5387,7 +5396,7 @@ f8ef1c4fdc043ed02cb189ab003d69de  gdb/ad
 8231b684b7d88405d04d2bef46a24822  gdb/ChangeLog-2004
 0262f02056540c63aa04699bbfe073ac  gdb/record-btrace.h
 6185dfd85d68e7154a5241d761f609ef  gdb/machoread.c
-bc3f59b86661961eb88aef7937fca1ae  gdb/printcmd.c
+77dc4682a7a5821dfb05eb67b9baf98d  gdb/printcmd.c
 3a6eb757ea7c63d8924d634edc88da51  gdb/serial.c
 81e6fc400bf5d122718f1170d2dbefb1  gdb/gcore.in
 981d4979b5631ccf25f92a2fc5ec7156  gdb/ser-go32.c
@@ -5408,7 +5417,7 @@ cc8d949a11ca64c3ccff8b7e92449d12  gdb/ti
 1818e224275234a88f51c541c8e468c2  gdb/infcall.h
 9ff17085439c0df277aa143916fbc52a  gdb/source.c
 e80bcdf714445215a7895be33ffe0f26  gdb/sparc64-linux-nat.c
-282b55eac069eb15c13cb719dbab4438  gdb/build-id.h
+1ae8477c065d0ca15f05d474010211d8  gdb/build-id.h
 d5e828332ce4825474128ed81a8c89f9  gdb/xcoffread.c
 f508fce11cec611605079e9bbdd0dc1c  gdb/valops.c
 652eeae5b48e928e984068969b0579d4  gdb/d-namespace.c
@@ -5421,7 +5430,7 @@ d3c3774037b52a130908c5b0e77b5519  gdb/in
 b09142fd95c99052976f2670e53006b6  gdb/frame-base.h
 e12e581d2911f2644ad6cf433c0e4a19  gdb/xml-syscall.c
 42df6d9f65c9d49a8f837dfca804db0b  gdb/symfile-mem.c
-40caf379d0c4a3b58be8d17cd0559729  gdb/c-lang.c
+9ef11c5e6f604046d5efb645a986efce  gdb/c-lang.c
 c2e44c70bb6c500907865666c02806d2  gdb/hppa-bsd-tdep.c
 13271d97270bcc25dd88f25432867e6e  gdb/typeprint.h
 0cc2bebe355d24d3412e8d657cf4a580  gdb/osabi.h
@@ -5430,16 +5439,16 @@ 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
 75ca7fe6f309387052fc7569ce70e8cf  gdb/cli-out.h
-27c4e332088f3d88f93eb0d5623b2b58  gdb/build-id.c
+623605b892158efe637140a3a194f8cb  gdb/build-id.c
 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,11 +5745,11 @@ 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
-8a6f71f47026a95c69b267dd37698ed2  gdb/breakpoint.c
+ae6f3c3512d0a701159a52d9a8685e76  gdb/breakpoint.c
 861fa9a99aade88112f84c01fb0a3d03  gdb/block.h
 c622629ce98d348a92a1d82095ac28ee  gdb/type-stack.c
 95ed11db0f3cb80ed86362e2b3d8b479  gdb/s390-tdep.h
@@ -5752,7 +5761,7 @@ ff2b2264d3bc2c96926dca89c1596eff  gdb/pr
 dce587078c693a6ff096e9ac8c76f247  gdb/maint.c
 c086e7b7f948f2285c1cbb4d6656689c  gdb/x86-bsd-nat.h
 a8282658401449c6beef61c9f36f145b  gdb/moxie-tdep.c
-c09840d78954327b5d5689faf68dd15c  gdb/gdbtypes.c
+e6c0df08f646157de09b7821e371f857  gdb/gdbtypes.c
 c5ffbe634b4abf2108700a75ba62aa0f  gdb/ppc-obsd-nat.c
 11e488d83e18c4036892ff4450937c16  gdb/mips-nbsd-nat.c
 8de7206d485292751ca31a6de7590c3b  gdb/elfread.c
@@ -5798,7 +5807,7 @@ a01c7b4b18efc22dbe5cc8662acf024c  gdb/fr
 d6f1771cf6ffce764f036d928cab89d9  gdb/c-varobj.c
 1e08e39cebf71d253881b63cd7f9c905  gdb/or1k-tdep.h
 552838669dd0cf8bc2ed20b7b2bb19cd  gdb/i386-tdep.c
-1376ee856127fd0fad6684d515c53056  gdb/symtab.c
+fd78e002f2385c16f1ec76f319ce2a70  gdb/symtab.c
 b8d75545442a0eb808e403ea02538a26  gdb/osabi.c
 d3170a8bbbd34d38a15902a5b596654d  gdb/m32r-linux-tdep.c
 840e0e0e830e2fd302199c92f049e9a5  gdb/inf-child.c
@@ -5815,7 +5824,7 @@ a30b3bcd800fc48da1db92bda3997d83  gdb/xm
 545feaf2e5f7058f4c0f5c7f783cfe0c  gdb/h8300-tdep.c
 3f2b067e9465033157280f313b6b21bd  gdb/extension-priv.h
 6204b5556c2197f43279ccac157be052  gdb/s390-linux-tdep.h
-a7cefd8a667b2f8669db7b3fa3a9485b  gdb/psymtab.h
+081b67211d770031ce4508f65f365047  gdb/psymtab.h
 adc0b8c9ed245cc83198b0c7eb183127  gdb/ui-style.h
 a88e31ebdc95dea2e182e90fa3596b09  gdb/varobj.c
 412413deb71791bf338df744b63b8778  gdb/alpha-linux-tdep.c
@@ -5827,10 +5836,10 @@ a88e31ebdc95dea2e182e90fa3596b09  gdb/va
 7242736b5bba9098c974d0e015b167a5  gdb/std-regs.c
 90d72be4c884a79ded08fa4fbbcb6b9b  gdb/go-lang.h
 9a1fd6216061720bf8556e23cf224721  gdb/i386-windows-nat.c
-80b6bb70b8e2bc0845e219872993941c  gdb/po/gdb.pot
+e0b6fc825fbdc7b1cd49f119c2524718  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 +5868,7 @@ e3e2430aebaf80b6aca6759cfa9612d4  gdb/nb
 0d4182edc7beb626c56d423668383a2b  gdb/i386-fbsd-nat.c
 094e893d632874e14e92917b8c57c5fd  gdb/mipsread.c
 d4e47464ef8b510c11c547fb163d603a  gdb/amd64-darwin-tdep.c
-100c1f6537f03b0d22e829c4087631a9  gdb/ChangeLog
+9619db76cc726c9d81b53b2622227100  gdb/ChangeLog
 2fd8f81fb260df7b31ffaaaa44e1d4b9  gdb/go-typeprint.c
 6bdae112ab8858c8b8eb3e32bc9b5b45  gdb/score-tdep.c
 170c97d0320940cea4fda1d1cb413687  gdb/xml-support.h
@@ -5913,7 +5922,7 @@ a086afe75c944455b65364d97f311063  gdb/bu
 0baa5eacc7f007963a9c7fc46ff0c233  gdb/target-descriptions.h
 e47d0045a9290ea002fc3da491cfee00  gdb/corefile.c
 490a02742eb8fb6a6ca024bf4b0e8959  gdb/x86-linux-nat.c
-9de6c0597a68018d17c7d91d2ace0c97  gdb/macrotab.h
+283bf2b9f35f1184f098c1eabf1fbc58  gdb/macrotab.h
 ba166849b3d810d87a0b74402fcdbf01  gdb/progspace.h
 071369803c3aba386e15e14a3328bf55  gdb/regformats/s390-tevx-linux64.dat
 44fa14e15b931dc63422873dc3a5aae1  gdb/regformats/nios2-linux.dat
@@ -5981,7 +5990,7 @@ b09b0ee5da44df728eb552f6bf6ed138  gdb/re
 7d521124886bd1a212ec6ac542743020  gdb/regformats/s390x-linux64.dat
 40ba412a0b4d6cebeef61c90e6f6629d  gdb/regformats/s390-linux64.dat
 5b7809bbc018af8b2c2bd6f0c2842351  gdb/arm-obsd-tdep.c
-354156abbb80805e167b0110e9280a1f  gdb/utils.h
+a589cf0552427bd2251d6feb9a7cf263  gdb/utils.h
 994725e6719c445fa7b173452d0f9507  gdb/sparc-sol2-tdep.c
 283a66ed511d8293555fdce4810e1873  gdb/procfs.c
 ea3a0339e53fcacc45f5b891634f3e2d  gdb/solib-svr4.h
@@ -6000,7 +6009,7 @@ d5fd1a463ba492ee6ae7caa6b8207281  gdb/gu
 3639cc67927df8213a2c908c9d0c8768  gdb/guile/scm-objfile.c
 651a5eb9533cc6fe61e7a427fe63dd72  gdb/guile/scm-frame.c
 520658d110ac7bd41fbd26e1ac81efa0  gdb/guile/README
-08530b6d5894435e7f4fcc784ddc2e46  gdb/guile/scm-type.c
+8789ac05f48349d1f82c2f04b57a6f32  gdb/guile/scm-type.c
 01d0bbff50d9a74ef9118d2e740959ea  gdb/guile/scm-exception.c
 4715e5449d0796762942e2800431caa2  gdb/guile/scm-safe-call.c
 b0af2c1fe8b7fbbb4114c41a5ca4a2c3  gdb/guile/scm-gsmob.c
@@ -6021,7 +6030,7 @@ ae9224513045924d7aec6d566cad38c0  gdb/gu
 057da3ef458b7124db7472f2b54aed8e  gdb/guile/scm-symtab.c
 1b131b5d43861fb2c33633496c247e55  gdb/guile/scm-math.c
 3527b95d88b2e65b4646a4327c43d11f  gdb/guile/guile.h
-4af73e6ba4efbae07ac8f2c43a750ca3  gdb/guile/scm-breakpoint.c
+874d02f5649798850b3242686bf559e3  gdb/guile/scm-breakpoint.c
 5e426a5d280ef49ec8b3bde901601bd3  gdb/guile/scm-value.c
 d50f7d9cca622c30d947ad66ad134ef9  gdb/guile/scm-pretty-print.c
 285f10e406912bf3ca175288545ff491  gdb/guile/scm-disasm.c
@@ -6197,7 +6206,7 @@ ab547fc523d932c710785acb1950e83c  gdb/st
 8edc014e1b5928dd9761408fa7df0d64  gdb/stubs/sparc-stub.c
 140d077412ae615053b55e8cd29dfee2  gdb/stubs/sh-stub.c
 c40e87506f597a7943c5276b857d0684  gdb/buildsym.c
-0b599e8e57d09a54a7a57a90fb0e82d8  gdb/breakpoint.h
+ffcc2e5b1bb083aa858f572a9e1c4b84  gdb/breakpoint.h
 61f1bf956c005df7b7782007cb41d4d5  gdb/objfiles.c
 336df5aa02e0c34ca27f7c40a8731e7b  gdb/debug.c
 91a2751fd55fc5eee28d4ff5ed905e4a  gdb/sol2-tdep.h
@@ -6226,7 +6235,7 @@ b2924c39a6d35cdeaa8ca3a87fb32e3c  gdb/te
 d54dab3401ff05ddaa799b4e58843913  gdb/macroexp.h
 b8469f2377649e6bd12fbbe0f8c750fd  gdb/m68k-linux-nat.c
 56fa350da5dd0b92207319c4723ec643  gdb/arm-nbsd-tdep.c
-79f0110d88dddbd62392dfb7a93750b1  gdb/rust-exp.y
+2a4f43c71b75e0118a78d79e18c38ab0  gdb/rust-exp.y
 364ac7eec90535c9f90c76392c0f92fe  gdb/linux-nat.c
 a589b8fa2d251d722fc439789006dbf3  gdb/producer.h
 473f33ba921545be6c0c70ad25c103f4  gdb/nds32-tdep.h
@@ -6235,7 +6244,7 @@ f2a08a5058f2f62a08f8e61839b7ac80  gdb/sh
 2e30eda3e044bbe5e6b89a9de95702aa  gdb/xml-syscall.h
 f6a8bc868aad0f7d193f9c2c12fb9b34  gdb/xtensa-linux-nat.c
 1f6b545be0b6822eca215d0b5f1edfc2  gdb/exc_request.defs
-30df27f118c2e1f0c0f989395985a4b2  gdb/c-exp.y
+201af9544cd23652fa3e314232b8557e  gdb/c-exp.y
 842c0bdb7f1e2a5b8906bd851148a72e  gdb/alpha-bsd-tdep.c
 8f5a03c189727d347a330548f3ea9c98  gdb/ChangeLog-1991
 c318ef7599f816722fa0bad86a1f0b34  gdb/amd64-nat.h
@@ -6260,7 +6269,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
@@ -6277,7 +6286,7 @@ b8361790d5bf10aa0a3a48493e9a2571  gdb/hp
 e9e5d7db42e70ecd65eaca5b56f4cb75  gdb/xstormy16-tdep.c
 43de4283edd0c940a9e8b13715c553e5  gdb/i386-obsd-tdep.c
 527a92f93c7693f095fbe432ab6ad918  gdb/ppc-nbsd-tdep.c
-557541777e1419c4062a504940ea0c62  gdb/stabsread.c
+c3549b407a0a26e20a3fd9528bd01df3  gdb/stabsread.c
 9fdafccecd6cd44751141b88f8908bb9  gdb/MAINTAINERS
 f47044c0373443bbd1b7db7d37d267a1  gdb/arm-fbsd-tdep.c
 684b3f8393021bcde657ce22c1fe785b  gdb/i386-bsd-nat.c
@@ -6289,7 +6298,7 @@ f47044c0373443bbd1b7db7d37d267a1  gdb/ar
 9182d056dfb72a75e131d2265247a45f  gdb/continuations.c
 87f51a66cf71a1a32d8b51d4555690a9  gdb/amd64-bsd-nat.c
 bb87c608ca2c65e1bd64d1f02f4c11d7  gdb/bfin-tdep.h
-ee1225032ba56ceb66c28d95b0b975ae  gdb/eval.c
+8bb4d998410a15e205dfe639e174fc8f  gdb/eval.c
 e1f6956f75e89e03b9209da5d22fb491  gdb/ui-out.c
 c5bb4c01723316a1fffafcc5afaa6d52  gdb/amd64-dicos-tdep.c
 df4034a9a8ac1a6ebb31e15d0dc142d3  gdb/sh-nbsd-tdep.c
@@ -6321,10 +6330,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 +6385,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 +6490,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 +6577,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
@@ -7006,7 +7016,7 @@ a8451cae07e1c3ddad3dd2d55428aaf9  includ
 bfc592a59cf0cdbc1a4131b602fdd37e  include/opcode/cr16.h
 1872437a775abb6769374009e02e0223  include/opcode/mips.h
 8a2aefad58c4456f06ed14b6d11c5141  include/opcode/np1.h
-505a7605fb429c10f4a36f66d7cd8cfa  include/opcode/aarch64.h
+631339f59083131a9f6d496d0e4fb613  include/opcode/aarch64.h
 91892bef65d868299ec34b488b4a171e  include/opcode/s12z.h
 42b6173dac586010dac4a5853e8ea569  include/opcode/pn.h
 e230b20031573fe683d55634f24ac595  include/opcode/ppc.h
@@ -7113,8 +7123,8 @@ ac5c6fe8de400c9792753b5db5b255d5  includ
 ae5154ba0c6bf41452c1e4e3938fde52  include/gdb/callback.h
 d3976907c9252ef4d60b9ac80987eafc  include/hashtab.h
 8673aa12a3493cb537f1220aa799b950  include/gcc-interface.h
-376c16497ba7c84416787274be8744bd  include/ChangeLog
-88586319cd45959f54a1776d5d769a05  include/dis-asm.h
+659b236c750a5b4fc1a277b4a621a4a7  include/ChangeLog
+97f05ae080143ddf6ff7fc58a26f07bd  include/dis-asm.h
 2e19107e7906229570c084b790923d48  include/splay-tree.h
 352ce75976e0a5970298d574ffdf743e  include/filenames.h
 a52df8b7759338542cfe73e56e69de97  include/symcat.h
@@ -7559,7 +7569,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
@@ -7573,7 +7583,7 @@ cd7f298ea8c90ece6d6636caa2663922  opcode
 5cda21d9ce150e4ad3e2c100d548990a  opcodes/epiphany-ibld.c
 c5c2b41393a7be2985845e58b6c53467  opcodes/m10200-opc.c
 c825caabde2126bbbc946b16fb98e72c  opcodes/arc-ext.c
-571df8ee9b230b640fdedbb34676186d  opcodes/or1k-dis.c
+91e23bfdf37c646e6c3aec223f321d86  opcodes/or1k-dis.c
 eefb6b283c1f5f324ddc347cb0c1c5e0  opcodes/m32c-asm.c
 7e97fdd557f57096066757c05ddd3999  opcodes/mcore-opc.h
 80f77954e03c43da64f82b89d9c3473e  opcodes/crx-opc.c
@@ -7581,7 +7591,7 @@ eefb6b283c1f5f324ddc347cb0c1c5e0  opcode
 4a4030d4da3dc16f1f677c97b76744b9  opcodes/Makefile.in
 574537d9972c9161d297dcfd7eca0282  opcodes/dep-in.sed
 1801462a3689707e6089fd618aa7be40  opcodes/m32r-desc.c
-9847f1cf7054293f2abe92bd43320c39  opcodes/microblaze-dis.c
+8b3ddd5133e7d6be31561bab3fd8115e  opcodes/microblaze-dis.c
 88fabb0ac5d44b14804ca51923e7180a  opcodes/nios2-opc.c
 566de13991bd0713e9b58e170e197e36  opcodes/xstormy16-desc.h
 6c78cb5fd62c165a8ae2eba0c6f317fc  opcodes/alpha-dis.c
@@ -7632,7 +7642,7 @@ ecc011ab263450df4c90156515e3e3e3  opcode
 5873d90c70d423548dfea27569c82865  opcodes/aarch64-opc-2.c
 5cd79bab2e3be29e79d6391f0be7da35  opcodes/fr30-opc.h
 dbd383d9a8cba4ee07270a0244966e8c  opcodes/m68k-opc.c
-20d19a5ef376d1784eb73bd23a4666e7  opcodes/m32c-dis.c
+f8aaaed8adc918ec92754712370b37a5  opcodes/m32c-dis.c
 43130c8fdf892ebedbb621b5010cdb56  opcodes/lm32-opc.c
 de5e932dd2f88ac5c2a0f1600bc06467  opcodes/makefile.vms
 1740f8cfbaa4123edf00b748d072b5ab  opcodes/h8300-dis.c
@@ -7665,8 +7675,8 @@ a2125e11b5dc97a1a70e480b5849bc5c  opcode
 f345d22e618784b582142c4817d7be03  opcodes/or1k-desc.c
 74ffe5f8ffe7786e93729c50f53aa7c1  opcodes/mep-opc.c
 3f27e5d03b2bbdae9ace18719d890ee7  opcodes/or1k-ibld.c
-c4acaa0a8f465b9367314ff6d724ad0f  opcodes/aarch64-tbl.h
-2c04d89fef4808c3a9f7c8442569fe4f  opcodes/epiphany-dis.c
+2616b3d6498b77a7b119c1b8ffc46dd7  opcodes/aarch64-tbl.h
+c4a01ac3a7bbcb19fb158d1f55b8632c  opcodes/epiphany-dis.c
 5d9eaad491c2454a0f4bd8e5e09ccae5  opcodes/pdp11-opc.c
 a53680ee35ecd26833d0155b16def898  opcodes/ChangeLog-2010
 5c0325665fea6f7ac350c2da238fca33  opcodes/lm32-opinst.c
@@ -7681,7 +7691,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,20 +7715,20 @@ 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
 4e6ec2c7f5ac51a0c6accd0d7268507c  opcodes/m32r-desc.h
 2e9da4352e621be7ea01ae505437718d  opcodes/xgate-opc.c
-58d0f8eaa5086ad1edf14d033d631da7  opcodes/ppc-dis.c
+d82f778486a2f3dad8ecc96f35afe6ae  opcodes/ppc-dis.c
 3b15094418dae0db7f120b454b9f47ba  opcodes/ia64-dis.c
 dc024d3b48a1df846b5ba8a9e3298ee9  opcodes/ft32-dis.c
 fa2e7775fb32f003537ff547c2d5bc7b  opcodes/z80-dis.c
 9f9ca231f303f26cc3b821b4a8fd9556  opcodes/tilegx-opc.c
 ce914fe9eed08941164781e2be28336b  opcodes/lm32-desc.c
-424e463343068b76fab4ab5ea38bb382  opcodes/xstormy16-dis.c
-0b37ada88ba8bbede8fe6f53c0306e55  opcodes/cgen-dis.in
+0de342db0b374e59ca6194ec8f3babc7  opcodes/xstormy16-dis.c
+97296566ea48acc07e4bb18906dce6e7  opcodes/cgen-dis.in
 491ce2b9d8011e43064bf96d1588e9c7  opcodes/mips-dis.c
 31362e43aab5733da5aa6b696822ec6a  opcodes/csky-dis.c
 39b7e834f46b8cf1879169b1f12c6ed3  opcodes/arc-regs.h
@@ -7731,7 +7741,7 @@ e90f5d03a7dd2d3bcf05962da4859f16  opcode
 9300bcc15a455fea2d4c7de9b64701aa  opcodes/or1k-opc.h
 d6cfc84911f97407c877e04595588cb5  opcodes/visium-dis.c
 1ded054093de910d9786c62bc4fe8cc6  opcodes/stamp-h.in
-a26f844e4d7213c8dc214f65b85466c6  opcodes/m32r-dis.c
+3ea3e635a3fab1b00949d21151da606a  opcodes/m32r-dis.c
 5b2aa21de3d58c9100b435d8ebbcdf65  opcodes/ia64-opc-a.c
 1bffa0774f1aa6079636b5bcefef8530  opcodes/score-opc.h
 438c4d03003e13dea319f84d29d8ff5a  opcodes/iq2000-desc.h
@@ -7747,7 +7757,7 @@ e07f158ef8a4325642192a58478181a8  opcode
 5eb782e20ab20691354ee292375b85bd  opcodes/ppc-opc.c
 28fb37aa7a8f837c00f28fa2617e090d  opcodes/d30v-dis.c
 6a7fc7a4fc6ea32798613e6ae5a00c29  opcodes/v850-dis.c
-59932f76a3ce1ba011678616a6871852  opcodes/mt-dis.c
+a8ccf732c1ab7a20608752490e0312e6  opcodes/mt-dis.c
 f4f7d155f29225a1a39bc5ba991d08f8  opcodes/i386-dis-evex-w.h
 b5c6b8bd0f1a6dd6ce064e362b47fb49  opcodes/ChangeLog-2016
 c5cefc6c55710567cc64c0a1a1100b9d  opcodes/ChangeLog-2014
@@ -7760,7 +7770,7 @@ d679d499a60c06d7cdb14aa5b211c0ec  opcode
 2e2a209db97e825ea60f38aa9071979d  opcodes/configure
 6cbf1fbb631097976d9c0c68bfe90387  opcodes/pj-opc.c
 237e54af83f0143bd2a6e7eb1b712eed  opcodes/bpf-desc.h
-4c2d4b7e53ddee31ba4b96db69eaad0e  opcodes/bpf-dis.c
+0dd1b3cfb652e0fe7672587cf0fefe33  opcodes/bpf-dis.c
 a6340db3e90d5c652c8c6e2462c101a0  opcodes/mep-opc.h
 aa3895af184ebb6d935b41fc89922e9e  opcodes/aclocal.m4
 dfb951b900a189002b3954ccb21c3ac4  opcodes/ia64-opc-d.c
@@ -7814,16 +7824,16 @@ f54be2e715ceb6cebb98fab5bc37e7db  opcode
 62a30cfb1b506ee2c3916ee13e9eda8a  opcodes/m10300-dis.c
 1b1854422db842d0dfa01c932a5f86ae  opcodes/nds32-opc.h
 713fb26f79662b078390d218dc5d977c  opcodes/aarch64-opc.h
-5bb5b3f562d541a5248446214557feb5  opcodes/ChangeLog
+90a02eed3f068f59429ad826609ee75b  opcodes/ChangeLog
 327cf11f5c08b578f3b0cdb7f3923280  opcodes/ia64-raw.tbl
-bd6d6d07bd75b0bc4ef5b8c67ca29532  opcodes/frv-dis.c
+aa7514b36d310f0d844b24155fa91b35  opcodes/frv-dis.c
 85afb5e9fa15ca375baadf5e1da1d13b  opcodes/aarch64-opc.c
 a0c6719f00408eb6e6075580e4d5a01a  opcodes/iq2000-ibld.c
 466aaf368e34323c679a1231a1255815  opcodes/dis-buf.c
 7979f0b0633dce05c5a59479d4ef6704  opcodes/s390-opc.txt
 f70ebbc0645dd4d36bcbfc84283e1790  opcodes/metag-dis.c
 cac154290bf824dbd9c8efb3b20ca6de  opcodes/m32r-opc.h
-b794e3f96605069a37ff9b2b70bb1f10  opcodes/mep-dis.c
+23f38d393554e090492f1bdacae99ae6  opcodes/mep-dis.c
 7d7d28737ff404f709104accbd7b7926  opcodes/ChangeLog-0203
 095033162e89f5f710ed6891dae375c7  opcodes/ia64-opc-x.c
 bc9cf729403d92b2815dc9c347b2cfe0  opcodes/mips-formats.h
@@ -7832,11 +7842,11 @@ bc9cf729403d92b2815dc9c347b2cfe0  opcode
 27d9c849353433d4e3fd10a76a6bc197  opcodes/frv-opc.h
 08c1c3f94b2e57654f2ef6a58fc7f5fa  opcodes/mt-asm.c
 04cbfc017d30a4828f33d6f5923ed4c8  opcodes/wasm32-dis.c
-141833764eabef4523c245ca3a57c975  opcodes/fr30-dis.c
+3de339ed6464a04fa4033ac06b5a4adc  opcodes/fr30-dis.c
 fd90d45321bd491542004915f1f35020  opcodes/i386-dis-evex.h
 27516f861e393d748f8fc2e352eb6b97  opcodes/arc-dis.h
 7390461b1a9ccc867bccec21fd69121a  opcodes/riscv-opc.c
-51395560752391d402b0bd2305a4e4a5  opcodes/xc16x-dis.c
+b1e27678214ec6733c0bacf20a3bb559  opcodes/xc16x-dis.c
 6ddcbd5446c1c731f798369c87951e2f  opcodes/epiphany-desc.c
 f7b8b18ab2b5f1cb03ab99b1cca821ef  opcodes/ChangeLog-2018
 9cfdae46f8255086bca20fbadd8892b0  opcodes/ia64-opc-f.c
@@ -7847,7 +7857,7 @@ f7b8b18ab2b5f1cb03ab99b1cca821ef  opcode
 db5af979acf8d7c971301b1ad9efaab1  opcodes/aarch64-asm.h
 58e924c52c2bfeef23d22c4f482edcfc  opcodes/ChangeLog-0001
 73db15620f2907676ab2d8923c6421c8  opcodes/rl78-decode.c
-cb8fdfa94a8fefb37113247f5e71a09e  opcodes/ip2k-dis.c
+9cfd19453ae2eb2dbba892557f512b50  opcodes/ip2k-dis.c
 16f3a170d6b704573bfd0788b4d1061e  opcodes/ChangeLog-2007
 e97749da9ab275b1746313452a10c86b  opcodes/nfp-dis.c
 9978b0ffb15f1ad48bc31816517ef965  opcodes/ChangeLog-2009
@@ -7871,7 +7881,7 @@ adc82b6da55150afc85422caac7c70cb  opcode
 adeaeade8ed2f992a18a9f086feb2284  opcodes/iq2000-asm.c
 b3fc6d39b8b8fc62a625e0649b1ef4b9  opcodes/aarch64-dis.c
 a3b3669c240344adf0664ca0c38cabcf  opcodes/epiphany-desc.h
-985609b5fa4099913abef3e148020e13  opcodes/disassemble.c
+524d5987e3e34a7f3f0136000e406214  opcodes/disassemble.c
 9d4adf3dfbfe2cfb10b8f2c0e86ebd68  opcodes/ip2k-desc.c
 48bd09ebbb27ea945bcea4aa1d4e8a80  opcodes/rx-decode.opc
 173bea22b3108dc0d46fc8a38d9ae33f  opcodes/MAINTAINERS
@@ -7892,17 +7902,17 @@ b0ca98da43e132fb38f0fb04258113e3  opcode
 332b132cc624651ca5dba866a879a304  opcodes/ip2k-opc.c
 bdabb101f1d0c544aef4513a77f1c32f  opcodes/sysdep.h
 e469ca05f8897c09344a3cf2bcbf4088  opcodes/tic30-dis.c
-c26d380e3665cbfb63d1c693bac8a506  opcodes/lm32-dis.c
+75148b05d124abf1cb8892f0c1bbdb0f  opcodes/lm32-dis.c
 ffd27e33415c11897a2b32d4253f8de3  opcodes/nds32-asm.h
 2b5a34a6f22860084dbe9ede9406cb6a  opcodes/xstormy16-asm.c
-ff7d90cadfedc2328d44829fca299eb7  opcodes/s12z-opc.c
+bb4577bc7f451e999f9560cffc60caca  opcodes/s12z-opc.c
 5375b7ee99c1c53b98e45888d2073260  opcodes/or1k-opc.c
 cc2157ffd475204b12be780a1e2683b8  opcodes/arc-ext.h
 9641b12f59bffc20c6bfbdfa700422ae  opcodes/i386-dis-evex-mod.h
 94f844a6e7ec8d1b7bb50e4282f01dfa  opcodes/csky-opc.h
 43510f6ba01d547fdac54a3c57eec613  opcodes/tic54x-opc.c
 f2218edb333177d243444b44a52f1954  opcodes/z8kgen.c
-bed4294704a95083f788a207484efa5f  opcodes/iq2000-dis.c
+0f9f03077699ca79b328ad137d948a9e  opcodes/iq2000-dis.c
 4dde640cda0b904d04364e9ad3801964  opcodes/frv-asm.c
 e6ff2779c4a5372ae18a4d5a49c31c69  readline/Makefile.in
 f8e5702e65a537e2c230a55b3740c5aa  readline/configure.ac
@@ -8152,7 +8162,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 +8183,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
@@ -12189,8 +12199,8 @@ b6e69eedb6360fc61b5d5bb482d202f1  sim/RE
 3ae304c0209434ae4e25d96e24881808  sim/arm/iwmmxt.h
 b477b716ac521b659f7837c5a7602fca  sim/arm/Makefile.in
 11df2e587b349a09a16286de5bbe3c56  sim/arm/thumbemu.c
-b000177b171279f3122f078ee33cf960  sim/arm/wrapper.c
-03701bfdfbd35ac30572fb81bc255b2a  sim/arm/armemu.c
+fe8b7037850e606e1ef981a446e93a8a  sim/arm/wrapper.c
+ec3d54ff8f131a8e1253fbc53b029782  sim/arm/armemu.c
 79b3f19a4a961715ed1b3fc266e073d6  sim/arm/config.in
 e7dd365f1ca1a58020c813d6e9369075  sim/arm/configure.ac
 a62a77605003de7a8ba75d8247fd77b7  sim/arm/README
@@ -12199,15 +12209,16 @@ c4ed795d8dc06d6f8eade00f7540db80  sim/ar
 1962b9f2ca398038033e6e62d5fa0905  sim/arm/armdefs.h
 b11fe314e23f138704804aedc06e483d  sim/arm/iwmmxt.c
 68468963c3ef325838864f7216f70da9  sim/arm/armvirt.c
+0e698c14e78685b085e85d24f9abc64f  sim/arm/maverick.h
 46cac1156b87b55c6ac594921dba9f82  sim/arm/armos.h
 aa86cbc835a69895d241d450d689efbb  sim/arm/configure
 4ab55a35c7007d58ee370d38587e6907  sim/arm/aclocal.m4
 094764c9d200b64d8715f1d3da494b3f  sim/arm/dbg_rdi.h
-1b74e169746ed00b93ba59f8259cc4a1  sim/arm/ChangeLog
+e02360fa81250cf9999bfd87ed24ad9f  sim/arm/ChangeLog
 45f7109e49ca9fbc7ba02c7380552958  sim/arm/armsupp.c
-ba916bda4bab6270d7dbacbee802374b  sim/arm/arminit.c
+abc067aa665bd2d6fce1e375cbdbfeff  sim/arm/arminit.c
 d32239bcb673463ab874e80d47fae504  sim/arm/COPYING
-bb64c836e5184187e20b3874b237f80f  sim/arm/maverick.c
+f8502806140e9c9e5eba185a07ee9973  sim/arm/maverick.c
 843495b2b85c8316a43a2efeeaa3fb29  sim/arm/armos.c
 baea1fbca873f544abe03808cf41ebdf  sim/arm/armemu.h
 6f042fd0ab0ce8cd9c92d3c98654527d  sim/arm/sim-main.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.20191203/opcodes/aarch64-tbl.h ./opcodes/aarch64-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/aarch64-tbl.h	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/aarch64-tbl.h	2019-12-10 01:49:28.000000000 +0000
@@ -2324,9 +2324,6 @@ static const aarch64_feature_set aarch64
   AARCH64_FEATURE (AARCH64_FEATURE_FP, 0);
 static const aarch64_feature_set aarch64_feature_simd =
   AARCH64_FEATURE (AARCH64_FEATURE_SIMD, 0);
-static const aarch64_feature_set aarch64_feature_crypto =
-  AARCH64_FEATURE (AARCH64_FEATURE_CRYPTO | AARCH64_FEATURE_AES
-		   | AARCH64_FEATURE_SHA2 | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
 static const aarch64_feature_set aarch64_feature_crc =
   AARCH64_FEATURE (AARCH64_FEATURE_CRC, 0);
 static const aarch64_feature_set aarch64_feature_lse =
@@ -2363,9 +2360,6 @@ static const aarch64_feature_set aarch64
   AARCH64_FEATURE (AARCH64_FEATURE_V8 | AARCH64_FEATURE_AES, 0);
 static const aarch64_feature_set aarch64_feature_v8_4 =
   AARCH64_FEATURE (AARCH64_FEATURE_V8_4, 0);
-static const aarch64_feature_set aarch64_feature_crypto_v8_2 =
-  AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_CRYPTO
-		   | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
 static const aarch64_feature_set aarch64_feature_sm4 =
   AARCH64_FEATURE (AARCH64_FEATURE_V8_2 | AARCH64_FEATURE_SM4
 		   | AARCH64_FEATURE_SIMD | AARCH64_FEATURE_FP, 0);
@@ -2423,7 +2417,6 @@ static const aarch64_feature_set aarch64
 #define CORE		&aarch64_feature_v8
 #define FP		&aarch64_feature_fp
 #define SIMD		&aarch64_feature_simd
-#define CRYPTO		&aarch64_feature_crypto
 #define CRC		&aarch64_feature_crc
 #define LSE		&aarch64_feature_lse
 #define LOR		&aarch64_feature_lor
@@ -2443,7 +2436,6 @@ static const aarch64_feature_set aarch64
 #define ARMV8_4		&aarch64_feature_v8_4
 #define SHA3		&aarch64_feature_sha3
 #define SM4		&aarch64_feature_sm4
-#define CRYPTO_V8_2	&aarch64_feature_crypto_v8_2
 #define FP_F16_V8_2	&aarch64_feature_fp_16_v8_2
 #define DOTPROD		&aarch64_feature_dotprod
 #define ARMV8_5		&aarch64_feature_v8_5
@@ -2476,8 +2468,6 @@ static const aarch64_feature_set aarch64
   { NAME, OPCODE, MASK, CLASS, OP, SIMD, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define _SIMD_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,VERIFIER) \
   { NAME, OPCODE, MASK, CLASS, OP, SIMD, OPS, QUALS, FLAGS, 0, 0, VERIFIER }
-#define CRYP_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
-  { NAME, OPCODE, MASK, CLASS, 0, CRYPTO, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define _CRC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, 0, CRC, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define _LSE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
@@ -2510,8 +2500,6 @@ static const aarch64_feature_set aarch64
   { NAME, OPCODE, MASK, CLASS, 0, AES, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define V8_4_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, 0, ARMV8_4, OPS, QUALS, FLAGS, 0, 0, NULL }
-#define CRYPTO_V8_2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
-  { NAME, OPCODE, MASK, CLASS, 0, CRYPTO_V8_2, OPS, QUALS, FLAGS, 0, NULL }
 #define SHA3_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   { NAME, OPCODE, MASK, CLASS, 0, SHA3, OPS, QUALS, FLAGS, 0, 0, NULL }
 #define SM4_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
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.20191203/opcodes/bpf-dis.c ./opcodes/bpf-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/bpf-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/bpf-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -553,7 +553,7 @@ print_insn_bpf (bfd_vma pc, disassemble_
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/cgen-dis.in ./opcodes/cgen-dis.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/cgen-dis.in	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/cgen-dis.in	2019-12-10 01:49:28.000000000 +0000
@@ -388,7 +388,7 @@ print_insn_@arch@ (bfd_vma pc, disassemb
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/ChangeLog ./opcodes/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/ChangeLog	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/ChangeLog	2019-12-10 01:49:28.000000000 +0000
@@ -1,3 +1,78 @@
+2019-12-10  Alan Modra  <amodra@gmail.com>
+
+	PR 24960
+	* disassemble.c (disassemble_free_target): New function.
+
+2019-12-10  Alan Modra  <amodra@gmail.com>
+
+	* cgen-dis.in (print_insn_@arch@): Replace insn_sets with private_data.
+	* disassemble.c (disassemble_init_for_target): Likewise.
+	* bpf-dis.c: Regenerate.
+	* epiphany-dis.c: Regenerate.
+	* fr30-dis.c: Regenerate.
+	* frv-dis.c: Regenerate.
+	* ip2k-dis.c: Regenerate.
+	* iq2000-dis.c: Regenerate.
+	* lm32-dis.c: Regenerate.
+	* m32c-dis.c: Regenerate.
+	* m32r-dis.c: Regenerate.
+	* mep-dis.c: Regenerate.
+	* mt-dis.c: Regenerate.
+	* or1k-dis.c: Regenerate.
+	* xc16x-dis.c: Regenerate.
+	* xstormy16-dis.c: Regenerate.
+
+2019-12-10  Alan Modra  <amodra@gmail.com>
+
+	* ppc-dis.c (private): Delete variable.
+	(get_powerpc_dialect): Don't segfault on NULL info->private_data.
+	(powerpc_init_dialect): Don't use global private.
+
+2019-12-10  Alan Modra  <amodra@gmail.com>
+
+	* s12z-opc.c: Formatting.
+
+2019-12-08  Alan Modra  <amodra@gmail.com>
+
+	* s12z-opc.c (exg_sex_discrim): Don't leak memory on invalid
+	registers.
+
+2019-12-05  Jan Beulich  <jbeulich@suse.com>
+
+	* aarch64-tbl.h (aarch64_feature_crypto,
+	aarch64_feature_crypto_v8_2, CRYPTO, CRYPTO_V8_2, CRYP_INSN,
+	CRYPTO_V8_2_INSN): Delete.
+
+2019-12-05  Alan Modra  <amodra@gmail.com>
+
+	PR 25249
+	* microblaze-dis.c (NUM_STRBUFS, STRBUF_SIZE): Define.
+	(struct string_buf): New.
+	(strbuf): New function.
+	(get_field): Use strbuf rather than strdup of local temp.
+	(get_field_imm, get_field_imm5, get_field_imm5_mbar): Likewise.
+	(get_field_rfsl, get_field_imm15): Likewise.
+	(get_field_rd, get_field_r1, get_field_r2): Update macros.
+	(get_field_special): Likewise.  Don't strcpy spr.  Formatting.
+	(print_insn_microblaze): Formatting.  Init and pass string_buf to
+	get_field functions.
+
+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.20191203/opcodes/disassemble.c ./opcodes/disassemble.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/disassemble.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/disassemble.c	2019-12-10 01:49:28.000000000 +0000
@@ -654,26 +654,26 @@ disassemble_init_for_target (struct disa
       /* This processor in fact is little endian.  The value set here
 	 reflects the way opcodes are written in the cgen description.  */
       info->endian = BFD_ENDIAN_BIG;
-      if (! info->insn_sets)
+      if (!info->private_data)
 	{
-	  info->insn_sets = cgen_bitset_create (ISA_MAX);
+	  info->private_data = cgen_bitset_create (ISA_MAX);
 	  if (info->mach == bfd_mach_m16c)
-	    cgen_bitset_set (info->insn_sets, ISA_M16C);
+	    cgen_bitset_set (info->private_data, ISA_M16C);
 	  else
-	    cgen_bitset_set (info->insn_sets, ISA_M32C);
+	    cgen_bitset_set (info->private_data, ISA_M32C);
 	}
       break;
 #endif
 #ifdef ARCH_bpf
     case bfd_arch_bpf:
-      if (!info->insn_sets)
-        {
-          info->insn_sets = cgen_bitset_create (ISA_EBPFMAX);
-          if (info->endian == BFD_ENDIAN_BIG)
-            cgen_bitset_set (info->insn_sets, ISA_EBPFBE);
-          else
-            cgen_bitset_set (info->insn_sets, ISA_EBPFLE);
-        }
+      if (!info->private_data)
+	{
+	  info->private_data = cgen_bitset_create (ISA_EBPFMAX);
+	  if (info->endian == BFD_ENDIAN_BIG)
+	    cgen_bitset_set (info->private_data, ISA_EBPFBE);
+	  else
+	    cgen_bitset_set (info->private_data, ISA_EBPFLE);
+	}
       break;
 #endif
 #ifdef ARCH_pru
@@ -716,6 +716,65 @@ disassemble_init_for_target (struct disa
     }
 }
 
+void
+disassemble_free_target (struct disassemble_info *info)
+{
+  if (info == NULL)
+    return;
+
+  switch (info->arch)
+    {
+    default:
+      return;
+
+#ifdef ARCH_bpf
+    case bfd_arch_bpf:
+#endif
+#ifdef ARCH_m32c
+    case bfd_arch_m32c:
+#endif
+#if defined ARCH_bpf || defined ARCH_m32c
+      if (info->private_data)
+	{
+	  CGEN_BITSET *mask = info->private_data;
+	  free (mask->bits);
+	}
+      break;
+#endif
+
+#ifdef ARCH_arc
+    case bfd_arch_arc:
+      break;
+#endif
+#ifdef ARCH_cris
+    case bfd_arch_cris:
+      break;
+#endif
+#ifdef ARCH_mmix
+    case bfd_arch_mmix:
+      break;
+#endif
+#ifdef ARCH_nfp
+    case bfd_arch_nfp:
+      break;
+#endif
+#ifdef ARCH_powerpc
+    case bfd_arch_powerpc:
+      break;
+#endif
+#ifdef ARCH_riscv
+    case bfd_arch_riscv:
+      break;
+#endif
+#ifdef ARCH_rs6000
+    case bfd_arch_rs6000:
+      break;
+#endif
+    }
+
+  free (info->private_data);
+}
+
 /* Remove whitespace and consecutive commas from OPTIONS.  */
 
 char *
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.20191203/opcodes/epiphany-dis.c ./opcodes/epiphany-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/epiphany-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/epiphany-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -629,7 +629,7 @@ print_insn_epiphany (bfd_vma pc, disasse
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/fr30-dis.c ./opcodes/fr30-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/fr30-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/fr30-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -650,7 +650,7 @@ print_insn_fr30 (bfd_vma pc, disassemble
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/frv-dis.c ./opcodes/frv-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/frv-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/frv-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -747,7 +747,7 @@ print_insn_frv (bfd_vma pc, disassemble_
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/i386-dis.c ./opcodes/i386-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/i386-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/i386-dis.c	2019-12-10 01:49:28.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.20191203/opcodes/i386-opc.tbl ./opcodes/i386-opc.tbl
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/i386-opc.tbl	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/i386-opc.tbl	2019-12-10 01:49:28.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.20191203/opcodes/i386-tbl.h ./opcodes/i386-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/i386-tbl.h	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/i386-tbl.h	2019-12-10 01:49:28.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.20191203/opcodes/ip2k-dis.c ./opcodes/ip2k-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/ip2k-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/ip2k-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -639,7 +639,7 @@ print_insn_ip2k (bfd_vma pc, disassemble
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/iq2000-dis.c ./opcodes/iq2000-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/iq2000-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/iq2000-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -540,7 +540,7 @@ print_insn_iq2000 (bfd_vma pc, disassemb
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/lm32-dis.c ./opcodes/lm32-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/lm32-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/lm32-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -498,7 +498,7 @@ print_insn_lm32 (bfd_vma pc, disassemble
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/m32c-dis.c ./opcodes/m32c-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/m32c-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/m32c-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -1242,7 +1242,7 @@ print_insn_m32c (bfd_vma pc, disassemble
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/m32r-dis.c ./opcodes/m32r-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/m32r-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/m32r-dis.c	2019-12-10 01:49:28.000000000 +0000
@@ -630,7 +630,7 @@ print_insn_m32r (bfd_vma pc, disassemble
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/mep-dis.c ./opcodes/mep-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/mep-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/mep-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -1538,7 +1538,7 @@ print_insn_mep (bfd_vma pc, disassemble_
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/microblaze-dis.c ./opcodes/microblaze-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/microblaze-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/microblaze-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -29,138 +29,156 @@
 #include "microblaze-opc.h"
 #include "microblaze-dis.h"
 
-#define get_field_rd(instr)        get_field (instr, RD_MASK, RD_LOW)
-#define get_field_r1(instr)        get_field (instr, RA_MASK, RA_LOW)
-#define get_field_r2(instr)        get_field (instr, RB_MASK, RB_LOW)
+#define get_field_rd(buf, instr)   get_field (buf, instr, RD_MASK, RD_LOW)
+#define get_field_r1(buf, instr)   get_field (buf, instr, RA_MASK, RA_LOW)
+#define get_field_r2(buf, instr)   get_field (buf, instr, RB_MASK, RB_LOW)
 #define get_int_field_imm(instr)   ((instr & IMM_MASK) >> IMM_LOW)
 #define get_int_field_r1(instr)    ((instr & RA_MASK) >> RA_LOW)
 
+#define NUM_STRBUFS 3
+#define STRBUF_SIZE 25
 
+struct string_buf
+{
+  unsigned int which;
+  char str[NUM_STRBUFS][STRBUF_SIZE];
+};
+
+static inline char *
+strbuf (struct string_buf *buf)
+{
+#ifdef ENABLE_CHECKING
+  if (buf->which >= NUM_STRBUFS)
+    abort ();
+#endif
+  return buf->str[buf->which++];
+}
 
 static char *
-get_field (long instr, long mask, unsigned short low)
+get_field (struct string_buf *buf, long instr, long mask, unsigned short low)
 {
-  char tmpstr[25];
+  char *p = strbuf (buf);
 
-  sprintf (tmpstr, "%s%d", register_prefix, (int)((instr & mask) >> low));
-  return (strdup (tmpstr));
+  sprintf (p, "%s%d", register_prefix, (int)((instr & mask) >> low));
+  return p;
 }
 
 static char *
-get_field_imm (long instr)
+get_field_imm (struct string_buf *buf, long instr)
 {
-  char tmpstr[25];
+  char *p = strbuf (buf);
 
-  sprintf (tmpstr, "%d", (short)((instr & IMM_MASK) >> IMM_LOW));
-  return (strdup (tmpstr));
+  sprintf (p, "%d", (short)((instr & IMM_MASK) >> IMM_LOW));
+  return p;
 }
 
 static char *
-get_field_imm5 (long instr)
+get_field_imm5 (struct string_buf *buf, long instr)
 {
-  char tmpstr[25];
+  char *p = strbuf (buf);
 
-  sprintf (tmpstr, "%d", (short)((instr & IMM5_MASK) >> IMM_LOW));
-  return (strdup (tmpstr));
+  sprintf (p, "%d", (short)((instr & IMM5_MASK) >> IMM_LOW));
+  return p;
 }
 
 static char *
-get_field_imm5_mbar (long instr)
+get_field_imm5_mbar (struct string_buf *buf, long instr)
 {
-  char tmpstr[25];
+  char *p = strbuf (buf);
 
-  sprintf(tmpstr, "%d", (short)((instr & IMM5_MBAR_MASK) >> IMM_MBAR));
-  return(strdup(tmpstr));
+  sprintf (p, "%d", (short)((instr & IMM5_MBAR_MASK) >> IMM_MBAR));
+  return p;
 }
 
 static char *
-get_field_rfsl (long instr)
+get_field_rfsl (struct string_buf *buf, long instr)
 {
-  char tmpstr[25];
+  char *p = strbuf (buf);
 
-  sprintf (tmpstr, "%s%d", fsl_register_prefix,
+  sprintf (p, "%s%d", fsl_register_prefix,
 	   (short)((instr & RFSL_MASK) >> IMM_LOW));
-  return (strdup (tmpstr));
+  return p;
 }
 
 static char *
-get_field_imm15 (long instr)
+get_field_imm15 (struct string_buf *buf, long instr)
 {
-  char tmpstr[25];
+  char *p = strbuf (buf);
 
-  sprintf (tmpstr, "%d", (short)((instr & IMM15_MASK) >> IMM_LOW));
-  return (strdup (tmpstr));
+  sprintf (p, "%d", (short)((instr & IMM15_MASK) >> IMM_LOW));
+  return p;
 }
 
 static char *
-get_field_special (long instr, struct op_code_struct * op)
+get_field_special (struct string_buf *buf, long instr,
+		   struct op_code_struct *op)
 {
-  char tmpstr[25];
-  char spr[6];
+  char *p = strbuf (buf);
+  char *spr;
 
   switch ((((instr & IMM_MASK) >> IMM_LOW) ^ op->immval_mask))
     {
     case REG_MSR_MASK :
-      strcpy (spr, "msr");
+      spr = "msr";
       break;
     case REG_PC_MASK :
-      strcpy (spr, "pc");
+      spr = "pc";
       break;
     case REG_EAR_MASK :
-      strcpy (spr, "ear");
+      spr = "ear";
       break;
     case REG_ESR_MASK :
-      strcpy (spr, "esr");
+      spr = "esr";
       break;
     case REG_FSR_MASK :
-      strcpy (spr, "fsr");
+      spr = "fsr";
       break;
     case REG_BTR_MASK :
-      strcpy (spr, "btr");
+      spr = "btr";
       break;
     case REG_EDR_MASK :
-      strcpy (spr, "edr");
+      spr = "edr";
       break;
     case REG_PID_MASK :
-      strcpy (spr, "pid");
+      spr = "pid";
       break;
     case REG_ZPR_MASK :
-      strcpy (spr, "zpr");
+      spr = "zpr";
       break;
     case REG_TLBX_MASK :
-      strcpy (spr, "tlbx");
+      spr = "tlbx";
       break;
     case REG_TLBLO_MASK :
-      strcpy (spr, "tlblo");
+      spr = "tlblo";
       break;
     case REG_TLBHI_MASK :
-      strcpy (spr, "tlbhi");
+      spr = "tlbhi";
       break;
     case REG_TLBSX_MASK :
-      strcpy (spr, "tlbsx");
+      spr = "tlbsx";
       break;
     case REG_SHR_MASK :
-      strcpy (spr, "shr");
+      spr = "shr";
       break;
     case REG_SLR_MASK :
-      strcpy (spr, "slr");
+      spr = "slr";
       break;
     default :
       if (((((instr & IMM_MASK) >> IMM_LOW) ^ op->immval_mask) & 0xE000)
-          == REG_PVR_MASK)
-        {
-	  sprintf (tmpstr, "%spvr%d", register_prefix,
+	  == REG_PVR_MASK)
+	{
+	  sprintf (p, "%spvr%d", register_prefix,
 		   (unsigned short)(((instr & IMM_MASK) >> IMM_LOW)
-                                    ^ op->immval_mask) ^ REG_PVR_MASK);
-	  return (strdup (tmpstr));
-        }
+				    ^ op->immval_mask) ^ REG_PVR_MASK);
+	  return p;
+	}
       else
-        strcpy (spr, "pc");
+	spr = "pc";
       break;
     }
 
-   sprintf (tmpstr, "%s%s", register_prefix, spr);
-   return (strdup (tmpstr));
+   sprintf (p, "%s%s", register_prefix, spr);
+   return p;
 }
 
 static unsigned long
@@ -210,7 +228,9 @@ print_insn_microblaze (bfd_vma memaddr, 
   static bfd_vma      prev_insn_addr = -1; /* Init the prev insn addr.  */
   static int          prev_insn_vma = -1;  /* Init the prev insn vma.  */
   int                 curr_insn_vma = info->buffer_vma;
+  struct string_buf   buf;
 
+  buf.which = 0;
   info->bytes_per_chunk = 4;
 
   inst = read_insn_microblaze (memaddr, info, &op);
@@ -220,8 +240,8 @@ print_insn_microblaze (bfd_vma memaddr, 
   if (prev_insn_vma == curr_insn_vma)
     {
       if (memaddr-(info->bytes_per_chunk) == prev_insn_addr)
-        {
-          prev_inst = read_insn_microblaze (prev_insn_addr, info, &pop);
+	{
+	  prev_inst = read_insn_microblaze (prev_insn_addr, info, &pop);
 	  if (prev_inst == 0)
 	    return -1;
 	  if (pop->instr == imm)
@@ -249,163 +269,173 @@ print_insn_microblaze (bfd_vma memaddr, 
 
       switch (op->inst_type)
 	{
-        case INST_TYPE_RD_R1_R2:
-          print_func (stream, "\t%s, %s, %s", get_field_rd (inst),
-		   get_field_r1(inst), get_field_r2 (inst));
-          break;
-        case INST_TYPE_RD_R1_IMM:
-	  print_func (stream, "\t%s, %s, %s", get_field_rd (inst),
-		   get_field_r1(inst), get_field_imm (inst));
+	case INST_TYPE_RD_R1_R2:
+	  print_func (stream, "\t%s, %s, %s", get_field_rd (&buf, inst),
+		      get_field_r1 (&buf, inst), get_field_r2 (&buf, inst));
+	  break;
+	case INST_TYPE_RD_R1_IMM:
+	  print_func (stream, "\t%s, %s, %s", get_field_rd (&buf, inst),
+		      get_field_r1 (&buf, inst), get_field_imm (&buf, inst));
 	  if (info->print_address_func && get_int_field_r1 (inst) == 0
 	      && info->symbol_at_address_func)
 	    {
 	      if (immfound)
-	        immval |= (get_int_field_imm (inst) & 0x0000ffff);
+		immval |= (get_int_field_imm (inst) & 0x0000ffff);
 	      else
 		{
-	          immval = get_int_field_imm (inst);
-	          if (immval & 0x8000)
+		  immval = get_int_field_imm (inst);
+		  if (immval & 0x8000)
 		    immval |= 0xFFFF0000;
-	        }
+		}
 	      if (immval > 0 && info->symbol_at_address_func (immval, info))
 		{
-	          print_func (stream, "\t// ");
-	          info->print_address_func (immval, info);
-	        }
+		  print_func (stream, "\t// ");
+		  info->print_address_func (immval, info);
+		}
 	    }
 	  break;
 	case INST_TYPE_RD_R1_IMM5:
-	  print_func (stream, "\t%s, %s, %s", get_field_rd (inst),
-	           get_field_r1(inst), get_field_imm5 (inst));
+	  print_func (stream, "\t%s, %s, %s", get_field_rd (&buf, inst),
+		      get_field_r1 (&buf, inst), get_field_imm5 (&buf, inst));
 	  break;
 	case INST_TYPE_RD_RFSL:
-	  print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_rfsl (inst));
+	  print_func (stream, "\t%s, %s", get_field_rd (&buf, inst),
+		      get_field_rfsl (&buf, inst));
 	  break;
 	case INST_TYPE_R1_RFSL:
-	  print_func (stream, "\t%s, %s", get_field_r1 (inst), get_field_rfsl (inst));
+	  print_func (stream, "\t%s, %s", get_field_r1 (&buf, inst),
+		      get_field_rfsl (&buf, inst));
 	  break;
 	case INST_TYPE_RD_SPECIAL:
-	  print_func (stream, "\t%s, %s", get_field_rd (inst),
-		   get_field_special (inst, op));
+	  print_func (stream, "\t%s, %s", get_field_rd (&buf, inst),
+		      get_field_special (&buf, inst, op));
 	  break;
 	case INST_TYPE_SPECIAL_R1:
-	  print_func (stream, "\t%s, %s", get_field_special (inst, op),
-		   get_field_r1(inst));
+	  print_func (stream, "\t%s, %s", get_field_special (&buf, inst, op),
+		      get_field_r1 (&buf, inst));
 	  break;
 	case INST_TYPE_RD_R1:
-	  print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_r1 (inst));
+	  print_func (stream, "\t%s, %s", get_field_rd (&buf, inst),
+		      get_field_r1 (&buf, inst));
 	  break;
 	case INST_TYPE_R1_R2:
-	  print_func (stream, "\t%s, %s", get_field_r1 (inst), get_field_r2 (inst));
+	  print_func (stream, "\t%s, %s", get_field_r1 (&buf, inst),
+		      get_field_r2 (&buf, inst));
 	  break;
 	case INST_TYPE_R1_IMM:
-	  print_func (stream, "\t%s, %s", get_field_r1 (inst), get_field_imm (inst));
+	  print_func (stream, "\t%s, %s", get_field_r1 (&buf, inst),
+		      get_field_imm (&buf, inst));
 	  /* The non-pc relative instructions are returns, which shouldn't
 	     have a label printed.  */
 	  if (info->print_address_func && op->inst_offset_type == INST_PC_OFFSET
 	      && info->symbol_at_address_func)
 	    {
 	      if (immfound)
-	        immval |= (get_int_field_imm (inst) & 0x0000ffff);
+		immval |= (get_int_field_imm (inst) & 0x0000ffff);
 	      else
 		{
-	          immval = get_int_field_imm (inst);
-	          if (immval & 0x8000)
+		  immval = get_int_field_imm (inst);
+		  if (immval & 0x8000)
 		    immval |= 0xFFFF0000;
-	        }
+		}
 	      immval += memaddr;
 	      if (immval > 0 && info->symbol_at_address_func (immval, info))
 		{
-	          print_func (stream, "\t// ");
-	          info->print_address_func (immval, info);
-	        }
+		  print_func (stream, "\t// ");
+		  info->print_address_func (immval, info);
+		}
 	      else
 		{
-	          print_func (stream, "\t\t// ");
-	          print_func (stream, "%x", immval);
-	        }
+		  print_func (stream, "\t\t// ");
+		  print_func (stream, "%x", immval);
+		}
 	    }
 	  break;
-        case INST_TYPE_RD_IMM:
-	  print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_imm (inst));
+	case INST_TYPE_RD_IMM:
+	  print_func (stream, "\t%s, %s", get_field_rd (&buf, inst),
+		      get_field_imm (&buf, inst));
 	  if (info->print_address_func && info->symbol_at_address_func)
 	    {
-	    if (immfound)
-	      immval |= (get_int_field_imm (inst) & 0x0000ffff);
-	    else
-	      {
-	        immval = get_int_field_imm (inst);
-	        if (immval & 0x8000)
-		  immval |= 0xFFFF0000;
-	      }
-	    if (op->inst_offset_type == INST_PC_OFFSET)
-	      immval += (int) memaddr;
-	    if (info->symbol_at_address_func (immval, info))
-	      {
-	        print_func (stream, "\t// ");
-	        info->print_address_func (immval, info);
-	      }
+	      if (immfound)
+		immval |= (get_int_field_imm (inst) & 0x0000ffff);
+	      else
+		{
+		  immval = get_int_field_imm (inst);
+		  if (immval & 0x8000)
+		    immval |= 0xFFFF0000;
+		}
+	      if (op->inst_offset_type == INST_PC_OFFSET)
+		immval += (int) memaddr;
+	      if (info->symbol_at_address_func (immval, info))
+		{
+		  print_func (stream, "\t// ");
+		  info->print_address_func (immval, info);
+		}
 	    }
 	  break;
-        case INST_TYPE_IMM:
-	  print_func (stream, "\t%s", get_field_imm (inst));
+	case INST_TYPE_IMM:
+	  print_func (stream, "\t%s", get_field_imm (&buf, inst));
 	  if (info->print_address_func && info->symbol_at_address_func
 	      && op->instr != imm)
 	    {
 	      if (immfound)
-	        immval |= (get_int_field_imm (inst) & 0x0000ffff);
+		immval |= (get_int_field_imm (inst) & 0x0000ffff);
 	      else
 		{
-	          immval = get_int_field_imm (inst);
-	          if (immval & 0x8000)
+		  immval = get_int_field_imm (inst);
+		  if (immval & 0x8000)
 		    immval |= 0xFFFF0000;
-	        }
+		}
 	      if (op->inst_offset_type == INST_PC_OFFSET)
-	        immval += (int) memaddr;
+		immval += (int) memaddr;
 	      if (immval > 0 && info->symbol_at_address_func (immval, info))
 		{
-	          print_func (stream, "\t// ");
-	          info->print_address_func (immval, info);
-	        }
+		  print_func (stream, "\t// ");
+		  info->print_address_func (immval, info);
+		}
 	      else if (op->inst_offset_type == INST_PC_OFFSET)
 		{
-	          print_func (stream, "\t\t// ");
-	          print_func (stream, "%x", immval);
-	        }
+		  print_func (stream, "\t\t// ");
+		  print_func (stream, "%x", immval);
+		}
 	    }
 	  break;
-        case INST_TYPE_RD_R2:
-	  print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_r2 (inst));
+	case INST_TYPE_RD_R2:
+	  print_func (stream, "\t%s, %s", get_field_rd (&buf, inst),
+		      get_field_r2 (&buf, inst));
 	  break;
 	case INST_TYPE_R2:
-	  print_func (stream, "\t%s", get_field_r2 (inst));
+	  print_func (stream, "\t%s", get_field_r2 (&buf, inst));
 	  break;
 	case INST_TYPE_R1:
-	  print_func (stream, "\t%s", get_field_r1 (inst));
+	  print_func (stream, "\t%s", get_field_r1 (&buf, inst));
 	  break;
 	case INST_TYPE_R1_R2_SPECIAL:
-	  print_func (stream, "\t%s, %s", get_field_r1 (inst), get_field_r2 (inst));
+	  print_func (stream, "\t%s, %s", get_field_r1 (&buf, inst),
+		      get_field_r2 (&buf, inst));
 	  break;
 	case INST_TYPE_RD_IMM15:
-	  print_func (stream, "\t%s, %s", get_field_rd (inst), get_field_imm15 (inst));
+	  print_func (stream, "\t%s, %s", get_field_rd (&buf, inst),
+		      get_field_imm15 (&buf, inst));
 	  break;
-        /* For mbar insn.  */
-        case INST_TYPE_IMM5:
-          print_func (stream, "\t%s", get_field_imm5_mbar (inst));
-          break;
-        /* For mbar 16 or sleep insn.  */
-        case INST_TYPE_NONE:
-          break;
-	/* For tuqula instruction */
+	  /* For mbar insn.  */
+	case INST_TYPE_IMM5:
+	  print_func (stream, "\t%s", get_field_imm5_mbar (&buf, inst));
+	  break;
+	  /* For mbar 16 or sleep insn.  */
+	case INST_TYPE_NONE:
+	  break;
+	  /* For tuqula instruction */
 	case INST_TYPE_RD:
-	  print_func (stream, "\t%s", get_field_rd (inst));
+	  print_func (stream, "\t%s", get_field_rd (&buf, inst));
 	  break;
 	case INST_TYPE_RFSL:
-	  print_func (stream, "\t%s", get_field_rfsl (inst));
+	  print_func (stream, "\t%s", get_field_rfsl (&buf, inst));
 	  break;
 	default:
 	  /* If the disassembler lags the instruction set.  */
-	  print_func (stream, "\tundecoded operands, inst is 0x%04x", (unsigned int) inst);
+	  print_func (stream, "\tundecoded operands, inst is 0x%04x",
+		      (unsigned int) inst);
 	  break;
 	}
     }
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.20191203/opcodes/mt-dis.c ./opcodes/mt-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/mt-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/mt-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -641,7 +641,7 @@ print_insn_mt (bfd_vma pc, disassemble_i
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/or1k-dis.c ./opcodes/or1k-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/or1k-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/or1k-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -534,7 +534,7 @@ print_insn_or1k (bfd_vma pc, disassemble
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/ppc-dis.c ./opcodes/ppc-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/ppc-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/ppc-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -40,7 +40,7 @@ struct dis_private
 {
   /* Stash the result of parsing disassembler_options here.  */
   ppc_cpu_t dialect;
-} private;
+};
 
 #define POWERPC_DIALECT(INFO) \
   (((struct dis_private *) ((INFO)->private_data))->dialect)
@@ -259,7 +259,8 @@ get_powerpc_dialect (struct disassemble_
 {
   ppc_cpu_t dialect = 0;
 
-  dialect = POWERPC_DIALECT (info);
+  if (info->private_data)
+    dialect = POWERPC_DIALECT (info);
 
   /* Disassemble according to the section headers flags for VLE-mode.  */
   if (dialect & PPC_OPCODE_VLE
@@ -308,7 +309,7 @@ powerpc_init_dialect (struct disassemble
   struct dis_private *priv = calloc (sizeof (*priv), 1);
 
   if (priv == NULL)
-    priv = &private;
+    return;
 
   switch (info->mach)
     {
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.20191203/opcodes/s12z-opc.c ./opcodes/s12z-opc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/s12z-opc.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/s12z-opc.c	2019-12-10 01:49:29.000000000 +0000
@@ -256,7 +256,8 @@ xysp_reg_from_postbyte (uint8_t postbyte
   return reg;
 }
 
-static struct operand * create_immediate_operand (int value)
+static struct operand *
+create_immediate_operand (int value)
 {
   struct immediate_operand *op = malloc (sizeof (*op));
 
@@ -267,7 +268,8 @@ static struct operand * create_immediate
   return (struct operand *) op;
 }
 
-static struct operand * create_bitfield_operand (int width, int offset)
+static struct operand *
+create_bitfield_operand (int width, int offset)
 {
   struct bitfield_operand *op = malloc (sizeof (*op));
 
@@ -297,7 +299,8 @@ create_register_operand (int reg)
   return create_register_operand_with_size (reg, -1);
 }
 
-static struct operand * create_register_all_operand (void)
+static struct operand *
+create_register_all_operand (void)
 {
   struct register_operand *op = malloc (sizeof (*op));
 
@@ -307,7 +310,8 @@ static struct operand * create_register_
   return (struct operand *) op;
 }
 
-static struct operand * create_register_all16_operand (void)
+static struct operand *
+create_register_all16_operand (void)
 {
   struct register_operand *op = malloc (sizeof (*op));
 
@@ -371,7 +375,8 @@ create_memory_auto_operand (enum op_reg_
 
 
 static void
-z_ext24_decode (struct mem_read_abstraction_base *mra, int *n_operands, struct operand **operand)
+z_ext24_decode (struct mem_read_abstraction_base *mra, int *n_operands,
+		struct operand **operand)
 {
   uint8_t buffer[3];
   int status = mra->read (mra, 0, 3, buffer);
@@ -391,7 +396,8 @@ z_ext24_decode (struct mem_read_abstract
 
 
 static uint32_t
-z_decode_signed_value (struct mem_read_abstraction_base *mra, int offset, short size)
+z_decode_signed_value (struct mem_read_abstraction_base *mra, int offset,
+		       short size)
 {
   assert (size >0);
   assert (size <= 4);
@@ -438,7 +444,7 @@ x_imm1 (struct mem_read_abstraction_base
 /* An eight bit immediate operand.  */
 static void
 imm1_decode (struct mem_read_abstraction_base *mra,
-	int *n_operands, struct operand **operand)
+	     int *n_operands, struct operand **operand)
 {
   x_imm1 (mra, 0, n_operands, operand);
 }
@@ -485,30 +491,30 @@ x_opr_decode_with_size (struct mem_read_
 	else
 	  n = x;
 
-        operand = create_immediate_operand (n);
+	operand = create_immediate_operand (n);
 	break;
       }
     case OPR_REG:
       {
 	uint8_t x = (postbyte & 0x07);
-        operand = create_register_operand (x);
+	operand = create_register_operand (x);
 	break;
       }
     case OPR_OFXYS:
       {
-        operand = create_memory_operand (false, postbyte & 0x0F, 1,
+	operand = create_memory_operand (false, postbyte & 0x0F, 1,
 					 xysp_reg_from_postbyte (postbyte), -1);
 	break;
       }
     case OPR_REG_DIRECT:
       {
-        operand = create_memory_operand (false, 0, 2, postbyte & 0x07,
+	operand = create_memory_operand (false, 0, 2, postbyte & 0x07,
 					 xysp_reg_from_postbyte (postbyte));
 	break;
       }
     case OPR_REG_INDIRECT:
       {
-        operand = create_memory_operand (true, 0, 2, postbyte & 0x07,
+	operand = create_memory_operand (true, 0, 2, postbyte & 0x07,
 					 (postbyte & 0x10) ? REG_Y : REG_X);
 	break;
       }
@@ -525,7 +531,7 @@ x_opr_decode_with_size (struct mem_read_
 	    idx -= 0x1UL << 8;
 	  }
 
-        operand = create_memory_operand (true, idx, 1,
+	operand = create_memory_operand (true, idx, 1,
 					 xysp_reg_from_postbyte (postbyte), -1);
 	break;
       }
@@ -542,7 +548,7 @@ x_opr_decode_with_size (struct mem_read_
 	    idx -= 0x1UL << 24;
 	  }
 
-        operand = create_memory_operand (false, idx, 1,
+	operand = create_memory_operand (false, idx, 1,
 					 xysp_reg_from_postbyte (postbyte), -1);
 	break;
       }
@@ -559,7 +565,7 @@ x_opr_decode_with_size (struct mem_read_
 	    idx -= 0x1UL << 24;
 	  }
 
-        operand = create_memory_operand (false, idx, 1, postbyte & 0x07, -1);
+	operand = create_memory_operand (false, idx, 1, postbyte & 0x07, -1);
 	break;
       }
 
@@ -592,7 +598,7 @@ x_opr_decode_with_size (struct mem_read_
 	    idx -= 0x1UL << 8;
 	  }
 
-        operand = create_memory_operand (false, idx, 1,
+	operand = create_memory_operand (false, idx, 1,
 					 xysp_reg_from_postbyte (postbyte), -1);
 	break;
       }
@@ -604,7 +610,7 @@ x_opr_decode_with_size (struct mem_read_
 	uint32_t idx = x[1] | x[0] << 8 ;
 	idx |= (postbyte & 0x30) << 12;
 
-        operand = create_memory_operand (false, idx, 1, postbyte & 0x07, -1);
+	operand = create_memory_operand (false, idx, 1, postbyte & 0x07, -1);
 	break;
       }
 
@@ -709,7 +715,7 @@ x_opr_decode_with_size (struct mem_read_
 	    ext24 |= buffer[i] << (8 * (size - i - 1));
 	  }
 
-        operand = create_memory_operand (true, ext24, 0, -1, -1);
+	operand = create_memory_operand (true, ext24, 0, -1, -1);
 	break;
       }
 
@@ -1003,7 +1009,9 @@ sub_d6_y_x (struct mem_read_abstraction_
   operand[(*n_operands)++] = create_register_operand (REG_X);
 }
 
-static void ld_18bit_decode (struct mem_read_abstraction_base *mra, int *n_operands, struct operand **operand);
+static void
+ld_18bit_decode (struct mem_read_abstraction_base *mra, int *n_operands,
+		 struct operand **operand);
 
 static enum optr
 mul_discrim (struct mem_read_abstraction_base *mra, enum optr hint)
@@ -2195,32 +2203,32 @@ loop_prim_n_bytes (struct mem_read_abstr
 
 
 static enum optr
-exg_sex_discrim (struct mem_read_abstraction_base *mra, enum optr hint ATTRIBUTE_UNUSED)
+exg_sex_discrim (struct mem_read_abstraction_base *mra,
+		 enum optr hint ATTRIBUTE_UNUSED)
 {
   uint8_t eb;
   int status = mra->read (mra, 0, 1, &eb);
+  enum optr operator = OP_INVALID;
   if (status < 0)
-    return OP_INVALID;
+    return operator;
 
   struct operand *op0 = create_register_operand ((eb & 0xf0) >> 4);
   struct operand *op1 = create_register_operand (eb & 0xf);
 
   int reg0 = ((struct register_operand *) op0)->reg;
-  if (reg0 < 0 || reg0 >= S12Z_N_REGISTERS)
-    return OP_INVALID;
-
   int reg1 = ((struct register_operand *) op1)->reg;
-  if (reg1 < 0 || reg1 >= S12Z_N_REGISTERS)
-    return OP_INVALID;
-
-  const struct reg *r0 = registers + reg0;
-  const struct reg *r1 = registers + reg1;
+  if (reg0 >= 0 && reg0 < S12Z_N_REGISTERS
+      && reg1 >= 0 && reg1 < S12Z_N_REGISTERS)
+    {
+      const struct reg *r0 = registers + reg0;
+      const struct reg *r1 = registers + reg1;
 
-  enum optr operator = (r0->bytes < r1->bytes) ? OP_sex : OP_exg;
+      operator = r0->bytes < r1->bytes ? OP_sex : OP_exg;
+    }
 
   free (op0);
   free (op1);
-  
+
   return operator;
 }
 
@@ -2254,7 +2262,7 @@ loop_primitive_discrim (struct mem_read_
 
 static void
 loop_primitive_decode (struct mem_read_abstraction_base *mra,
-		  int *n_operands, struct operand **operands)
+		       int *n_operands, struct operand **operands)
 {
   int offs = 1;
   uint8_t lb;
@@ -2294,7 +2302,8 @@ loop_primitive_decode (struct mem_read_a
 
 
 static enum optr
-shift_discrim (struct mem_read_abstraction_base *mra,  enum optr hint ATTRIBUTE_UNUSED)
+shift_discrim (struct mem_read_abstraction_base *mra,
+	       enum optr hint ATTRIBUTE_UNUSED)
 {
   size_t i;
   uint8_t sb;
@@ -2323,7 +2332,8 @@ shift_discrim (struct mem_read_abstracti
 
 
 static void
-shift_decode (struct mem_read_abstraction_base *mra,  int *n_operands, struct operand **operands)
+shift_decode (struct mem_read_abstraction_base *mra, int *n_operands,
+	      struct operand **operands)
 {
   size_t i;
 
@@ -2415,30 +2425,30 @@ shift_decode (struct mem_read_abstractio
 
     case SB_REG_REG_N:
       {
-        uint8_t xb;
-        mra->read (mra, 1, 1, &xb);
+	uint8_t xb;
+	mra->read (mra, 1, 1, &xb);
 
-        /* This case is slightly unusual.
-           If XB matches the binary pattern 0111XXXX, then instead of
-           interpreting this as a general OPR postbyte in the IMMe4 mode,
-           the XB byte is interpreted in s special way.  */
-        if ((xb & 0xF0) == 0x70)
-          {
-            if (byte & 0x10)
-              {
-                int shift = ((sb & 0x08) >> 3) | ((xb & 0x0f) << 1);
-                operands[(*n_operands)++] = create_immediate_operand (shift);
-              }
-            else
-              {
-                /* This should not happen.  */
-                abort ();
-              }
-          }
-        else
-          {
-            operands[(*n_operands)++] = x_opr_decode (mra, 1);
-          }
+	/* This case is slightly unusual.
+	   If XB matches the binary pattern 0111XXXX, then instead of
+	   interpreting this as a general OPR postbyte in the IMMe4 mode,
+	   the XB byte is interpreted in s special way.  */
+	if ((xb & 0xF0) == 0x70)
+	  {
+	    if (byte & 0x10)
+	      {
+		int shift = ((sb & 0x08) >> 3) | ((xb & 0x0f) << 1);
+		operands[(*n_operands)++] = create_immediate_operand (shift);
+	      }
+	    else
+	      {
+		/* This should not happen.  */
+		abort ();
+	      }
+	  }
+	else
+	  {
+	    operands[(*n_operands)++] = x_opr_decode (mra, 1);
+	  }
       }
       break;
     case SB_REG_OPR_OPR:
@@ -2470,8 +2480,8 @@ shift_decode (struct mem_read_abstractio
     case SB_REG_OPR_EFF:
     case SB_OPR_N:
       {
-        int imm = (sb & 0x08) ? 2 : 1;
-        operands[(*n_operands)++] = create_immediate_operand (imm);
+	int imm = (sb & 0x08) ? 2 : 1;
+	operands[(*n_operands)++] = create_immediate_operand (imm);
       }
       break;
 
@@ -2505,9 +2515,7 @@ psh_pul_decode (struct mem_read_abstract
   if (byte & 0x40)
     {
       if ((byte & 0x3F) == 0)
-        {
-	  operand[(*n_operands)++] = create_register_all16_operand ();
-        }
+	operand[(*n_operands)++] = create_register_all16_operand ();
       else
 	for (bit = 5; bit >= 0; --bit)
 	  {
@@ -2520,9 +2528,7 @@ psh_pul_decode (struct mem_read_abstract
   else
     {
       if ((byte & 0x3F) == 0)
-        {
-	  operand[(*n_operands)++] = create_register_all_operand ();
-        }
+	operand[(*n_operands)++] = create_register_all_operand ();
       else
 	for (bit = 5; bit >= 0; --bit)
 	  {
@@ -2535,7 +2541,8 @@ psh_pul_decode (struct mem_read_abstract
 }
 
 static enum optr
-bit_field_discrim (struct mem_read_abstraction_base *mra, enum optr hint ATTRIBUTE_UNUSED)
+bit_field_discrim (struct mem_read_abstraction_base *mra,
+		   enum optr hint ATTRIBUTE_UNUSED)
 {
   int status;
   bfd_byte bb;
@@ -2569,10 +2576,10 @@ bit_field_decode (struct mem_read_abstra
     {
       bbs = bb_modes + i;
       if ((bb & bbs->mask) == bbs->value)
-        {
-          mode = bbs->mode;
-          break;
-        }
+	{
+	  mode = bbs->mode;
+	  break;
+	}
     }
   int reg1 = byte2 & 0x07;
   /* First operand */
@@ -2600,15 +2607,15 @@ bit_field_decode (struct mem_read_abstra
     case BB_REG_REG_REG:
     case BB_REG_REG_IMM:
       {
-        int reg_src = (bb >> 2) & 0x07;
-        operands[(*n_operands)++] = create_register_operand (reg_src);
+	int reg_src = (bb >> 2) & 0x07;
+	operands[(*n_operands)++] = create_register_operand (reg_src);
       }
       break;
     case BB_OPR_REG_REG:
     case BB_OPR_REG_IMM:
       {
-        int reg_src = (byte2 & 0x07);
-        operands[(*n_operands)++] = create_register_operand (reg_src);
+	int reg_src = (byte2 & 0x07);
+	operands[(*n_operands)++] = create_register_operand (reg_src);
       }
       break;
     case BB_REG_OPR_REG:
@@ -2628,7 +2635,7 @@ bit_field_decode (struct mem_read_abstra
     case BB_OPR_REG_REG:
     case BB_REG_OPR_REG:
       {
-        int reg_parm = bb & 0x03;
+	int reg_parm = bb & 0x03;
 	operands[(*n_operands)++] = create_register_operand (reg_parm);
       }
       break;
@@ -2636,13 +2643,13 @@ bit_field_decode (struct mem_read_abstra
     case BB_OPR_REG_IMM:
     case BB_REG_OPR_IMM:
       {
-        bfd_byte i1;
-        mra->read (mra, 1, 1, &i1);
-        int offset = i1 & 0x1f;
-        int width = bb & 0x03;
-        width <<= 3;
-        width |= i1 >> 5;
-        operands[(*n_operands)++] = create_bitfield_operand (width, offset);
+	bfd_byte i1;
+	mra->read (mra, 1, 1, &i1);
+	int offset = i1 & 0x1f;
+	int width = bb & 0x03;
+	width <<= 3;
+	width |= i1 >> 5;
+	operands[(*n_operands)++] = create_bitfield_operand (width, offset);
       }
       break;
     }
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.20191203/opcodes/xc16x-dis.c ./opcodes/xc16x-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/xc16x-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/xc16x-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -771,7 +771,7 @@ print_insn_xc16x (bfd_vma pc, disassembl
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/opcodes/xstormy16-dis.c ./opcodes/xstormy16-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/opcodes/xstormy16-dis.c	2019-12-03 01:49:17.000000000 +0000
+++ ./opcodes/xstormy16-dis.c	2019-12-10 01:49:29.000000000 +0000
@@ -519,7 +519,7 @@ print_insn_xstormy16 (bfd_vma pc, disass
     cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
   }
 #else
-  isa = info->insn_sets;
+  isa = info->private_data;
 #endif
 
   /* If we've switched cpu's, try to find a handle we've used before */
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.20191203/sim/arm/armemu.c ./sim/arm/armemu.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/arm/armemu.c	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/arm/armemu.c	2019-12-10 01:49:29.000000000 +0000
@@ -1140,10 +1140,6 @@ handle_VFP_move (ARMul_State * state, AR
 
 /* EMULATION of ARM6.  */
 
-/* The PC pipeline value depends on whether ARM
-   or Thumb instructions are being executed.  */
-ARMword isize;
-
 ARMword
 #ifdef MODE32
 ARMul_Emulate32 (ARMul_State * state)
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.20191203/sim/arm/arminit.c ./sim/arm/arminit.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/arm/arminit.c	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/arm/arminit.c	2019-12-10 01:49:29.000000000 +0000
@@ -40,6 +40,10 @@ unsigned ARMul_MultTable[32] =
 ARMword ARMul_ImmedTable[4096];	/* immediate DP LHS values */
 char ARMul_BitList[256];	/* number of bits in a byte table */
 
+/* The PC pipeline value depends on whether ARM
+   or Thumb instructions are being executed.  */
+ARMword isize;
+
 /***************************************************************************\
 *         Call this routine once to set up the emulator's tables.           *
 \***************************************************************************/
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.20191203/sim/arm/ChangeLog ./sim/arm/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/arm/ChangeLog	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/arm/ChangeLog	2019-12-10 01:49:29.000000000 +0000
@@ -1,3 +1,17 @@
+2019-12-06  Luis Machado  <luis.machado@linaro.org>
+
+	* armemu.c (isize): Move this declaration ...
+	* arminit.c (isize): ... here.
+	* maverick.h: New file.
+	* wrapper.c: Include "maverick.h".
+	(<struct maverick_regs>, <union maverick_acc_regs>): Remove and update
+	comment.
+	(sim_create_inferior): Cast variables to proper type.
+	* maverick.c: Include "maverick.h".
+	(<struct maverick_regs>, <union maverick_acc_regs>): Move
+	declarations to maverick.h and update comment.
+	(DSPsc, DSPacc, DSPregs): Adjust comment.
+
 2018-01-02  Nick Clifton  <nickc@redhat.com>
 
 	PR 22663
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.20191203/sim/arm/maverick.c ./sim/arm/maverick.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/arm/maverick.c	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/arm/maverick.c	2019-12-10 01:49:29.000000000 +0000
@@ -19,6 +19,7 @@
 #include "armdefs.h"
 #include "ansidecl.h"
 #include "armemu.h"
+#include "maverick.h"
 
 /*#define CIRRUS_DEBUG 1	*/
 #if CIRRUS_DEBUG
@@ -30,36 +31,10 @@
 #define POS64(i) ( (~(i)) >> 63 )
 #define NEG64(i) ( (i) >> 63 )
 
-/* Define Co-Processor instruction handlers here.  */
-
-/* Here's ARMulator's DSP definition.  A few things to note:
-   1) it has 16 64-bit registers and 4 72-bit accumulators
-   2) you can only access its registers with MCR and MRC.  */
-
-/* We can't define these in here because this file might not be linked
-   unless the target is arm9e-*.  They are defined in wrapper.c.
-   Eventually the simulator should be made to handle any coprocessor
-   at run time.  */
-struct maverick_regs
-{
-  union
-  {
-    int i;
-    float f;
-  } upper;
-
-  union
-  {
-    int i;
-    float f;
-  } lower;
-};
-
-union maverick_acc_regs
-{
-  long double ld;		/* Acc registers are 72-bits.  */
-};
-
+/* These variables are defined here and made extern in maverick.h for use
+   in wrapper.c for now.
+   Eventually the simulator should be made to handle any coprocessor at run
+   time.  */
 struct maverick_regs DSPregs[16];
 union maverick_acc_regs DSPacc[4];
 ARMword DSPsc;
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.20191203/sim/arm/maverick.h ./sim/arm/maverick.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/arm/maverick.h	1970-01-01 00:00:00.000000000 +0000
+++ ./sim/arm/maverick.h	2019-12-10 01:49:29.000000000 +0000
@@ -0,0 +1,46 @@
+/*  maverick.h -- Cirrus/DSP co-processor interface header
+    Copyright (C) 2003-2019 Free Software Foundation, Inc.
+    Contributed by Aldy Hernandez (aldyh@redhat.com).
+
+    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/>. */
+
+/* Define Co-Processor instruction handlers here.  */
+
+/* Here's ARMulator's DSP definition.  A few things to note:
+   1) it has 16 64-bit registers and 4 72-bit accumulators
+   2) you can only access its registers with MCR and MRC.  */
+
+struct maverick_regs
+{
+  union
+  {
+    int i;
+    float f;
+  } upper;
+
+  union
+  {
+    int i;
+    float f;
+  } lower;
+};
+
+union maverick_acc_regs
+{
+  long double ld;		/* Acc registers are 72-bits.  */
+};
+
+extern struct maverick_regs DSPregs[16];
+extern union maverick_acc_regs DSPacc[4];
+extern ARMword DSPsc;
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.20191203/sim/arm/wrapper.c ./sim/arm/wrapper.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/arm/wrapper.c	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/arm/wrapper.c	2019-12-10 01:49:29.000000000 +0000
@@ -37,6 +37,7 @@
 #include "gdb/signals.h"
 #include "libiberty.h"
 #include "iwmmxt.h"
+#include "maverick.h"
 
 /* TODO: This should get pulled from the SIM_DESC.  */
 host_callback *sim_callback;
@@ -101,38 +102,6 @@ print_insn (ARMword instr)
   fprintf (stderr, " %*s\n", size, opbuf);
 }
 
-/* Cirrus DSP registers.
-
-   We need to define these registers outside of maverick.c because
-   maverick.c might not be linked in unless --target=arm9e-* in which
-   case wrapper.c will not compile because it tries to access Cirrus
-   registers.  This should all go away once we get the Cirrus and ARM
-   Coprocessor to coexist in armcopro.c-- aldyh.  */
-
-struct maverick_regs
-{
-  union
-  {
-    int i;
-    float f;
-  } upper;
-
-  union
-  {
-    int i;
-    float f;
-  } lower;
-};
-
-union maverick_acc_regs
-{
-  long double ld;		/* Acc registers are 72-bits.  */
-};
-
-struct maverick_regs     DSPregs[16];
-union maverick_acc_regs  DSPacc[4];
-ARMword DSPsc;
-
 static void
 init (void)
 {
@@ -236,7 +205,7 @@ sim_create_inferior (SIM_DESC sd ATTRIBU
 {
   int argvlen = 0;
   int mach;
-  char **arg;
+  char * const *arg;
 
   init ();
 
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.20191203/sim/common/ChangeLog ./sim/common/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/common/ChangeLog	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/common/ChangeLog	2019-12-10 01:49:29.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.20191203/sim/common/sim-utils.c ./sim/common/sim-utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-9.0.50.20191203/sim/common/sim-utils.c	2019-12-03 01:49:17.000000000 +0000
+++ ./sim/common/sim-utils.c	2019-12-10 01:49:29.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;
       }
     }
