readelf: print 0x0 as 0, and remove trailing spaces

Alan Modra amodra@gmail.com
Sat Aug 13 06:48:51 GMT 2022


This changes readelf output a little, removing the 0x prefix on hex
output when the value is 0, except in cases where a fixed field
width is shown.  %#010x is not a good replacement for 0x%08x.

Changing readelf output is always at risk of breaking testsuites.
If this proves too much of a change to bear I guess it can be
reverted before the next binutils release.

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index a20d546e210..09220978380 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -443,7 +443,7 @@ process_extended_line_op (unsigned char * data,
 	}
       else
 	SAFE_BYTE_GET (adr, data, len - 1, end);
-      printf (_("set Address to 0x%" PRIx64 "\n"), adr);
+      printf (_("set Address to %#" PRIx64 "\n"), adr);
       state_machine_regs.address = adr;
       state_machine_regs.view = 0;
       state_machine_regs.op_index = 0;
@@ -1481,13 +1481,13 @@ decode_location_expression (unsigned char * data,
 	  /* FIXME: Strictly speaking for 64-bit DWARF3 files
 	     this ought to be an 8-byte wide computation.  */
 	  SAFE_SIGNED_BYTE_GET_AND_INC (svalue, data, 2, end);
-	  printf ("DW_OP_call2: <0x%" PRIx64 ">", svalue + cu_offset);
+	  printf ("DW_OP_call2: <%#" PRIx64 ">", svalue + cu_offset);
 	  break;
 	case DW_OP_call4:
 	  /* FIXME: Strictly speaking for 64-bit DWARF3 files
 	     this ought to be an 8-byte wide computation.  */
 	  SAFE_SIGNED_BYTE_GET_AND_INC (svalue, data, 4, end);
-	  printf ("DW_OP_call4: <0x%" PRIx64 ">", svalue + cu_offset);
+	  printf ("DW_OP_call4: <%#" PRIx64 ">", svalue + cu_offset);
 	  break;
 	case DW_OP_call_ref:
 	  /* FIXME: Strictly speaking for 64-bit DWARF3 files
@@ -1506,7 +1506,7 @@ decode_location_expression (unsigned char * data,
 	    {
 	      SAFE_BYTE_GET_AND_INC (uvalue, data, offset_size, end);
 	    }
-	  printf ("DW_OP_call_ref: <0x%" PRIx64 ">", uvalue);
+	  printf ("DW_OP_call_ref: <%#" PRIx64 ">", uvalue);
 	  break;
 	case DW_OP_form_tls_address:
 	  printf ("DW_OP_form_tls_address");
@@ -1551,7 +1551,7 @@ decode_location_expression (unsigned char * data,
 	    addr = get_encoded_value (&data, encoding, section, end);
 
 	    printf ("DW_OP_GNU_encoded_addr: fmt:%02x addr:", encoding);
-	    print_hex (addr, pointer_size);
+	    print_hex_ns (addr, pointer_size);
 	  }
 	  break;
 	case DW_OP_implicit_pointer:
@@ -1576,7 +1576,7 @@ decode_location_expression (unsigned char * data,
 	      SAFE_BYTE_GET_AND_INC (uvalue, data, offset_size, end);
 	    }
 	  READ_SLEB (svalue, data, end);
-	  printf ("%s: <0x%" PRIx64 "> %" PRId64,
+	  printf ("%s: <%#" PRIx64 "> %" PRId64,
 		  (op == DW_OP_implicit_pointer
 		   ? "DW_OP_implicit_pointer" : "DW_OP_GNU_implicit_pointer"),
 		  uvalue, svalue);
@@ -1599,7 +1599,7 @@ decode_location_expression (unsigned char * data,
 	case DW_OP_const_type:
 	case DW_OP_GNU_const_type:
 	  READ_ULEB (uvalue, data, end);
-	  printf ("%s: <0x%" PRIx64 "> ",
+	  printf ("%s: <%#" PRIx64 "> ",
 		  (op == DW_OP_const_type ? "DW_OP_const_type"
 					  : "DW_OP_GNU_const_type"),
 		  cu_offset + uvalue);
@@ -1614,7 +1614,7 @@ decode_location_expression (unsigned char * data,
 					   : "DW_OP_GNU_regval_type"),
 		  uvalue, regname (uvalue, 1));
 	  READ_ULEB (uvalue, data, end);
-	  printf (" <0x%" PRIx64 ">", cu_offset + uvalue);
+	  printf (" <%#" PRIx64 ">", cu_offset + uvalue);
 	  break;
 	case DW_OP_deref_type:
 	case DW_OP_GNU_deref_type:
@@ -1624,39 +1624,39 @@ decode_location_expression (unsigned char * data,
 					  : "DW_OP_GNU_deref_type"),
 		  uvalue);
 	  READ_ULEB (uvalue, data, end);
-	  printf (" <0x%" PRIx64 ">", cu_offset + uvalue);
+	  printf (" <%#" PRIx64 ">", cu_offset + uvalue);
 	  break;
 	case DW_OP_convert:
 	case DW_OP_GNU_convert:
 	  READ_ULEB (uvalue, data, end);
-	  printf ("%s <0x%" PRIx64 ">",
+	  printf ("%s <%#" PRIx64 ">",
 		  (op == DW_OP_convert ? "DW_OP_convert" : "DW_OP_GNU_convert"),
 		  uvalue ? cu_offset + uvalue : uvalue);
 	  break;
 	case DW_OP_reinterpret:
 	case DW_OP_GNU_reinterpret:
 	  READ_ULEB (uvalue, data, end);
-	  printf ("%s <0x%" PRIx64 ">",
+	  printf ("%s <%#" PRIx64 ">",
 		  (op == DW_OP_reinterpret ? "DW_OP_reinterpret"
 					   : "DW_OP_GNU_reinterpret"),
 		  uvalue ? cu_offset + uvalue : uvalue);
 	  break;
 	case DW_OP_GNU_parameter_ref:
 	  SAFE_BYTE_GET_AND_INC (uvalue, data, 4, end);
-	  printf ("DW_OP_GNU_parameter_ref: <0x%" PRIx64 ">",
+	  printf ("DW_OP_GNU_parameter_ref: <%#" PRIx64 ">",
 		  cu_offset + uvalue);
 	  break;
 	case DW_OP_addrx:
 	  READ_ULEB (uvalue, data, end);
-	  printf ("DW_OP_addrx <0x%" PRIx64 ">", uvalue);
+	  printf ("DW_OP_addrx <%#" PRIx64 ">", uvalue);
 	  break;
 	case DW_OP_GNU_addr_index:
 	  READ_ULEB (uvalue, data, end);
-	  printf ("DW_OP_GNU_addr_index <0x%" PRIx64 ">", uvalue);
+	  printf ("DW_OP_GNU_addr_index <%#" PRIx64 ">", uvalue);
 	  break;
 	case DW_OP_GNU_const_index:
 	  READ_ULEB (uvalue, data, end);
-	  printf ("DW_OP_GNU_const_index <0x%" PRIx64 ">", uvalue);
+	  printf ("DW_OP_GNU_const_index <%#" PRIx64 ">", uvalue);
 	  break;
 	case DW_OP_GNU_variable_value:
 	  /* FIXME: Strictly speaking for 64-bit DWARF3 files
@@ -1675,7 +1675,7 @@ decode_location_expression (unsigned char * data,
 	    {
 	      SAFE_BYTE_GET_AND_INC (uvalue, data, offset_size, end);
 	    }
-	  printf ("DW_OP_GNU_variable_value: <0x%" PRIx64 ">", uvalue);
+	  printf ("DW_OP_GNU_variable_value: <%#" PRIx64 ">", uvalue);
 	  break;
 
 	  /* HP extensions.  */
@@ -1716,9 +1716,9 @@ decode_location_expression (unsigned char * data,
 	default:
 	  if (op >= DW_OP_lo_user
 	      && op <= DW_OP_hi_user)
-	    printf (_("(User defined location op 0x%x)"), op);
+	    printf (_("(User defined location op %#x)"), op);
 	  else
-	    printf (_("(Unknown location op 0x%x)"), op);
+	    printf (_("(Unknown location op %#x)"), op);
 	  /* No way to tell where the next op is, so just bail.  */
 	  return need_frame_base;
 	}
@@ -2508,7 +2508,7 @@ read_and_display_attr_value (unsigned long attribute,
     {
     case DW_FORM_ref_addr:
       if (!do_loc)
-	printf ("%c<0x%" PRIx64 ">", delimiter, uvalue);
+	printf ("%c<%#" PRIx64 ">", delimiter, uvalue);
       break;
 
     case DW_FORM_GNU_ref_alt:
@@ -2516,9 +2516,9 @@ read_and_display_attr_value (unsigned long attribute,
 	{
 	  if (do_wide)
 	    /* We have already printed the form name.  */
-	    printf ("%c<0x%" PRIx64 ">", delimiter, uvalue);
+	    printf ("%c<%#" PRIx64 ">", delimiter, uvalue);
 	  else
-	    printf ("%c<alt 0x%" PRIx64 ">", delimiter, uvalue);
+	    printf ("%c<alt %#" PRIx64 ">", delimiter, uvalue);
 	}
       /* FIXME: Follow the reference...  */
       break;
@@ -2529,14 +2529,14 @@ read_and_display_attr_value (unsigned long attribute,
     case DW_FORM_ref_sup4:
     case DW_FORM_ref_udata:
       if (!do_loc)
-	printf ("%c<0x%" PRIx64 ">", delimiter, uvalue + cu_offset);
+	printf ("%c<%#" PRIx64 ">", delimiter, uvalue + cu_offset);
       break;
 
     case DW_FORM_data4:
     case DW_FORM_addr:
     case DW_FORM_sec_offset:
       if (!do_loc)
-	printf ("%c0x%" PRIx64, delimiter, uvalue);
+	printf ("%c%#" PRIx64, delimiter, uvalue);
       break;
 
     case DW_FORM_flag_present:
@@ -2566,7 +2566,7 @@ read_and_display_attr_value (unsigned long attribute,
 	  uint64_t utmp = uvalue;
 	  if (form == DW_FORM_ref8)
 	    utmp += cu_offset;
-	  printf ("%c0x%" PRIx64, delimiter, utmp);
+	  printf ("%c%#" PRIx64, delimiter, utmp);
 	}
       break;
 
@@ -2574,9 +2574,9 @@ read_and_display_attr_value (unsigned long attribute,
       if (!do_loc)
 	{
 	  if (uvalue_hi == 0)
-	    printf (" 0x%" PRIx64, uvalue);
+	    printf (" %#" PRIx64, uvalue);
 	  else
-	    printf (" 0x%" PRIx64 "%016" PRIx64, uvalue_hi, uvalue);
+	    printf (" %#" PRIx64 "%016" PRIx64, uvalue_hi, uvalue);
 	}
       break;
 
@@ -2630,10 +2630,10 @@ read_and_display_attr_value (unsigned long attribute,
 	{
 	  if (do_wide)
 	    /* We have already displayed the form name.  */
-	    printf (_("%c(offset: 0x%" PRIx64 "): %s"),
+	    printf (_("%c(offset: %#" PRIx64 "): %s"),
 		    delimiter, uvalue, fetch_indirect_string (uvalue));
 	  else
-	    printf (_("%c(indirect string, offset: 0x%" PRIx64 "): %s"),
+	    printf (_("%c(indirect string, offset: %#" PRIx64 "): %s"),
 		    delimiter, uvalue, fetch_indirect_string (uvalue));
 	}
       break;
@@ -2643,10 +2643,10 @@ read_and_display_attr_value (unsigned long attribute,
 	{
 	  if (do_wide)
 	    /* We have already displayed the form name.  */
-	    printf (_("%c(offset: 0x%" PRIx64 "): %s"),
+	    printf (_("%c(offset: %#" PRIx64 "): %s"),
 		    delimiter, uvalue, fetch_indirect_line_string (uvalue));
 	  else
-	    printf (_("%c(indirect line string, offset: 0x%" PRIx64 "): %s"),
+	    printf (_("%c(indirect line string, offset: %#" PRIx64 "): %s"),
 		    delimiter, uvalue, fetch_indirect_line_string (uvalue));
 	}
       break;
@@ -2667,10 +2667,10 @@ read_and_display_attr_value (unsigned long attribute,
 					debug_info_p ? debug_info_p->str_offsets_base : 0);
 	  if (do_wide)
 	    /* We have already displayed the form name.  */
-	    printf (_("%c(offset: 0x%" PRIx64 "): %s"),
+	    printf (_("%c(offset: %#" PRIx64 "): %s"),
 		    delimiter, uvalue, strng);
 	  else
-	    printf (_("%c(indexed string: 0x%" PRIx64 "): %s"),
+	    printf (_("%c(indexed string: %#" PRIx64 "): %s"),
 		    delimiter, uvalue, strng);
 	}
       break;
@@ -2680,10 +2680,10 @@ read_and_display_attr_value (unsigned long attribute,
 	{
 	  if (do_wide)
 	    /* We have already displayed the form name.  */
-	    printf (_("%c(offset: 0x%" PRIx64 ") %s"),
+	    printf (_("%c(offset: %#" PRIx64 ") %s"),
 		    delimiter, uvalue, fetch_alt_indirect_string (uvalue));
 	  else
-	    printf (_("%c(alt indirect string, offset: 0x%" PRIx64 ") %s"),
+	    printf (_("%c(alt indirect string, offset: %#" PRIx64 ") %s"),
 		    delimiter, uvalue, fetch_alt_indirect_string (uvalue));
 	}
       break;
@@ -2694,7 +2694,7 @@ read_and_display_attr_value (unsigned long attribute,
 
     case DW_FORM_ref_sig8:
       if (!do_loc)
-	printf ("%c%s: 0x%" PRIx64, delimiter, do_wide ? "" : "signature",
+	printf ("%c%s: %#" PRIx64, delimiter, do_wide ? "" : "signature",
 		uvalue);
       break;
 
@@ -2776,18 +2776,18 @@ read_and_display_attr_value (unsigned long attribute,
 
 	  /* We have already displayed the form name.  */
 	  if (idx != (uint64_t) -1)
-	    printf (_("%c(index: 0x%" PRIx64 "): %" PRIx64),
+	    printf (_("%c(index: %#" PRIx64 "): %#" PRIx64),
 		    delimiter, uvalue, idx);
 	}
       break;
 
     case DW_FORM_strp_sup:
       if (!do_loc)
-	printf ("%c<0x%" PRIx64 ">", delimiter, uvalue + cu_offset);
+	printf ("%c<%#" PRIx64 ">", delimiter, uvalue + cu_offset);
       break;
 
     default:
-      warn (_("Unrecognized form: 0x%lx\n"), form);
+      warn (_("Unrecognized form: %#lx\n"), form);
       /* What to do?  Consume a byte maybe?  */
       ++data;
       break;
@@ -3828,9 +3828,9 @@ process_debug_info (struct dwarf_section * section,
 
       if (!do_loc && dwarf_start_die == 0)
 	{
-	  printf (_("  Compilation Unit @ offset 0x%" PRIx64 ":\n"),
+	  printf (_("  Compilation Unit @ offset %#" PRIx64 ":\n"),
 		  cu_offset);
-	  printf (_("   Length:        0x%" PRIx64 " (%s)\n"),
+	  printf (_("   Length:        %#" PRIx64 " (%s)\n"),
 		  compunit.cu_length,
 		  offset_size == 8 ? "64-bit" : "32-bit");
 	  printf (_("   Version:       %d\n"), compunit.cu_version);
@@ -3842,29 +3842,29 @@ process_debug_info (struct dwarf_section * section,
 		      name ? name : "???",
 		      compunit.cu_unit_type);
 	    }
-	  printf (_("   Abbrev Offset: 0x%" PRIx64 "\n"),
+	  printf (_("   Abbrev Offset: %#" PRIx64 "\n"),
 		  compunit.cu_abbrev_offset);
 	  printf (_("   Pointer Size:  %d\n"), compunit.cu_pointer_size);
 	  if (do_types)
 	    {
-	      printf (_("   Signature:     0x%" PRIx64 "\n"), signature);
-	      printf (_("   Type Offset:   0x%" PRIx64 "\n"), type_offset);
+	      printf (_("   Signature:     %#" PRIx64 "\n"), signature);
+	      printf (_("   Type Offset:   %#" PRIx64 "\n"), type_offset);
 	    }
 	  if (do_dwo_id)
-	    printf (_("   DWO ID:        0x%" PRIx64 "\n"), dwo_id);
+	    printf (_("   DWO ID:        %#" PRIx64 "\n"), dwo_id);
 	  if (this_set != NULL)
 	    {
 	      uint64_t *offsets = this_set->section_offsets;
 	      size_t *sizes = this_set->section_sizes;
 
 	      printf (_("   Section contributions:\n"));
-	      printf (_("    .debug_abbrev.dwo:       0x%" PRIx64 "  0x%zx\n"),
+	      printf (_("    .debug_abbrev.dwo:       %#" PRIx64 "  %#zx\n"),
 		      offsets[DW_SECT_ABBREV], sizes[DW_SECT_ABBREV]);
-	      printf (_("    .debug_line.dwo:         0x%" PRIx64 "  0x%zx\n"),
+	      printf (_("    .debug_line.dwo:         %#" PRIx64 "  %#zx\n"),
 		      offsets[DW_SECT_LINE], sizes[DW_SECT_LINE]);
-	      printf (_("    .debug_loc.dwo:          0x%" PRIx64 "  0x%zx\n"),
+	      printf (_("    .debug_loc.dwo:          %#" PRIx64 "  %#zx\n"),
 		      offsets[DW_SECT_LOC], sizes[DW_SECT_LOC]);
-	      printf (_("    .debug_str_offsets.dwo:  0x%" PRIx64 "  0x%zx\n"),
+	      printf (_("    .debug_str_offsets.dwo:  %#" PRIx64 "  %#zx\n"),
 		      offsets[DW_SECT_STR_OFFSETS], sizes[DW_SECT_STR_OFFSETS]);
 	    }
 	}
@@ -4286,7 +4286,7 @@ display_formatted_table (unsigned char *data,
       return end;
     }
 
-  printf (_("\n The %s (offset 0x%tx, lines %" PRIu64 ", columns %u):\n"),
+  printf (_("\n The %s (offset %#tx, lines %" PRIu64 ", columns %u):\n"),
 	  table_name, data - start, data_count, format_count);
 
   printf (_("  Entry"));
@@ -4489,7 +4489,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 						& end_of_sequence)) == NULL)
 	    return 0;
 
-	  printf (_("  Offset:                      0x%tx\n"), data - start);
+	  printf (_("  Offset:                      %#tx\n"), data - start);
 	  printf (_("  Length:                      %" PRId64 "\n"), linfo.li_length);
 	  printf (_("  DWARF Version:               %d\n"), linfo.li_version);
 	  if (linfo.li_version >= 5)
@@ -4553,7 +4553,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 		{
 		  unsigned int last_dir_entry = 0;
 
-		  printf (_("\n The Directory Table (offset 0x%tx):\n"),
+		  printf (_("\n The Directory Table (offset %#tx):\n"),
 			  data - start);
 
 		  while (data < end && *data != 0)
@@ -4579,7 +4579,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 		printf (_("\n The File Name Table is empty.\n"));
 	      else
 		{
-		  printf (_("\n The File Name Table (offset 0x%tx):\n"),
+		  printf (_("\n The File Name Table (offset %#tx):\n"),
 			  data - start);
 		  printf (_("  Entry\tDir\tTime\tSize\tName\n"));
 
@@ -4648,7 +4648,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 			state_machine_regs.view = 0;
 		      printf (_("  Special opcode %d: "
 				"advance Address by %" PRIu64
-				" to 0x%" PRIx64 "%s"),
+				" to %#" PRIx64 "%s"),
 			      op_code, uladv, state_machine_regs.address,
 			      verbose_view && uladv
 			      ? _(" (reset view)") : "");
@@ -4668,7 +4668,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 			state_machine_regs.view = 0;
 		      printf (_("  Special opcode %d: "
 				"advance Address by %" PRIu64
-				" to 0x%" PRIx64 "[%d]%s"),
+				" to %#" PRIx64 "[%d]%s"),
 			      op_code, uladv, state_machine_regs.address,
 			      state_machine_regs.op_index,
 			      verbose_view && addrdelta
@@ -4711,7 +4711,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 			if (uladv)
 			  state_machine_regs.view = 0;
 			printf (_("  Advance PC by %" PRIu64
-				  " to 0x%" PRIx64 "%s\n"),
+				  " to %#" PRIx64 "%s\n"),
 				uladv, state_machine_regs.address,
 				verbose_view && uladv
 				? _(" (reset view)") : "");
@@ -4730,7 +4730,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 			if (addrdelta)
 			  state_machine_regs.view = 0;
 			printf (_("  Advance PC by %" PRIu64
-				  " to 0x%" PRIx64 "[%d]%s\n"),
+				  " to %#" PRIx64 "[%d]%s\n"),
 				uladv, state_machine_regs.address,
 				state_machine_regs.op_index,
 				verbose_view && addrdelta
@@ -4779,7 +4779,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 			if (uladv)
 			  state_machine_regs.view = 0;
 			printf (_("  Advance PC by constant %" PRIu64
-				  " to 0x%" PRIx64 "%s\n"),
+				  " to %#" PRIx64 "%s\n"),
 				uladv, state_machine_regs.address,
 				verbose_view && uladv
 				? _(" (reset view)") : "");
@@ -4798,7 +4798,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 			if (addrdelta)
 			  state_machine_regs.view = 0;
 			printf (_("  Advance PC by constant %" PRIu64
-				  " to 0x%" PRIx64 "[%d]%s\n"),
+				  " to %#" PRIx64 "[%d]%s\n"),
 				uladv, state_machine_regs.address,
 				state_machine_regs.op_index,
 				verbose_view && addrdelta
@@ -4811,7 +4811,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 		    state_machine_regs.address += uladv;
 		    state_machine_regs.op_index = 0;
 		    printf (_("  Advance PC by fixed size amount %" PRIu64
-			      " to 0x%" PRIx64 "\n"),
+			      " to %#" PRIx64 "\n"),
 			    uladv, state_machine_regs.address);
 		    /* Do NOT reset view.  */
 		    break;
@@ -4836,7 +4836,7 @@ display_debug_lines_raw (struct dwarf_section *  section,
 		      for (i = standard_opcodes[op_code - 1]; i > 0 ; --i)
 			{
 			  READ_ULEB (uladv, data, end);
-			  printf ("0x%" PRIx64 "%s", uladv, i == 1 ? "" : ", ");
+			  printf ("%#" PRIx64 "%s", uladv, i == 1 ? "" : ", ");
 			}
 		    putchar ('\n');
 		    break;
@@ -5476,7 +5476,7 @@ display_debug_lines_decoded (struct dwarf_section *  section,
 		      uint64_t val;
 
 		      READ_ULEB (val, data, end);
-		      printf ("0x%" PRIx64 "%s", val, i == 1 ? "" : ", ");
+		      printf ("%#" PRIx64 "%s", val, i == 1 ? "" : ", ");
 		    }
 		putchar ('\n');
 		break;
@@ -5740,7 +5740,7 @@ display_debug_pubnames_worker (struct dwarf_section *section,
 	      names.pn_length);
       printf (_("  Version:                             %d\n"),
 	      names.pn_version);
-      printf (_("  Offset into .debug_info section:     0x%" PRIx64 "\n"),
+      printf (_("  Offset into .debug_info section:     %#" PRIx64 "\n"),
 	      names.pn_offset);
       printf (_("  Size of area in .debug_info section: %" PRId64 "\n"),
 	      names.pn_size);
@@ -6040,13 +6040,13 @@ display_debug_macro (struct dwarf_section *section,
 
       SAFE_BYTE_GET_AND_INC (flags, curr, 1, end);
       offset_size = (flags & 1) ? 8 : 4;
-      printf (_("  Offset:                      0x%" PRIx64 "\n"), sec_offset);
+      printf (_("  Offset:                      %#" PRIx64 "\n"), sec_offset);
       printf (_("  Version:                     %d\n"), version);
       printf (_("  Offset size:                 %d\n"), offset_size);
       if (flags & 2)
 	{
 	  SAFE_BYTE_GET_AND_INC (line_offset, curr, offset_size, end);
-	  printf (_("  Offset into .debug_line:     0x%" PRIx64 "\n"),
+	  printf (_("  Offset into .debug_line:     %#" PRIx64 "\n"),
 		  line_offset);
 	}
       if (flags & 4)
@@ -6196,7 +6196,7 @@ display_debug_macro (struct dwarf_section *section,
 
 	    case DW_MACRO_import:
 	      SAFE_BYTE_GET_AND_INC (offset, curr, offset_size, end);
-	      printf (_(" DW_MACRO_import - offset : 0x%" PRIx64 "\n"),
+	      printf (_(" DW_MACRO_import - offset : %#" PRIx64 "\n"),
 		      offset);
 	      break;
 
@@ -6204,7 +6204,7 @@ display_debug_macro (struct dwarf_section *section,
 	      READ_ULEB (lineno, curr, end);
 	      SAFE_BYTE_GET_AND_INC (offset, curr, offset_size, end);
 	      printf (_(" DW_MACRO_define_sup - lineno : %d"
-			" macro offset : 0x%" PRIx64 "\n"),
+			" macro offset : %#" PRIx64 "\n"),
 		      lineno, offset);
 	      break;
 
@@ -6212,13 +6212,13 @@ display_debug_macro (struct dwarf_section *section,
 	      READ_ULEB (lineno, curr, end);
 	      SAFE_BYTE_GET_AND_INC (offset, curr, offset_size, end);
 	      printf (_(" DW_MACRO_undef_sup - lineno : %d"
-			" macro offset : 0x%" PRIx64 "\n"),
+			" macro offset : %#" PRIx64 "\n"),
 		      lineno, offset);
 	      break;
 
 	    case DW_MACRO_import_sup:
 	      SAFE_BYTE_GET_AND_INC (offset, curr, offset_size, end);
-	      printf (_(" DW_MACRO_import_sup - offset : 0x%" PRIx64 "\n"),
+	      printf (_(" DW_MACRO_import_sup - offset : %#" PRIx64 "\n"),
 		      offset);
 	      break;
 
@@ -6233,7 +6233,7 @@ display_debug_macro (struct dwarf_section *section,
 	      else
 		printf (" DW_MACRO_undef_strx ");
 	      if (do_wide)
-		printf (_("(with offset %" PRIx64 ") "), offset);
+		printf (_("(with offset %#" PRIx64 ") "), offset);
 	      printf (_("lineno : %d macro : %s\n"),
 		      lineno, string);
 	      break;
@@ -6308,7 +6308,7 @@ display_debug_abbrev (struct dwarf_section *section,
 	break;
 
       if (list->first_abbrev)
-	printf (_("  Number TAG (0x%" PRIx64 ")\n"), offset);
+	printf (_("  Number TAG (%#" PRIx64 ")\n"), offset);
 
       for (entry = list->first_abbrev; entry; entry = entry->next)
 	{
@@ -6948,7 +6948,7 @@ display_offset_entry_loclists (struct dwarf_section *section)
       uint32_t i;
       bool is_64bit;
 
-      printf (_("Table at Offset 0x%tx\n"), start - section->start);
+      printf (_("Table at Offset %#tx\n"), start - section->start);
 
       SAFE_BYTE_GET_AND_INC (length, start, 4, end);
       if (length == 0xffffffff)
@@ -6964,7 +6964,7 @@ display_offset_entry_loclists (struct dwarf_section *section)
       SAFE_BYTE_GET_AND_INC (segment_selector_size, start, 1, end);
       SAFE_BYTE_GET_AND_INC (offset_entry_count, start, 4, end);
 
-      printf (_("  Length:          0x%" PRIx64 "\n"), length);
+      printf (_("  Length:          %#" PRIx64 "\n"), length);
       printf (_("  DWARF version:   %u\n"), version);
       printf (_("  Address size:    %u\n"), address_size);
       printf (_("  Segment size:    %u\n"), segment_selector_size);
@@ -6993,7 +6993,7 @@ display_offset_entry_loclists (struct dwarf_section *section)
 	  return 0;
 	}
 
-      printf (_("\n   Offset Entries starting at 0x%tx:\n"),
+      printf (_("\n   Offset Entries starting at %#tx:\n"),
 	      start - section->start);
 
       for (i = 0; i < offset_entry_count; i++)
@@ -7001,7 +7001,7 @@ display_offset_entry_loclists (struct dwarf_section *section)
 	  uint64_t entry;
 
 	  SAFE_BYTE_GET_AND_INC (entry, start, is_64bit ? 8 : 4, end);
-	  printf (_("    [%6u] 0x%" PRIx64 "\n"), i, entry);
+	  printf (_("    [%6u] %#" PRIx64 "\n"), i, entry);
 	}
 
       putchar ('\n');
@@ -7545,7 +7545,7 @@ display_debug_aranges (struct dwarf_section *section,
 
       printf (_("  Length:                   %" PRId64 "\n"), arange.ar_length);
       printf (_("  Version:                  %d\n"), arange.ar_version);
-      printf (_("  Offset into .debug_info:  0x%" PRIx64 "\n"),
+      printf (_("  Offset into .debug_info:  %#" PRIx64 "\n"),
 	      arange.ar_info_offset);
       printf (_("  Pointer Size:             %d\n"), arange.ar_pointer_size);
       printf (_("  Segment Size:             %d\n"), arange.ar_segment_size);
@@ -7588,7 +7588,7 @@ display_debug_aranges (struct dwarf_section *section,
 				 end_ranges);
 	  printf ("    ");
 	  print_hex (address, address_size);
-	  print_hex (length, address_size);
+	  print_hex_ns (length, address_size);
 	  putchar ('\n');
 	}
 
@@ -7667,7 +7667,7 @@ display_debug_addr (struct dwarf_section *section,
       unsigned int idx;
       unsigned int address_size = debug_addr_info [i]->pointer_size;
 
-      printf (_("  For compilation unit at offset 0x%" PRIx64 ":\n"),
+      printf (_("  For compilation unit at offset %#" PRIx64 ":\n"),
 	      debug_addr_info [i]->cu_offset);
 
       printf (_("\tIndex\tAddress\n"));
@@ -7709,7 +7709,7 @@ display_debug_addr (struct dwarf_section *section,
 	{
 	  uint64_t base = byte_get (entry, address_size);
 	  printf (_("\t%d:\t"), idx);
-	  print_hex (base, address_size);
+	  print_hex_ns (base, address_size);
 	  printf ("\n");
 	  entry += address_size;
 	  idx++;
@@ -7895,12 +7895,12 @@ display_debug_ranges_list (unsigned char *  start,
 	}
 
       print_hex (begin + base_address, pointer_size);
-      print_hex (end + base_address, pointer_size);
+      print_hex_ns (end + base_address, pointer_size);
 
       if (begin == end)
-	fputs (_("(start == end)"), stdout);
+	fputs (_(" (start == end)"), stdout);
       else if (begin > end)
-	fputs (_("(start > end)"), stdout);
+	fputs (_(" (start > end)"), stdout);
 
       putchar ('\n');
     }
@@ -8076,8 +8076,8 @@ display_debug_rnglists (struct dwarf_section *section)
       SAFE_BYTE_GET_AND_INC (segment_selector_size, start, 1, finish);
       SAFE_BYTE_GET_AND_INC (offset_entry_count, start, 4, finish);
 
-      printf (_(" Table at Offset: 0x%" PRIx64 ":\n"), offset);
-      printf (_("  Length:          0x%" PRIx64 "\n"), initial_length);
+      printf (_(" Table at Offset: %#" PRIx64 ":\n"), offset);
+      printf (_("  Length:          %#" PRIx64 "\n"), initial_length);
       printf (_("  DWARF version:   %u\n"), version);
       printf (_("  Address size:    %u\n"), address_size);
       printf (_("  Segment size:    %u\n"), segment_selector_size);
@@ -8103,7 +8103,7 @@ display_debug_rnglists (struct dwarf_section *section)
 
       if (offset_entry_count != 0)
 	{
-	  printf (_("\n   Offsets starting at 0x%tx:\n"),
+	  printf (_("\n   Offsets starting at %#tx:\n"),
 		  start - section->start);
 
 	  for (i = 0; i < offset_entry_count; i++)
@@ -8111,7 +8111,7 @@ display_debug_rnglists (struct dwarf_section *section)
 	      uint64_t entry;
 
 	      SAFE_BYTE_GET_AND_INC (entry, start, offset_size, finish);
-	      printf (_("    [%6u] 0x%" PRIx64 "\n"), i, entry);
+	      printf (_("    [%6u] %#" PRIx64 "\n"), i, entry);
 	    }
 	}
       else
@@ -8122,7 +8122,7 @@ display_debug_rnglists (struct dwarf_section *section)
 	  uint64_t indx = start - table_start;
 
 	  offset = start - section->start;
-	  printf (_("\n  Offset: %" PRIx64 ", Index: 0x%" PRIx64 "\n"),
+	  printf (_("\n  Offset: %#" PRIx64 ", Index: %#" PRIx64 "\n"),
 		  offset, indx);
 	  printf (_("    Offset   Begin    End\n"));
 	  start = display_debug_rnglists_list
@@ -10094,7 +10094,7 @@ display_debug_names (struct dwarf_section *section, void *file)
 	  uint64_t cu_offset;
 
 	  SAFE_BYTE_GET_AND_INC (cu_offset, hdrptr, offset_size, unit_end);
-	  printf ("[%3u] 0x%" PRIx64 "\n", i, cu_offset);
+	  printf ("[%3u] %#" PRIx64 "\n", i, cu_offset);
 	}
       putchar ('\n');
 
@@ -10107,7 +10107,7 @@ display_debug_names (struct dwarf_section *section, void *file)
 	  uint64_t tu_offset;
 
 	  SAFE_BYTE_GET_AND_INC (tu_offset, hdrptr, offset_size, unit_end);
-	  printf ("[%3u] 0x%" PRIx64 "\n", i, tu_offset);
+	  printf ("[%3u] %#" PRIx64 "\n", i, tu_offset);
 	}
       putchar ('\n');
 
@@ -10121,7 +10121,7 @@ display_debug_names (struct dwarf_section *section, void *file)
 
 	  SAFE_BYTE_GET_AND_INC (signature, hdrptr, 8, unit_end);
 	  printf (_("[%3u] "), i);
-	  print_hex (signature, 8);
+	  print_hex_ns (signature, 8);
 	  putchar ('\n');
 	}
       putchar ('\n');
@@ -10504,7 +10504,7 @@ display_gdb_index (struct dwarf_section *section,
       uint64_t cu_offset = byte_get_little_endian (cu_list + i * 16, 8);
       uint64_t cu_length = byte_get_little_endian (cu_list + i * 16 + 8, 8);
 
-      printf ("[%3u] 0x%" PRIx64 " - 0x%" PRIx64 "\n",
+      printf ("[%3u] %#" PRIx64 " - %#" PRIx64 "\n",
 	      i, cu_offset, cu_offset + cu_length - 1);
     }
 
@@ -10515,9 +10515,9 @@ display_gdb_index (struct dwarf_section *section,
       uint64_t type_offset = byte_get_little_endian (tu_list + i * 24 + 8, 8);
       uint64_t signature = byte_get_little_endian (tu_list + i * 24 + 16, 8);
 
-      printf ("[%3u] 0x%" PRIx64 " 0x%" PRIx64 " ",
+      printf ("[%3u] %#" PRIx64 " %#" PRIx64 " ",
 	      i, tu_offset, type_offset);
-      print_hex (signature, 8);
+      print_hex_ns (signature, 8);
       printf ("\n");
     }
 
@@ -10774,7 +10774,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
 		}
 
 	      if (do_display)
-		printf (_("  [%3d] Signature:  0x%" PRIx64 "  Sections: "),
+		printf (_("  [%3d] Signature:  %#" PRIx64 "  Sections: "),
 			i, signature);
 	      for (;;)
 		{
@@ -10888,7 +10888,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
 
 	      prow = poffsets + (row - 1) * ncols * 4;
 	      if (do_display)
-		printf ("  [%3d] 0x%" PRIx64, i, signature);
+		printf ("  [%3d] %#" PRIx64, i, signature);
 	      for (j = 0; j < ncols; j++)
 		{
 		  unsigned char *p = prow + j * 4;
@@ -10946,7 +10946,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
 	      prow = psizes + (row - 1) * ncols * 4;
 
 	      if (do_display)
-		printf ("  [%3d] 0x%" PRIx64, i, signature);
+		printf ("  [%3d] %#" PRIx64, i, signature);
 
 	      for (j = 0; j < ncols; j++)
 		{
diff --git a/binutils/testsuite/binutils-all/dw2-1.W b/binutils/testsuite/binutils-all/dw2-1.W
index dba0483ca2f..b11596fefe9 100644
--- a/binutils/testsuite/binutils-all/dw2-1.W
+++ b/binutils/testsuite/binutils-all/dw2-1.W
@@ -3,13 +3,13 @@
 
 Contents of the .z?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x.
     <14>   DW_AT_low_pc      : 0x.
     <18>   DW_AT_name        : file1.txt
@@ -32,7 +32,7 @@ Contents of the .z?debug_info section:
 
 Raw dump of debug contents of section .z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -76,7 +76,7 @@ Raw dump of debug contents of section .z?debug_line:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
diff --git a/binutils/testsuite/binutils-all/dw2-3.W b/binutils/testsuite/binutils-all/dw2-3.W
index 37fd4189dff..bfff6d40882 100644
--- a/binutils/testsuite/binutils-all/dw2-3.W
+++ b/binutils/testsuite/binutils-all/dw2-3.W
@@ -3,15 +3,15 @@
 
 Contents of the .z?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x5e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x4
-    <14>   DW_AT_low_pc      : 0x0
+    <14>   DW_AT_low_pc      : (0x)?0
     <18>   DW_AT_name        : file1.txt
     <22>   DW_AT_producer    : GNU C 3.3.3
     <2e>   DW_AT_language    : 1	\(ANSI C\)
@@ -21,7 +21,7 @@ Contents of the .z?debug_info section:
     <32>   DW_AT_decl_line   : 2
     <33>   DW_AT_name        : func_cu1
     <3c>   DW_AT_type        : <0x85>
-    <40>   DW_AT_low_pc      : 0x0
+    <40>   DW_AT_low_pc      : (0x)?0
     <44>   DW_AT_high_pc     : 0x4
     <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
@@ -58,7 +58,7 @@ Contents of the .z?debug_info section:
 
 Contents of the .z?debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -112,7 +112,7 @@ Contents of the .z?debug_abbrev section:
 
 Raw dump of debug contents of section .z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -146,7 +146,7 @@ Raw dump of debug contents of section .z?debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x0000002d\]  Extended opcode 2: set Address to 0x0
+  \[0x0000002d\]  Extended opcode 2: set Address to (0x)?0
   \[0x00000034\]  Advance Line by 3 to 4
   \[0x00000036\]  Copy
   \[0x00000037\]  Copy \(view 1\)
diff --git a/binutils/testsuite/binutils-all/dw2-3gabi.W b/binutils/testsuite/binutils-all/dw2-3gabi.W
index 5663517344f..a53fab670a6 100644
--- a/binutils/testsuite/binutils-all/dw2-3gabi.W
+++ b/binutils/testsuite/binutils-all/dw2-3gabi.W
@@ -3,15 +3,15 @@
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x5e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x4
-    <14>   DW_AT_low_pc      : 0x0
+    <14>   DW_AT_low_pc      : (0x)?0
     <18>   DW_AT_name        : file1.txt
     <22>   DW_AT_producer    : GNU C 3.3.3
     <2e>   DW_AT_language    : 1	\(ANSI C\)
@@ -21,7 +21,7 @@ Contents of the .debug_info section:
     <32>   DW_AT_decl_line   : 2
     <33>   DW_AT_name        : func_cu1
     <3c>   DW_AT_type        : <0x85>
-    <40>   DW_AT_low_pc      : 0x0
+    <40>   DW_AT_low_pc      : (0x)?0
     <44>   DW_AT_high_pc     : 0x4
     <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
@@ -58,7 +58,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -112,7 +112,7 @@ Contents of the .debug_abbrev section:
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -146,7 +146,7 @@ Raw dump of debug contents of section .debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x0000002d\]  Extended opcode 2: set Address to 0x0
+  \[0x0000002d\]  Extended opcode 2: set Address to (0x)?0
   \[0x00000034\]  Advance Line by 3 to 4
   \[0x00000036\]  Copy
   \[0x00000037\]  Copy \(view 1\)
diff --git a/binutils/testsuite/binutils-all/dw2-ranges.W b/binutils/testsuite/binutils-all/dw2-ranges.W
index 4dfd24834ca..bdf08f6862a 100644
--- a/binutils/testsuite/binutils-all/dw2-ranges.W
+++ b/binutils/testsuite/binutils-all/dw2-ranges.W
@@ -5,7 +5,7 @@ Contents of the \.debug_ranges section:
 
     Offset   Begin    End
     00000000 ffffffff 00000004 \(base address\)
-    00000000 00000004 00000008 
+    00000000 00000004 00000008 ?
     00000000 ffffffff 00000008 \(base address\)
-    00000000 00000008 0000000c 
+    00000000 00000008 0000000c ?
     00000000 <End of list>
diff --git a/binutils/testsuite/binutils-all/dw5-op.W b/binutils/testsuite/binutils-all/dw5-op.W
index 544a0712275..f1406c1f9d2 100644
--- a/binutils/testsuite/binutils-all/dw5-op.W
+++ b/binutils/testsuite/binutils-all/dw5-op.W
@@ -1,23 +1,23 @@
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       5
    Unit Type:     DW_UT_compile \(1\)
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
  <0><c>: Abbrev Number: 3 \(DW_TAG_compile_unit\)
     <d>   DW_AT_producer    : \(indirect string, offset: 0xa\): GNU C11 7.0.1 20170218 \(experimental\) -mtune=generic -march=x86-64 -gdwarf-5 -O2
     <11>   DW_AT_language    : 29	\(C11\)
     <12>   DW_AT_name        : \(indirect line string, offset: 0x2\): main.c
-    <16>   DW_AT_comp_dir    : \(indirect line string, offset: 0x0\): 
-    <1a>   DW_AT_ranges      : 0x0
-    <1e>   DW_AT_low_pc      : 0x0
-    <26>   DW_AT_stmt_list   : 0x0
+    <16>   DW_AT_comp_dir    : \(indirect line string, offset: (0x)?0\): 
+    <1a>   DW_AT_ranges      : (0x)?0
+    <1e>   DW_AT_low_pc      : (0x)?0
+    <26>   DW_AT_stmt_list   : (0x)?0
  <1><2a>: Abbrev Number: 1 \(DW_TAG_base_type\)
     <2b>   DW_AT_byte_size   : 4
     <2c>   DW_AT_encoding    : 5	\(signed\)
-    <2d>   DW_AT_name        : \(indirect string, offset: 0x0\): main
+    <2d>   DW_AT_name        : \(indirect string, offset: (0x)?0\): main
  <1><31>: Abbrev Number: 2 \(DW_TAG_variable\)
     <32>   DW_AT_name        : \(indirect string, offset: 0x5\): xvar
     <36>   DW_AT_decl_file   : 1
@@ -31,5 +31,5 @@ Contents of the .debug_info section:
     <4a>   DW_AT_decl_line   : 3
     <4b>   DW_AT_type        : <0x2a>
     <4f>   DW_AT_external    : 1
-    <4f>   DW_AT_location    :	\(DW_OP_addrx <0x0>\)
+    <4f>   DW_AT_location    :	\(DW_OP_addrx <(0x)?0>\)
 
diff --git a/binutils/testsuite/binutils-all/dw5.W b/binutils/testsuite/binutils-all/dw5.W
index bfcdac175ba..ff54134f29e 100644
--- a/binutils/testsuite/binutils-all/dw5.W
+++ b/binutils/testsuite/binutils-all/dw5.W
@@ -1,19 +1,19 @@
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x160 \(32-bit\)
    Version:       5
    Unit Type:     DW_UT_compile \(1\)
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
  <0><c>: Abbrev Number: 6 \(DW_TAG_compile_unit\)
     <d>   DW_AT_producer    : \(indirect string, offset: 0x43\): GNU C11 7.0.1 20170218 \(experimental\) -mtune=generic -march=x86-64 -gdwarf-5 -O2
     <11>   DW_AT_language    : 29	\(C11\)
     <12>   DW_AT_name        : \(indirect line string, offset: 0x14\): main.c
-    <16>   DW_AT_comp_dir    : \(indirect line string, offset: 0x0\): 
+    <16>   DW_AT_comp_dir    : \(indirect line string, offset: (0x)?0\): 
     <1a>   DW_AT_ranges      : 0xc
-    <1e>   DW_AT_low_pc      : 0x0
-    <26>   DW_AT_stmt_list   : 0x0
+    <1e>   DW_AT_low_pc      : (0x)?0
+    <26>   DW_AT_stmt_list   : (0x)?0
  <1><2a>: Abbrev Number: 1 \(DW_TAG_base_type\)
     <2b>   DW_AT_byte_size   : 1
     <2c>   DW_AT_encoding    : 8	\(unsigned char\)
@@ -25,7 +25,7 @@ Contents of the .debug_info section:
  <1><38>: Abbrev Number: 1 \(DW_TAG_base_type\)
     <39>   DW_AT_byte_size   : 4
     <3a>   DW_AT_encoding    : 7	\(unsigned\)
-    <3b>   DW_AT_name        : \(indirect string, offset: 0x0\): unsigned int
+    <3b>   DW_AT_name        : \(indirect string, offset: (0x)?0\): unsigned int
  <1><3f>: Abbrev Number: 1 \(DW_TAG_base_type\)
     <40>   DW_AT_byte_size   : 8
     <41>   DW_AT_encoding    : 7	\(unsigned\)
@@ -172,7 +172,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_base_type    \[no children\]
     DW_AT_byte_size    DW_FORM_data1
     DW_AT_encoding     DW_FORM_data1
@@ -289,7 +289,7 @@ Contents of the .debug_rnglists section:
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      144
   DWARF Version:               5
   Address size \(bytes\):        8
@@ -318,7 +318,7 @@ Raw dump of debug contents of section .debug_line:
 
  The Directory Table \(offset 0x22, lines 3, columns 1\):
   Entry	Name
-  0	\(indirect line string, offset: 0x0\): 
+  0	\(indirect line string, offset: (0x)?0\): 
   1	\(indirect line string, offset: 0x1\): 
   2	\(indirect line string, offset: 0x22\): /usr/include
 
diff --git a/binutils/testsuite/binutils-all/dwarf-attributes.W b/binutils/testsuite/binutils-all/dwarf-attributes.W
index 4e8386ae880..cfc734c8448 100644
--- a/binutils/testsuite/binutils-all/dwarf-attributes.W
+++ b/binutils/testsuite/binutils-all/dwarf-attributes.W
@@ -1,10 +1,10 @@
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x40 \(32-bit\)
    Version:       5
    Unit Type:     DW_UT_compile \(1\)
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><c>: Abbrev Number: 1 \(User TAG value: 0x5555\)
     <d>   DW_AT_ordering    : 1	\(column major\)
diff --git a/binutils/testsuite/binutils-all/i386/compressed-1a.d b/binutils/testsuite/binutils-all/i386/compressed-1a.d
index bf04974a894..d8aabd66829 100644
--- a/binutils/testsuite/binutils-all/i386/compressed-1a.d
+++ b/binutils/testsuite/binutils-all/i386/compressed-1a.d
@@ -7,7 +7,7 @@
 
 Contents of the .[z]?debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_producer     DW_FORM_strp
     DW_AT_language     DW_FORM_data1
@@ -29,25 +29,25 @@ Contents of the .[z]?debug_abbrev section:
 
 Contents of the .[z]?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x46 \(32-bit\)
    Version:       3
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_producer    : \(indirect string, offset: 0x0\): GNU C 4.4.4
+    <c>   DW_AT_producer    : \(indirect string, offset: (0x)?0\): GNU C 4.4.4
     <10>   DW_AT_language    : 1	\(ANSI C\)
     <11>   DW_AT_name        : \(indirect string, offset: 0x18\): compressed-1.c
     <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x16\): .
-    <19>   DW_AT_low_pc      : 0x0
+    <19>   DW_AT_low_pc      : (0x)?0
     <1d>   DW_AT_high_pc     : 0x1b
-    <21>   DW_AT_stmt_list   : 0x0
+    <21>   DW_AT_stmt_list   : (0x)?0
  <1><25>: Abbrev Number: 2 \(DW_TAG_subprogram\)
     <26>   DW_AT_external    : 1
     <27>   DW_AT_name        : \(indirect string, offset: 0xc\): foo2
     <2b>   DW_AT_decl_file   : 1
     <2c>   DW_AT_decl_line   : 10
-    <2d>   DW_AT_low_pc      : 0x0
+    <2d>   DW_AT_low_pc      : (0x)?0
     <31>   DW_AT_high_pc     : 0x2
     <35>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
  <1><37>: Abbrev Number: 2 \(DW_TAG_subprogram\)
@@ -62,7 +62,7 @@ Contents of the .[z]?debug_info section:
 
 Raw dump of debug contents of section .[z]?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      64
   DWARF Version:               .
   Prologue Length:             37
@@ -93,10 +93,10 @@ Raw dump of debug contents of section .[z]?debug_line:
   1	0	0	0	compressed-1.c
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Advance Line by 10 to 11
   \[0x.*\]  Copy
-  \[0x.*\]  Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 \(view 1\)
+  \[0x.*\]  Special opcode 6: advance Address by 0 to (0x)?0 and Line by 1 to 12 \(view 1\)
   \[0x.*\]  Advance Line by -7 to 5
   \[0x.*\]  Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5
   \[0x.*\]  Special opcode 49: advance Address by 3 to 0x13 and Line by 2 to 7
@@ -109,7 +109,7 @@ Contents of the .[z]?debug_pubnames section:
 
   Length:                              32
   Version:                             2
-  Offset into .[z]?debug_info section:     0x0
+  Offset into .[z]?debug_info section:     (0x)?0
   Size of area in .[z]?debug_info section: 74
 
     Offset	Name
@@ -120,13 +120,13 @@ Contents of the .[z]?debug_aranges section:
 
   Length:                   28
   Version:                  2
-  Offset into .[z]?debug_info:  0x0
+  Offset into .[z]?debug_info:  (0x)?0
   Pointer Size:             4
   Segment Size:             0
 
     Address    Length
-    00000000 0000001b 
-    00000000 00000000 
+    00000000 0000001b ?
+    00000000 00000000 ?
 
 Contents of the .[z]?debug_str section:
 
diff --git a/binutils/testsuite/binutils-all/libdw2-compressedgabi.out b/binutils/testsuite/binutils-all/libdw2-compressedgabi.out
index 7bc4629ccc4..70fe78fafe3 100644
--- a/binutils/testsuite/binutils-all/libdw2-compressedgabi.out
+++ b/binutils/testsuite/binutils-all/libdw2-compressedgabi.out
@@ -4,13 +4,13 @@ dw2-1-compressedgabi.o: +file format .*
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x.
     <14>   DW_AT_low_pc      : 0x.
     <18>   DW_AT_name        : file1.txt
@@ -33,7 +33,7 @@ Contents of the .debug_info section:
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -77,7 +77,7 @@ Raw dump of debug contents of section .debug_line:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -106,15 +106,15 @@ dw2-2-compressedgabi.o: +file format .*
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x4
-    <14>   DW_AT_low_pc      : 0x0
+    <14>   DW_AT_low_pc      : (0x)?0
     <18>   DW_AT_name        : file1.txt
     <22>   DW_AT_producer    : GNU C 3.3.3
     <2e>   DW_AT_language    : 1	\(ANSI C\)
@@ -124,7 +124,7 @@ Contents of the .debug_info section:
     <32>   DW_AT_decl_line   : 2
     <33>   DW_AT_name        : func_cu2
     <3c>   DW_AT_type        : <0x4a>
-    <40>   DW_AT_low_pc      : 0x0
+    <40>   DW_AT_low_pc      : (0x)?0
     <44>   DW_AT_high_pc     : 0x4
     <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \(.*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
@@ -135,7 +135,7 @@ Contents of the .debug_info section:
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -169,7 +169,7 @@ Raw dump of debug contents of section .debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x0000002d\]  Extended opcode 2: set Address to 0x0
+  \[0x0000002d\]  Extended opcode 2: set Address to (0x)?0
   \[0x00000034\]  Advance Line by 3 to 4
   \[0x00000036\]  Copy
   \[0x00000037\]  Copy \(view 1\)
@@ -179,7 +179,7 @@ Raw dump of debug contents of section .debug_line:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -209,15 +209,15 @@ dw2-3-compressedgabi.o: +file format .*
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x5e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x4
-    <14>   DW_AT_low_pc      : 0x0
+    <14>   DW_AT_low_pc      : (0x)?0
     <18>   DW_AT_name        : file1.txt
     <22>   DW_AT_producer    : GNU C 3.3.3
     <2e>   DW_AT_language    : 1	\(ANSI C\)
@@ -227,7 +227,7 @@ Contents of the .debug_info section:
     <32>   DW_AT_decl_line   : 2
     <33>   DW_AT_name        : func_cu1
     <3c>   DW_AT_type        : <0x85>
-    <40>   DW_AT_low_pc      : 0x0
+    <40>   DW_AT_low_pc      : (0x)?0
     <44>   DW_AT_high_pc     : 0x4
     <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
@@ -264,7 +264,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -318,7 +318,7 @@ Contents of the .debug_abbrev section:
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -352,7 +352,7 @@ Raw dump of debug contents of section .debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x0000002d\]  Extended opcode 2: set Address to 0x0
+  \[0x0000002d\]  Extended opcode 2: set Address to (0x)?0
   \[0x00000034\]  Advance Line by 3 to 4
   \[0x00000036\]  Copy
   \[0x00000037\]  Copy \(view 1\)
diff --git a/binutils/testsuite/binutils-all/objdump.W b/binutils/testsuite/binutils-all/objdump.W
index 8d2150593c9..ddeeec9eb1b 100644
--- a/binutils/testsuite/binutils-all/objdump.W
+++ b/binutils/testsuite/binutils-all/objdump.W
@@ -3,13 +3,13 @@
 
 Contents of the .z?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x.
     <14>   DW_AT_low_pc      : 0x.
     <18>   DW_AT_name        : file1.txt
@@ -32,7 +32,7 @@ Contents of the .z?debug_info section:
 
 Raw dump of debug contents of section .z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -76,7 +76,7 @@ Raw dump of debug contents of section .z?debug_line:
 
 Contents of the .zdebug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
diff --git a/binutils/testsuite/binutils-all/objdump.WK2 b/binutils/testsuite/binutils-all/objdump.WK2
index be7817f2409..66c805d7c83 100644
--- a/binutils/testsuite/binutils-all/objdump.WK2
+++ b/binutils/testsuite/binutils-all/objdump.WK2
@@ -14,13 +14,13 @@ Contents of the .debug_str section \(loaded from .*debuglink.o\):
 
 Contents of the .debug_info section \(loaded from .*debuglink.o\):
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x12 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_name        : \(indirect string, offset: 0x0\): string-1
+    <c>   DW_AT_name        : \(indirect string, offset: (0x)?0\): string-1
  <0><10>: Abbrev Number: 2 \(DW_TAG_subprogram\)
-    <11>   DW_AT_name        : \(alt indirect string, offset: 0x0\) string-3
+    <11>   DW_AT_name        : \(alt indirect string, offset: (0x)?0\) string-3
 #pass
diff --git a/binutils/testsuite/binutils-all/pr26112.r b/binutils/testsuite/binutils-all/pr26112.r
index f28441393e0..30a86aebd20 100644
--- a/binutils/testsuite/binutils-all/pr26112.r
+++ b/binutils/testsuite/binutils-all/pr26112.r
@@ -1,9 +1,9 @@
 Contents of the .debug_macro section:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Version:                     5
   Offset size:                 4
-  Offset into .debug_line:     0x0
+  Offset into .debug_line:     (0x)?0
 
  DW_MACRO_start_file - lineno: 0 filenum: 1
  DW_MACRO_define_strx lineno : 1 macro : -
diff --git a/binutils/testsuite/binutils-all/pr26160.r b/binutils/testsuite/binutils-all/pr26160.r
index 1536e0142d2..e8ec2adb119 100644
--- a/binutils/testsuite/binutils-all/pr26160.r
+++ b/binutils/testsuite/binutils-all/pr26160.r
@@ -1,15 +1,15 @@
 Contents of the .debug_info.dwo section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x178 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       (0x)?0  0x154
+    .debug_line.dwo:         (0x)?0  0x40
+    .debug_loc.dwo:          (0x)?0  (0x)?0
+    .debug_str_offsets.dwo:  (0x)?0  0x14
  <0><b>: Abbrev Number: 12 \(DW_TAG_compile_unit\)
     <c>   DW_AT_producer    : GNU C\+\+ 4.7.x-google 20120720 \(prerelease\)
     <37>   DW_AT_language    : 4	\(C\+\+\)
@@ -30,7 +30,7 @@ Contents of the .debug_info.dwo section:
     <a5>   DW_AT_decl_file   : 1
     <a6>   DW_AT_decl_line   : 30
     <a7>   DW_AT_type        : <0x90>
-    <ab>   DW_AT_low_pc      : \(addr_index: 0x0\): <no .debug_addr section>
+    <ab>   DW_AT_low_pc      : \(addr_index: (0x)?0\): <no .debug_addr section>
     <ac>   DW_AT_high_pc     : 0x304
     <b4>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
     <b6>   DW_AT_GNU_all_tail_call_sites: 1
@@ -121,12 +121,12 @@ Contents of the .debug_info.dwo section:
   Compilation Unit @ offset 0x17c:
    Length:        0x5af \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Section contributions:
     .debug_abbrev.dwo:       0x154  0x21d
     .debug_line.dwo:         0x40  0x3d
-    .debug_loc.dwo:          0x0  0x0
+    .debug_loc.dwo:          (0x)?0  (0x)?0
     .debug_str_offsets.dwo:  0x14  0x44
  <0><187>: Abbrev Number: 12 \(DW_TAG_compile_unit\)
     <188>   DW_AT_producer    : GNU C\+\+ 4.7.x-google 20120720 \(prerelease\)
@@ -141,7 +141,7 @@ Contents of the .debug_info.dwo section:
     <215>   DW_AT_sibling     : <0x242>
  <2><219>: Abbrev Number: 14 \(DW_TAG_subprogram\)
     <21a>   DW_AT_external    : 1
-    <21a>   DW_AT_name        : \(indexed string: 0x0\): testcase1
+    <21a>   DW_AT_name        : \(indexed string: (0x)?0\): testcase1
     <21b>   DW_AT_decl_file   : 1
     <21c>   DW_AT_decl_line   : 28
     <21d>   DW_AT_linkage_name: \(indexed string: 0xc\): _ZN2C19testcase1Ev
@@ -194,7 +194,7 @@ Contents of the .debug_info.dwo section:
     <267>   DW_AT_sibling     : <0x294>
  <2><26b>: Abbrev Number: 14 \(DW_TAG_subprogram\)
     <26c>   DW_AT_external    : 1
-    <26c>   DW_AT_name        : \(indexed string: 0x0\): testcase1
+    <26c>   DW_AT_name        : \(indexed string: (0x)?0\): testcase1
     <26d>   DW_AT_decl_file   : 1
     <26e>   DW_AT_decl_line   : 40
     <26f>   DW_AT_linkage_name: \(indexed string: 0x7\): _ZN2C29testcase1Ev
@@ -239,7 +239,7 @@ Contents of the .debug_info.dwo section:
     <2aa>   DW_AT_sibling     : <0x2cd>
  <2><2ae>: Abbrev Number: 14 \(DW_TAG_subprogram\)
     <2af>   DW_AT_external    : 1
-    <2af>   DW_AT_name        : \(indexed string: 0x0\): testcase1
+    <2af>   DW_AT_name        : \(indexed string: (0x)?0\): testcase1
     <2b0>   DW_AT_decl_file   : 1
     <2b1>   DW_AT_decl_line   : 50
     <2b2>   DW_AT_linkage_name: \(indexed string: 0x2\): _ZN2C39testcase1Ev
@@ -274,7 +274,7 @@ Contents of the .debug_info.dwo section:
     <2dd>   DW_AT_decl_file   : 1
     <2de>   DW_AT_decl_line   : 70
     <2df>   DW_AT_linkage_name: _Z4f13iv
-    <2e8>   DW_AT_low_pc      : \(addr_index: 0x0\): <no .debug_addr section>
+    <2e8>   DW_AT_low_pc      : \(addr_index: (0x)?0\): <no .debug_addr section>
     <2e9>   DW_AT_high_pc     : 0x6
     <2f1>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
     <2f3>   DW_AT_GNU_all_call_sites: 1
@@ -758,13 +758,13 @@ Contents of the .debug_info.dwo section:
   Compilation Unit @ offset 0x72f:
    Length:        0xcb \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Section contributions:
     .debug_abbrev.dwo:       0x371  0xbd
     .debug_line.dwo:         0x7d  0x3e
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x0
+    .debug_loc.dwo:          (0x)?0  (0x)?0
+    .debug_str_offsets.dwo:  (0x)?0  (0x)?0
  <0><73a>: Abbrev Number: 10 \(DW_TAG_compile_unit\)
     <73b>   DW_AT_producer    : GNU C\+\+ 4.7.x-google 20120720 \(prerelease\)
     <766>   DW_AT_language    : 4	\(C\+\+\)
@@ -786,7 +786,7 @@ Contents of the .debug_info.dwo section:
     <7d3>   DW_AT_decl_line   : 32
     <7d4>   DW_AT_linkage_name: _Z4t16av
     <7dd>   DW_AT_type        : <0x7c4>
-    <7e1>   DW_AT_low_pc      : \(addr_index: 0x0\): <no .debug_addr section>
+    <7e1>   DW_AT_low_pc      : \(addr_index: (0x)?0\): <no .debug_addr section>
     <7e2>   DW_AT_high_pc     : 0x13
     <7ea>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
     <7ec>   DW_AT_GNU_all_tail_call_sites: 1
@@ -801,12 +801,12 @@ Contents of the .debug_info.dwo section:
   Compilation Unit @ offset 0x7fe:
    Length:        0x329 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Section contributions:
     .debug_abbrev.dwo:       0x42e  0x1f2
     .debug_line.dwo:         0xbb  0x3d
-    .debug_loc.dwo:          0x0  0x0
+    .debug_loc.dwo:          (0x)?0  (0x)?0
     .debug_str_offsets.dwo:  0x58  0x18
  <0><809>: Abbrev Number: 12 \(DW_TAG_compile_unit\)
     <80a>   DW_AT_producer    : GNU C\+\+ 4.7.x-google 20120720 \(prerelease\)
@@ -878,7 +878,7 @@ Contents of the .debug_info.dwo section:
     <908>   DW_AT_decl_file   : 1
     <909>   DW_AT_decl_line   : 70
     <90a>   DW_AT_linkage_name: _Z4f13iv
-    <913>   DW_AT_low_pc      : \(addr_index: 0x0\): <no .debug_addr section>
+    <913>   DW_AT_low_pc      : \(addr_index: (0x)?0\): <no .debug_addr section>
     <914>   DW_AT_high_pc     : 0x6
     <91c>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
     <91e>   DW_AT_GNU_all_call_sites: 1
@@ -1099,22 +1099,22 @@ Contents of the .debug_info.dwo section:
 
 Contents of the .debug_types.dwo section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0xf7 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Signature:     0xb534bdc1f01629bb
    Type Offset:   0x25
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       (0x)?0  0x154
+    .debug_line.dwo:         (0x)?0  0x40
+    .debug_loc.dwo:          (0x)?0  (0x)?0
+    .debug_str_offsets.dwo:  (0x)?0  0x14
  <0><17>: Abbrev Number: 1 \(DW_TAG_type_unit\)
     <18>   DW_AT_language    : 4	\(C\+\+\)
     <19>   DW_AT_GNU_odr_signature: 0x880a5c4d6e59da8a
-    <21>   DW_AT_stmt_list   : 0x0
+    <21>   DW_AT_stmt_list   : (0x)?0
  <1><25>: Abbrev Number: 2 \(DW_TAG_class_type\)
     <26>   DW_AT_name        : C3
     <29>   DW_AT_byte_size   : 4
@@ -1130,7 +1130,7 @@ Contents of the .debug_types.dwo section:
     <39>   DW_AT_accessibility: 1	\(public\)
  <2><3a>: Abbrev Number: 4 \(DW_TAG_subprogram\)
     <3b>   DW_AT_external    : 1
-    <3b>   DW_AT_name        : \(indexed string: 0x0\): testcase1
+    <3b>   DW_AT_name        : \(indexed string: (0x)?0\): testcase1
     <3c>   DW_AT_decl_file   : 2
     <3d>   DW_AT_decl_line   : 50
     <3e>   DW_AT_linkage_name: _ZN2C39testcase1Ev
@@ -1208,19 +1208,19 @@ Contents of the .debug_types.dwo section:
   Compilation Unit @ offset 0xfb:
    Length:        0xf1 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Signature:     0xab98c7bc886f5266
    Type Offset:   0x25
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       (0x)?0  0x154
+    .debug_line.dwo:         (0x)?0  0x40
+    .debug_loc.dwo:          (0x)?0  (0x)?0
+    .debug_str_offsets.dwo:  (0x)?0  0x14
  <0><112>: Abbrev Number: 1 \(DW_TAG_type_unit\)
     <113>   DW_AT_language    : 4	\(C\+\+\)
     <114>   DW_AT_GNU_odr_signature: 0xae4af0d8bfcef94b
-    <11c>   DW_AT_stmt_list   : 0x0
+    <11c>   DW_AT_stmt_list   : (0x)?0
  <1><120>: Abbrev Number: 2 \(DW_TAG_class_type\)
     <121>   DW_AT_name        : C2
     <124>   DW_AT_byte_size   : 4
@@ -1236,7 +1236,7 @@ Contents of the .debug_types.dwo section:
     <134>   DW_AT_accessibility: 1	\(public\)
  <2><135>: Abbrev Number: 4 \(DW_TAG_subprogram\)
     <136>   DW_AT_external    : 1
-    <136>   DW_AT_name        : \(indexed string: 0x0\): testcase1
+    <136>   DW_AT_name        : \(indexed string: (0x)?0\): testcase1
     <137>   DW_AT_decl_file   : 2
     <138>   DW_AT_decl_line   : 40
     <139>   DW_AT_linkage_name: _ZN2C29testcase1Ev
@@ -1309,19 +1309,19 @@ Contents of the .debug_types.dwo section:
   Compilation Unit @ offset 0x1f0:
    Length:        0x141 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
    Signature:     0xb5faa2a4b7a919c4
    Type Offset:   0x25
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       (0x)?0  0x154
+    .debug_line.dwo:         (0x)?0  0x40
+    .debug_loc.dwo:          (0x)?0  (0x)?0
+    .debug_str_offsets.dwo:  (0x)?0  0x14
  <0><207>: Abbrev Number: 1 \(DW_TAG_type_unit\)
     <208>   DW_AT_language    : 4	\(C\+\+\)
     <209>   DW_AT_GNU_odr_signature: 0xc7fbeb753b05ade3
-    <211>   DW_AT_stmt_list   : 0x0
+    <211>   DW_AT_stmt_list   : (0x)?0
  <1><215>: Abbrev Number: 2 \(DW_TAG_class_type\)
     <216>   DW_AT_name        : C1
     <219>   DW_AT_byte_size   : 4
@@ -1337,7 +1337,7 @@ Contents of the .debug_types.dwo section:
     <229>   DW_AT_accessibility: 1	\(public\)
  <2><22a>: Abbrev Number: 4 \(DW_TAG_subprogram\)
     <22b>   DW_AT_external    : 1
-    <22b>   DW_AT_name        : \(indexed string: 0x0\): testcase1
+    <22b>   DW_AT_name        : \(indexed string: (0x)?0\): testcase1
     <22c>   DW_AT_decl_file   : 2
     <22d>   DW_AT_decl_line   : 28
     <22e>   DW_AT_linkage_name: _ZN2C19testcase1Ev
diff --git a/binutils/testsuite/binutils-all/readelf.h b/binutils/testsuite/binutils-all/readelf.h
index 01103fbab39..05858d7527c 100644
--- a/binutils/testsuite/binutils-all/readelf.h
+++ b/binutils/testsuite/binutils-all/readelf.h
@@ -8,7 +8,7 @@ ELF Header:
   Type:                              REL \(Relocatable file\)
   Machine:                           .*
   Version:                           0x1
-  Entry point address:               0x0
+  Entry point address:               (0x)?0
   Start of program headers:          0 \(bytes into file\)
   Start of section headers:          .* \(bytes into file\)
   Flags:                             .*
diff --git a/binutils/testsuite/binutils-all/readelf.h.thin b/binutils/testsuite/binutils-all/readelf.h.thin
index 32ea2b7d6f1..4be5373f7a8 100644
--- a/binutils/testsuite/binutils-all/readelf.h.thin
+++ b/binutils/testsuite/binutils-all/readelf.h.thin
@@ -10,7 +10,7 @@ ELF Header:
   Type:                              REL \(Relocatable file\)
   Machine:                           .*
   Version:                           0x1
-  Entry point address:               0x0
+  Entry point address:               (0x)?0
   Start of program headers:          0 \(bytes into file\)
   Start of section headers:          .* \(bytes into file\)
   Flags:                             .*
diff --git a/binutils/testsuite/binutils-all/readelf.wKis b/binutils/testsuite/binutils-all/readelf.wKis
index a8ab25221bc..0028fc2a4fb 100644
--- a/binutils/testsuite/binutils-all/readelf.wKis
+++ b/binutils/testsuite/binutils-all/readelf.wKis
@@ -6,15 +6,15 @@ Contents of the .debug_str section \(loaded from .*debuglink.o\):
 #...
 Contents of the .debug_info section \(loaded from .*debuglink.o\):
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x12 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_name        : \(indirect string, offset: 0x0\): string-1
+    <c>   DW_AT_name        : \(indirect string, offset: (0x)?0\): string-1
  <0><10>: Abbrev Number: 2 \(DW_TAG_subprogram\)
-    <11>   DW_AT_name        : \(alt indirect string, offset: 0x0\) string-3
+    <11>   DW_AT_name        : \(alt indirect string, offset: (0x)?0\) string-3
 #...
 Contents of the .debug_str section \(loaded from .*linkdebug.debug\):
 
diff --git a/binutils/testsuite/binutils-all/readelf.wa b/binutils/testsuite/binutils-all/readelf.wa
index 43d60b1754a..aba110637da 100644
--- a/binutils/testsuite/binutils-all/readelf.wa
+++ b/binutils/testsuite/binutils-all/readelf.wa
@@ -1,6 +1,6 @@
 Contents of the .zdebug_abbrev section:
 
-  Number TAG (0x0)
+  Number TAG (0)
    1      DW_TAG_compile_unit    [has children]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
diff --git a/binutils/testsuite/binutils-all/testranges-ia64.d b/binutils/testsuite/binutils-all/testranges-ia64.d
index 9713236b326..e1e29e71632 100644
--- a/binutils/testsuite/binutils-all/testranges-ia64.d
+++ b/binutils/testsuite/binutils-all/testranges-ia64.d
@@ -7,9 +7,9 @@
 Contents of the .debug_ranges section:
 
     Offset   Begin    End
-    00000000 00000001 00000002 
+    00000000 00000001 00000002 ?
     00000000 <End of list>
-    00000010 00000000 00000002 
+    00000010 00000000 00000002 ?
     00000010 <End of list>
 
 #pass
diff --git a/binutils/testsuite/binutils-all/testranges.d b/binutils/testsuite/binutils-all/testranges.d
index ba07a6f3058..dd2017557e7 100644
--- a/binutils/testsuite/binutils-all/testranges.d
+++ b/binutils/testsuite/binutils-all/testranges.d
@@ -7,9 +7,9 @@
 Contents of the \.z?debug_ranges section:
 
     Offset   Begin    End
-    00000000 00000001 00000002 
+    00000000 00000001 00000002 ?
     00000000 <End of list>
-    00000010 00000000 00000002 
+    00000010 00000000 00000002 ?
     00000010 <End of list>
 
 #pass
diff --git a/binutils/testsuite/binutils-all/x86-64/compressed-1a.d b/binutils/testsuite/binutils-all/x86-64/compressed-1a.d
index c4898d7748d..e125829bf0f 100644
--- a/binutils/testsuite/binutils-all/x86-64/compressed-1a.d
+++ b/binutils/testsuite/binutils-all/x86-64/compressed-1a.d
@@ -7,7 +7,7 @@
 
 Contents of the .[z]?debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_producer     DW_FORM_strp
     DW_AT_language     DW_FORM_data1
@@ -29,25 +29,25 @@ Contents of the .[z]?debug_abbrev section:
 
 Contents of the .[z]?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x5e \(32-bit\)
    Version:       3
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  8
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_producer    : \(indirect string, offset: 0x0\): GNU C 4.4.4
+    <c>   DW_AT_producer    : \(indirect string, offset: (0x)?0\): GNU C 4.4.4
     <10>   DW_AT_language    : 1	\(ANSI C\)
     <11>   DW_AT_name        : \(indirect string, offset: 0x18\): compressed-1.c
     <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x16\): .
-    <19>   DW_AT_low_pc      : 0x0
+    <19>   DW_AT_low_pc      : (0x)?0
     <21>   DW_AT_high_pc     : 0x15
-    <29>   DW_AT_stmt_list   : 0x0
+    <29>   DW_AT_stmt_list   : (0x)?0
  <1><2d>: Abbrev Number: 2 \(DW_TAG_subprogram\)
     <2e>   DW_AT_external    : 1
     <2f>   DW_AT_name        : \(indirect string, offset: 0xc\): foo2
     <33>   DW_AT_decl_file   : 1
     <34>   DW_AT_decl_line   : 10
-    <35>   DW_AT_low_pc      : 0x0
+    <35>   DW_AT_low_pc      : (0x)?0
     <3d>   DW_AT_high_pc     : 0x2
     <45>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
  <1><47>: Abbrev Number: 2 \(DW_TAG_subprogram\)
@@ -62,7 +62,7 @@ Contents of the .[z]?debug_info section:
 
 Raw dump of debug contents of section .[z]?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      67
   DWARF Version:               .
   Prologue Length:             37
@@ -93,10 +93,10 @@ Raw dump of debug contents of section .[z]?debug_line:
   1	0	0	0	compressed-1.c
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Advance Line by 10 to 11
   \[0x.*\]  Copy
-  \[0x.*\]  Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 \(view 1\)
+  \[0x.*\]  Special opcode 6: advance Address by 0 to (0x)?0 and Line by 1 to 12 \(view 1\)
   \[0x.*\]  Advance Line by -7 to 5
   \[0x.*\]  Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5
   \[0x.*\]  Special opcode 6: advance Address by 0 to 0x10 and Line by 1 to 6 \(view 1\)
@@ -108,7 +108,7 @@ Contents of the .[z]?debug_pubnames section:
 
   Length:                              32
   Version:                             2
-  Offset into .[z]?debug_info section:     0x0
+  Offset into .[z]?debug_info section:     (0x)?0
   Size of area in .[z]?debug_info section: 98
 
     Offset	Name
@@ -119,13 +119,13 @@ Contents of the .[z]?debug_aranges section:
 
   Length:                   44
   Version:                  2
-  Offset into .[z]?debug_info:  0x0
+  Offset into .[z]?debug_info:  (0x)?0
   Pointer Size:             8
   Segment Size:             0
 
     Address            Length
-    0000000000000000 0000000000000015 
-    0000000000000000 0000000000000000 
+    0000000000000000 0000000000000015 ?
+    0000000000000000 0000000000000000 ?
 
 Contents of the .[z]?debug_str section:
 
diff --git a/binutils/testsuite/binutils-all/x86-64/pr26808.dump b/binutils/testsuite/binutils-all/x86-64/pr26808.dump
index dc879830f46..db6f14d114f 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr26808.dump
+++ b/binutils/testsuite/binutils-all/x86-64/pr26808.dump
@@ -1,15 +1,15 @@
 Contents of the .debug_info.dwo section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset 0:
    Length:        0x178 (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       0  0x154
+    .debug_line.dwo:         0  0x40
+    .debug_loc.dwo:          0  0
+    .debug_str_offsets.dwo:  0  0x14
  <0><b>: Abbrev Number: 12 (DW_TAG_compile_unit)
     <c>   DW_AT_producer    : GNU C++ 4.7.x-google 20120720 (prerelease)
     <37>   DW_AT_language    : 4	(C++)
@@ -30,7 +30,7 @@ Contents of the .debug_info.dwo section:
     <a5>   DW_AT_decl_file   : 1
     <a6>   DW_AT_decl_line   : 30
     <a7>   DW_AT_type        : <0x90>
-    <ab>   DW_AT_low_pc      : (index: 0x0): 0
+    <ab>   DW_AT_low_pc      : (index: 0): 0
     <ac>   DW_AT_high_pc     : 0x304
     <b4>   DW_AT_frame_base  : 1 byte block: 9c 	(DW_OP_call_frame_cfa)
     <b6>   DW_AT_GNU_all_tail_call_sites: 1
@@ -121,12 +121,12 @@ Contents of the .debug_info.dwo section:
   Compilation Unit @ offset 0x17c:
    Length:        0x5af (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Section contributions:
     .debug_abbrev.dwo:       0x154  0x21d
     .debug_line.dwo:         0x40  0x3d
-    .debug_loc.dwo:          0x0  0x0
+    .debug_loc.dwo:          0  0
     .debug_str_offsets.dwo:  0x14  0x44
  <0><187>: Abbrev Number: 12 (DW_TAG_compile_unit)
     <188>   DW_AT_producer    : GNU C++ 4.7.x-google 20120720 (prerelease)
@@ -141,7 +141,7 @@ Contents of the .debug_info.dwo section:
     <215>   DW_AT_sibling     : <0x242>
  <2><219>: Abbrev Number: 14 (DW_TAG_subprogram)
     <21a>   DW_AT_external    : 1
-    <21a>   DW_AT_name        : (indexed string: 0x0): testcase1
+    <21a>   DW_AT_name        : (indexed string: 0): testcase1
     <21b>   DW_AT_decl_file   : 1
     <21c>   DW_AT_decl_line   : 28
     <21d>   DW_AT_linkage_name: (indexed string: 0xc): _ZN2C19testcase1Ev
@@ -194,7 +194,7 @@ Contents of the .debug_info.dwo section:
     <267>   DW_AT_sibling     : <0x294>
  <2><26b>: Abbrev Number: 14 (DW_TAG_subprogram)
     <26c>   DW_AT_external    : 1
-    <26c>   DW_AT_name        : (indexed string: 0x0): testcase1
+    <26c>   DW_AT_name        : (indexed string: 0): testcase1
     <26d>   DW_AT_decl_file   : 1
     <26e>   DW_AT_decl_line   : 40
     <26f>   DW_AT_linkage_name: (indexed string: 0x7): _ZN2C29testcase1Ev
@@ -239,7 +239,7 @@ Contents of the .debug_info.dwo section:
     <2aa>   DW_AT_sibling     : <0x2cd>
  <2><2ae>: Abbrev Number: 14 (DW_TAG_subprogram)
     <2af>   DW_AT_external    : 1
-    <2af>   DW_AT_name        : (indexed string: 0x0): testcase1
+    <2af>   DW_AT_name        : (indexed string: 0): testcase1
     <2b0>   DW_AT_decl_file   : 1
     <2b1>   DW_AT_decl_line   : 50
     <2b2>   DW_AT_linkage_name: (indexed string: 0x2): _ZN2C39testcase1Ev
@@ -274,7 +274,7 @@ Contents of the .debug_info.dwo section:
     <2dd>   DW_AT_decl_file   : 1
     <2de>   DW_AT_decl_line   : 70
     <2df>   DW_AT_linkage_name: _Z4f13iv
-    <2e8>   DW_AT_low_pc      : (index: 0x0): 0
+    <2e8>   DW_AT_low_pc      : (index: 0): 0
     <2e9>   DW_AT_high_pc     : 0x6
     <2f1>   DW_AT_frame_base  : 1 byte block: 9c 	(DW_OP_call_frame_cfa)
     <2f3>   DW_AT_GNU_all_call_sites: 1
@@ -758,13 +758,13 @@ Contents of the .debug_info.dwo section:
   Compilation Unit @ offset 0x72f:
    Length:        0xcb (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Section contributions:
     .debug_abbrev.dwo:       0x371  0xbd
     .debug_line.dwo:         0x7d  0x3e
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x0
+    .debug_loc.dwo:          0  0
+    .debug_str_offsets.dwo:  0  0
  <0><73a>: Abbrev Number: 10 (DW_TAG_compile_unit)
     <73b>   DW_AT_producer    : GNU C++ 4.7.x-google 20120720 (prerelease)
     <766>   DW_AT_language    : 4	(C++)
@@ -786,7 +786,7 @@ Contents of the .debug_info.dwo section:
     <7d3>   DW_AT_decl_line   : 32
     <7d4>   DW_AT_linkage_name: _Z4t16av
     <7dd>   DW_AT_type        : <0x7c4>
-    <7e1>   DW_AT_low_pc      : (index: 0x0): 0
+    <7e1>   DW_AT_low_pc      : (index: 0): 0
     <7e2>   DW_AT_high_pc     : 0x13
     <7ea>   DW_AT_frame_base  : 1 byte block: 9c 	(DW_OP_call_frame_cfa)
     <7ec>   DW_AT_GNU_all_tail_call_sites: 1
@@ -801,12 +801,12 @@ Contents of the .debug_info.dwo section:
   Compilation Unit @ offset 0x7fe:
    Length:        0x329 (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Section contributions:
     .debug_abbrev.dwo:       0x42e  0x1f2
     .debug_line.dwo:         0xbb  0x3d
-    .debug_loc.dwo:          0x0  0x0
+    .debug_loc.dwo:          0  0
     .debug_str_offsets.dwo:  0x58  0x18
  <0><809>: Abbrev Number: 12 (DW_TAG_compile_unit)
     <80a>   DW_AT_producer    : GNU C++ 4.7.x-google 20120720 (prerelease)
@@ -878,7 +878,7 @@ Contents of the .debug_info.dwo section:
     <908>   DW_AT_decl_file   : 1
     <909>   DW_AT_decl_line   : 70
     <90a>   DW_AT_linkage_name: _Z4f13iv
-    <913>   DW_AT_low_pc      : (index: 0x0): 0
+    <913>   DW_AT_low_pc      : (index: 0): 0
     <914>   DW_AT_high_pc     : 0x6
     <91c>   DW_AT_frame_base  : 1 byte block: 9c 	(DW_OP_call_frame_cfa)
     <91e>   DW_AT_GNU_all_call_sites: 1
@@ -1099,22 +1099,22 @@ Contents of the .debug_info.dwo section:
 
 Contents of the .debug_types.dwo section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset 0:
    Length:        0xf7 (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Signature:     0xb534bdc1f01629bb
    Type Offset:   0x25
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       0  0x154
+    .debug_line.dwo:         0  0x40
+    .debug_loc.dwo:          0  0
+    .debug_str_offsets.dwo:  0  0x14
  <0><17>: Abbrev Number: 1 (DW_TAG_type_unit)
     <18>   DW_AT_language    : 4	(C++)
     <19>   DW_AT_GNU_odr_signature: 0x880a5c4d6e59da8a
-    <21>   DW_AT_stmt_list   : 0x0
+    <21>   DW_AT_stmt_list   : 0
  <1><25>: Abbrev Number: 2 (DW_TAG_class_type)
     <26>   DW_AT_name        : C3
     <29>   DW_AT_byte_size   : 4
@@ -1130,7 +1130,7 @@ Contents of the .debug_types.dwo section:
     <39>   DW_AT_accessibility: 1	(public)
  <2><3a>: Abbrev Number: 4 (DW_TAG_subprogram)
     <3b>   DW_AT_external    : 1
-    <3b>   DW_AT_name        : (indexed string: 0x0): testcase1
+    <3b>   DW_AT_name        : (indexed string: 0): testcase1
     <3c>   DW_AT_decl_file   : 2
     <3d>   DW_AT_decl_line   : 50
     <3e>   DW_AT_linkage_name: _ZN2C39testcase1Ev
@@ -1208,19 +1208,19 @@ Contents of the .debug_types.dwo section:
   Compilation Unit @ offset 0xfb:
    Length:        0xf1 (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Signature:     0xab98c7bc886f5266
    Type Offset:   0x25
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       0  0x154
+    .debug_line.dwo:         0  0x40
+    .debug_loc.dwo:          0  0
+    .debug_str_offsets.dwo:  0  0x14
  <0><112>: Abbrev Number: 1 (DW_TAG_type_unit)
     <113>   DW_AT_language    : 4	(C++)
     <114>   DW_AT_GNU_odr_signature: 0xae4af0d8bfcef94b
-    <11c>   DW_AT_stmt_list   : 0x0
+    <11c>   DW_AT_stmt_list   : 0
  <1><120>: Abbrev Number: 2 (DW_TAG_class_type)
     <121>   DW_AT_name        : C2
     <124>   DW_AT_byte_size   : 4
@@ -1236,7 +1236,7 @@ Contents of the .debug_types.dwo section:
     <134>   DW_AT_accessibility: 1	(public)
  <2><135>: Abbrev Number: 4 (DW_TAG_subprogram)
     <136>   DW_AT_external    : 1
-    <136>   DW_AT_name        : (indexed string: 0x0): testcase1
+    <136>   DW_AT_name        : (indexed string: 0): testcase1
     <137>   DW_AT_decl_file   : 2
     <138>   DW_AT_decl_line   : 40
     <139>   DW_AT_linkage_name: _ZN2C29testcase1Ev
@@ -1309,19 +1309,19 @@ Contents of the .debug_types.dwo section:
   Compilation Unit @ offset 0x1f0:
    Length:        0x141 (32-bit)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: 0
    Pointer Size:  8
    Signature:     0xb5faa2a4b7a919c4
    Type Offset:   0x25
    Section contributions:
-    .debug_abbrev.dwo:       0x0  0x154
-    .debug_line.dwo:         0x0  0x40
-    .debug_loc.dwo:          0x0  0x0
-    .debug_str_offsets.dwo:  0x0  0x14
+    .debug_abbrev.dwo:       0  0x154
+    .debug_line.dwo:         0  0x40
+    .debug_loc.dwo:          0  0
+    .debug_str_offsets.dwo:  0  0x14
  <0><207>: Abbrev Number: 1 (DW_TAG_type_unit)
     <208>   DW_AT_language    : 4	(C++)
     <209>   DW_AT_GNU_odr_signature: 0xc7fbeb753b05ade3
-    <211>   DW_AT_stmt_list   : 0x0
+    <211>   DW_AT_stmt_list   : 0
  <1><215>: Abbrev Number: 2 (DW_TAG_class_type)
     <216>   DW_AT_name        : C1
     <219>   DW_AT_byte_size   : 4
@@ -1337,7 +1337,7 @@ Contents of the .debug_types.dwo section:
     <229>   DW_AT_accessibility: 1	(public)
  <2><22a>: Abbrev Number: 4 (DW_TAG_subprogram)
     <22b>   DW_AT_external    : 1
-    <22b>   DW_AT_name        : (indexed string: 0x0): testcase1
+    <22b>   DW_AT_name        : (indexed string: 0): testcase1
     <22c>   DW_AT_decl_file   : 2
     <22d>   DW_AT_decl_line   : 28
     <22e>   DW_AT_linkage_name: _ZN2C19testcase1Ev
diff --git a/gas/testsuite/gas/aarch64/dwarf.d b/gas/testsuite/gas/aarch64/dwarf.d
index b0581fbcfa6..9e4184ab6e8 100644
--- a/gas/testsuite/gas/aarch64/dwarf.d
+++ b/gas/testsuite/gas/aarch64/dwarf.d
@@ -18,11 +18,10 @@ Contents of the .debug_aranges section:
 
   Length:                   (44|28)
   Version:                  2
-  Offset into .debug_info:  0x0
+  Offset into .debug_info:  (0x)?0
   Pointer Size:             (8|4)
   Segment Size:             0
 
     Address[ ]+Length
-    0+ 0+8[ ]+
-    0+ 0+[ ]+
-
+    0+ 0+8 ?
+    0+ 0+ ?
diff --git a/gas/testsuite/gas/cris/rd-dw2-1.d b/gas/testsuite/gas/cris/rd-dw2-1.d
index ee993814a7f..fcf3170c0aa 100644
--- a/gas/testsuite/gas/cris/rd-dw2-1.d
+++ b/gas/testsuite/gas/cris/rd-dw2-1.d
@@ -4,8 +4,8 @@
 # A most simple instruction sequence.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 4 to 5
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 4 to 5
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x2 and Line by 1 to 6
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x4 and Line by 1 to 7
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x6 and Line by 1 to 8
diff --git a/gas/testsuite/gas/cris/rd-dw2-10.d b/gas/testsuite/gas/cris/rd-dw2-10.d
index 115246d30f5..0ca9208b71d 100644
--- a/gas/testsuite/gas/cris/rd-dw2-10.d
+++ b/gas/testsuite/gas/cris/rd-dw2-10.d
@@ -5,7 +5,7 @@
 # Continued line.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 6 to 7
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 6 to 7
   \[0x.*\]  Advance PC by 4 to 0x4
   \[0x.*\]  Extended opcode 1: End of Sequence
diff --git a/gas/testsuite/gas/cris/rd-dw2-11.d b/gas/testsuite/gas/cris/rd-dw2-11.d
index 147c48c4562..67d57dcb20e 100644
--- a/gas/testsuite/gas/cris/rd-dw2-11.d
+++ b/gas/testsuite/gas/cris/rd-dw2-11.d
@@ -5,8 +5,8 @@
 # Highly "fragmented" code.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 4 to 5
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 4 to 5
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x2 and Line by 1 to 6
   \[0x.*\]  Advance PC by 126 to 0x80
   \[0x.*\]  Special opcode .*: advance Address by 0 to 0x80 and Line by 2 to 8
diff --git a/gas/testsuite/gas/cris/rd-dw2-12.d b/gas/testsuite/gas/cris/rd-dw2-12.d
index aeb2e322f93..a1c48957e5d 100644
--- a/gas/testsuite/gas/cris/rd-dw2-12.d
+++ b/gas/testsuite/gas/cris/rd-dw2-12.d
@@ -5,8 +5,8 @@
 # Pushes and other prefixes.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 4 to 5
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 4 to 5
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0x4 and Line by 1 to 6
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0x8 and Line by 1 to 7
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0xc and Line by 2 to 9
diff --git a/gas/testsuite/gas/cris/rd-dw2-13.d b/gas/testsuite/gas/cris/rd-dw2-13.d
index 79234e38969..42c9b527577 100644
--- a/gas/testsuite/gas/cris/rd-dw2-13.d
+++ b/gas/testsuite/gas/cris/rd-dw2-13.d
@@ -5,8 +5,8 @@
 # PIC prefix relocs.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 5 to 6
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 5 to 6
   \[0x.*\]  Special opcode .*: advance Address by 6 to 0x6 and Line by 1 to 7
   \[0x.*\]  Special opcode .*: advance Address by 8 to 0xe and Line by 1 to 8
   \[0x.*\]  Special opcode .*: advance Address by 6 to 0x14 and Line by 1 to 9
diff --git a/gas/testsuite/gas/cris/rd-dw2-14.d b/gas/testsuite/gas/cris/rd-dw2-14.d
index d34fa4639c4..dabbc15ede6 100644
--- a/gas/testsuite/gas/cris/rd-dw2-14.d
+++ b/gas/testsuite/gas/cris/rd-dw2-14.d
@@ -5,8 +5,8 @@
 # Prefixes of various sizes.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 8 to 9
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 8 to 9
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x2 and Line by 1 to 10
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0x6 and Line by 1 to 11
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0xa and Line by 1 to 12
diff --git a/gas/testsuite/gas/cris/rd-dw2-15.d b/gas/testsuite/gas/cris/rd-dw2-15.d
index 361d7fe076c..b4bdd686e85 100644
--- a/gas/testsuite/gas/cris/rd-dw2-15.d
+++ b/gas/testsuite/gas/cris/rd-dw2-15.d
@@ -5,8 +5,8 @@
 # Various prefixes, assembled standalone.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 8 to 9
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 8 to 9
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x2 and Line by 1 to 10
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x4 and Line by 2 to 12
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x6 and Line by 1 to 13
diff --git a/gas/testsuite/gas/cris/rd-dw2-3.d b/gas/testsuite/gas/cris/rd-dw2-3.d
index dadf66c88b5..aec1c7c7c21 100644
--- a/gas/testsuite/gas/cris/rd-dw2-3.d
+++ b/gas/testsuite/gas/cris/rd-dw2-3.d
@@ -5,8 +5,8 @@
 # Simple branch-expansion, type 1.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 7 to 8
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 7 to 8
   \[0x.*\]  Special opcode .*: advance Address by 12 to 0xc and Line by 1 to 9
   \[0x.*\]  Advance PC by 2 to 0xe
   \[0x.*\]  Extended opcode 1: End of Sequence
diff --git a/gas/testsuite/gas/cris/rd-dw2-4.d b/gas/testsuite/gas/cris/rd-dw2-4.d
index f8fb7b0731f..6614eb6a14c 100644
--- a/gas/testsuite/gas/cris/rd-dw2-4.d
+++ b/gas/testsuite/gas/cris/rd-dw2-4.d
@@ -5,8 +5,8 @@
 # Simple branch-expansion, type 2.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 7 to 8
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 7 to 8
   \[0x.*\]  Advance PC by 32780 to 0x800c
   \[0x.*\]  Special opcode .*: advance Address by 0 to 0x800c and Line by 3 to 11
   \[0x.*\]  Advance PC by 2 to 0x800e
diff --git a/gas/testsuite/gas/cris/rd-dw2-5.d b/gas/testsuite/gas/cris/rd-dw2-5.d
index ee4c6ffa014..e9664f10856 100644
--- a/gas/testsuite/gas/cris/rd-dw2-5.d
+++ b/gas/testsuite/gas/cris/rd-dw2-5.d
@@ -5,8 +5,8 @@
 # Simple branch-expansion, type 3.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 7 to 8
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 7 to 8
   \[0x.*\]  Advance PC by 32770 to 0x8002
   \[0x.*\]  Special opcode .*: advance Address by 0 to 0x8002 and Line by 2 to 10
   \[0x.*\]  Special opcode .*: advance Address by 12 to 0x800e and Line by 1 to 11
diff --git a/gas/testsuite/gas/cris/rd-dw2-6.d b/gas/testsuite/gas/cris/rd-dw2-6.d
index 0771ac086f4..1c2051bdcb6 100644
--- a/gas/testsuite/gas/cris/rd-dw2-6.d
+++ b/gas/testsuite/gas/cris/rd-dw2-6.d
@@ -5,8 +5,8 @@
 # Complicated branch expansion.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 7 to 8
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 7 to 8
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x2 and Line by 2 to 10
   \[0x.*\]  Advance PC by 32360 to 0x7e6a
   \[0x.*\]  Special opcode .*: advance Address by 0 to 0x7e6a and Line by 3 to 13
diff --git a/gas/testsuite/gas/cris/rd-dw2-7.d b/gas/testsuite/gas/cris/rd-dw2-7.d
index c62fae83100..d463ebb2acf 100644
--- a/gas/testsuite/gas/cris/rd-dw2-7.d
+++ b/gas/testsuite/gas/cris/rd-dw2-7.d
@@ -5,8 +5,8 @@
 # Most simple broken word.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 2 to 3
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 2 to 3
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0x4 and Line by 4 to 7
   \[0x.*\]  Special opcode .*: advance Address by 14 to 0x12 and Line by 8 to 15
   \[0x.*\]  Advance PC by 32768 to 0x8012
diff --git a/gas/testsuite/gas/cris/rd-dw2-8.d b/gas/testsuite/gas/cris/rd-dw2-8.d
index fb08aa7051e..a50de2fb925 100644
--- a/gas/testsuite/gas/cris/rd-dw2-8.d
+++ b/gas/testsuite/gas/cris/rd-dw2-8.d
@@ -5,8 +5,8 @@
 # Simple broken word, table with two labels.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 2 to 3
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 2 to 3
   \[0x.*\]  Special opcode .*: advance Address by 6 to 0x6 and Line by 5 to 8
   \[0x.*\]  Advance Line by 9 to 17
   \[0x.*\]  Special opcode .*: advance Address by 20 to 0x1a and Line by 0 to 17
diff --git a/gas/testsuite/gas/cris/rd-dw2-9.d b/gas/testsuite/gas/cris/rd-dw2-9.d
index a83d89feac9..0f2a12c4667 100644
--- a/gas/testsuite/gas/cris/rd-dw2-9.d
+++ b/gas/testsuite/gas/cris/rd-dw2-9.d
@@ -5,8 +5,8 @@
 # Long broken word table.
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode .*: advance Address by 0 to 0x0 and Line by 3 to 4
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode .*: advance Address by 0 to (0x)?0 and Line by 3 to 4
   \[0x.*\]  Special opcode .*: advance Address by 2 to 0x2 and Line by 4 to 8
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0x6 and Line by 1 to 9
   \[0x.*\]  Special opcode .*: advance Address by 4 to 0xa and Line by 1 to 10
diff --git a/gas/testsuite/gas/elf/dwarf-3-func.d b/gas/testsuite/gas/elf/dwarf-3-func.d
index 0196f69e2ed..e17dff27dd0 100644
--- a/gas/testsuite/gas/elf/dwarf-3-func.d
+++ b/gas/testsuite/gas/elf/dwarf-3-func.d
@@ -36,7 +36,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
- +Number TAG \(0x0\)
+ +Number TAG \((0x)?0\)
  +1 +DW_TAG_compile_unit +\[has children\]
 #...
  +2 +DW_TAG_subprogram +\[no children\]
diff --git a/gas/testsuite/gas/elf/dwarf-4-cu.d b/gas/testsuite/gas/elf/dwarf-4-cu.d
index 85a07390d38..8fc901d7d09 100644
--- a/gas/testsuite/gas/elf/dwarf-4-cu.d
+++ b/gas/testsuite/gas/elf/dwarf-4-cu.d
@@ -3,9 +3,9 @@
 #readelf: -wi
 
 #...
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x.*
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  .
 #pass
diff --git a/gas/testsuite/gas/elf/dwarf-5-cu.d b/gas/testsuite/gas/elf/dwarf-5-cu.d
index 7db20a330b8..fe305ea7a34 100644
--- a/gas/testsuite/gas/elf/dwarf-5-cu.d
+++ b/gas/testsuite/gas/elf/dwarf-5-cu.d
@@ -3,10 +3,10 @@
 #readelf: -wi
 
 #...
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x.*
    Version:       5
    Unit Type:     DW_UT_compile \(1\)
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  .
 #pass
diff --git a/gas/testsuite/gas/elf/dwarf-5-dir0.d b/gas/testsuite/gas/elf/dwarf-5-dir0.d
index 7a8361ea5d2..bf85202c6d5 100644
--- a/gas/testsuite/gas/elf/dwarf-5-dir0.d
+++ b/gas/testsuite/gas/elf/dwarf-5-dir0.d
@@ -5,15 +5,15 @@
 #...
  The Directory Table \(offset 0x.*, lines 4, columns 1\):
   Entry	Name
-  0	\(indirect line string, offset: 0x0\): .*/gas/testsuite
+  0	\(indirect line string, offset: (0x)?0\): .*/gas/testsuite
   1	\(indirect line string, offset: 0x.*\): ../not-the-build-directory
   2	\(indirect line string, offset: 0x.*\): secondary directory
   3	\(indirect line string, offset: 0x.*\): /tmp
 
  The File Name Table \(offset 0x.*, lines 3, columns 3\):
   Entry	Dir	MD5				Name
-  0	1 0x0	\(indirect line string, offset: 0x.*\): master-source-file.c
-  1	2 0x0	\(indirect line string, offset: 0x.*\): secondary source file
+  0	1 (0x)?0	\(indirect line string, offset: 0x.*\): master-source-file.c
+  1	2 (0x)?0	\(indirect line string, offset: 0x.*\): secondary source file
   2	3 0x95828e8bc4f7404dbf7526fb7bd0f192	\(indirect line string, offset: 0x.*\): foo.c
 #pass
 
diff --git a/gas/testsuite/gas/elf/dwarf-5-file0.d b/gas/testsuite/gas/elf/dwarf-5-file0.d
index 2502b80d1f9..c978b79a530 100644
--- a/gas/testsuite/gas/elf/dwarf-5-file0.d
+++ b/gas/testsuite/gas/elf/dwarf-5-file0.d
@@ -12,8 +12,8 @@
 
  The File Name Table \(offset 0x.*, lines 3, columns 3\):
   Entry	Dir	MD5				Name
-  0	1 0x0	\(indirect line string, offset: 0x.*\): master source file
-  1	2 0x0	\(indirect line string, offset: 0x.*\): secondary source file
+  0	1 (0x)?0	\(indirect line string, offset: 0x.*\): master source file
+  1	2 (0x)?0	\(indirect line string, offset: 0x.*\): secondary source file
   2	3 0x95828e8bc4f7404dbf7526fb7bd0f192	\(indirect line string, offset: 0x.*\): foo.c
 #pass
 
diff --git a/gas/testsuite/gas/elf/dwarf-5-func-global.d b/gas/testsuite/gas/elf/dwarf-5-func-global.d
index 09b10fdf744..03c425dcc8b 100644
--- a/gas/testsuite/gas/elf/dwarf-5-func-global.d
+++ b/gas/testsuite/gas/elf/dwarf-5-func-global.d
@@ -28,7 +28,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
- +Number TAG \(0x0\)
+ +Number TAG \((0x)?0\)
  +1 +DW_TAG_compile_unit +\[has children\]
 #...
  +2 +DW_TAG_subprogram +\[no children\]
diff --git a/gas/testsuite/gas/elf/dwarf-5-func-local.d b/gas/testsuite/gas/elf/dwarf-5-func-local.d
index fd97841c2b1..ae635159acb 100644
--- a/gas/testsuite/gas/elf/dwarf-5-func-local.d
+++ b/gas/testsuite/gas/elf/dwarf-5-func-local.d
@@ -26,7 +26,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
- +Number TAG \(0x0\)
+ +Number TAG \((0x)?0\)
  +1 +DW_TAG_compile_unit +\[has children\]
 #...
  +2 +DW_TAG_subprogram +\[no children\]
diff --git a/gas/testsuite/gas/elf/dwarf-5-func.d b/gas/testsuite/gas/elf/dwarf-5-func.d
index 11a78b24dee..0d331c6aaa4 100644
--- a/gas/testsuite/gas/elf/dwarf-5-func.d
+++ b/gas/testsuite/gas/elf/dwarf-5-func.d
@@ -38,7 +38,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
- +Number TAG \(0x0\)
+ +Number TAG \((0x)?0\)
  +1 +DW_TAG_compile_unit +\[has children\]
 #...
  +2 +DW_TAG_subprogram +\[no children\]
diff --git a/gas/testsuite/gas/elf/dwarf2-1.d b/gas/testsuite/gas/elf/dwarf2-1.d
index d1e07528fe4..573e3d1ce39 100644
--- a/gas/testsuite/gas/elf/dwarf2-1.d
+++ b/gas/testsuite/gas/elf/dwarf2-1.d
@@ -4,13 +4,13 @@
 
 Contents of the .[z]?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x10
     <14>   DW_AT_low_pc      : 0x8
     <18>   DW_AT_name        : file1.txt
@@ -33,7 +33,7 @@ Contents of the .[z]?debug_info section:
 
 Raw dump of debug contents of section .[z]?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -77,7 +77,7 @@ Raw dump of debug contents of section .[z]?debug_line:
 
 Contents of the .[z]?debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
diff --git a/gas/testsuite/gas/elf/dwarf2-2.d b/gas/testsuite/gas/elf/dwarf2-2.d
index eb33a01fb7a..030f49e03f0 100644
--- a/gas/testsuite/gas/elf/dwarf2-2.d
+++ b/gas/testsuite/gas/elf/dwarf2-2.d
@@ -4,13 +4,13 @@
 
 Contents of the .[z]?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x10
     <14>   DW_AT_low_pc      : 0x8
     <18>   DW_AT_name        : file1.txt
@@ -33,7 +33,7 @@ Contents of the .[z]?debug_info section:
 
 Raw dump of debug contents of section .[z]?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               2
   Prologue Length:             35
@@ -77,7 +77,7 @@ Raw dump of debug contents of section .[z]?debug_line:
 
 Contents of the .[z]?debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
diff --git a/gas/testsuite/gas/elf/dwarf2-20.d b/gas/testsuite/gas/elf/dwarf2-20.d
index e0c6c8d0a71..04673014457 100644
--- a/gas/testsuite/gas/elf/dwarf2-20.d
+++ b/gas/testsuite/gas/elf/dwarf2-20.d
@@ -10,11 +10,11 @@ Contents of the .debug_aranges section:
 
 [ 	]+Length:[ 	]+(16|28|44)
 [ 	]+Version:.*
-[ 	]+Offset into .debug_info:[ 	]+0x0
+[ 	]+Offset into .debug_info:[ 	]+(0x)?0
 [ 	]+Pointer Size:[ 	]+(2|4|8)
 [ 	]+Segment Size:[ 	]+0
 
 [ 	]+Address[ 	]+Length
-[ 	]+0+000 0+010 
-[ 	]+0+000 0+000 
+[ 	]+0+000 0+010 ?
+[ 	]+0+000 0+000 ?
 #pass
diff --git a/gas/testsuite/gas/elf/dwarf2-3.d b/gas/testsuite/gas/elf/dwarf2-3.d
index 62dbe54ce00..c20249c9696 100644
--- a/gas/testsuite/gas/elf/dwarf2-3.d
+++ b/gas/testsuite/gas/elf/dwarf2-3.d
@@ -5,7 +5,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      41
   DWARF Version:               3
   Prologue Length:             35
diff --git a/gas/testsuite/gas/elf/dwarf2-5.d b/gas/testsuite/gas/elf/dwarf2-5.d
index 257bb55a017..ced12e7c0c7 100644
--- a/gas/testsuite/gas/elf/dwarf2-5.d
+++ b/gas/testsuite/gas/elf/dwarf2-5.d
@@ -11,7 +11,7 @@ Hex dump of section '\.rodata':
 
 Raw dump of debug contents of section \.debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      [0-9]*
   DWARF Version:               3
   Prologue Length:             [0-9]*
@@ -42,9 +42,9 @@ Raw dump of debug contents of section \.debug_line:
   1	0	0	0	dwarf2-5\.c
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Copy
-  \[0x.*\]  Special opcode [0-9]*: advance Address by 0 to 0x0 and Line by 1 to 2 \(view 1\)
+  \[0x.*\]  Special opcode [0-9]*: advance Address by 0 to (0x)?0 and Line by 1 to 2 \(view 1\)
   \[0x.*\]  Special opcode [0-9]*: advance Address by 8 to 0x8 and Line by 1 to 3
   \[0x.*\]  Special opcode [0-9]*: advance Address by 0 to 0x8 and Line by 1 to 4 \(view 1\)
   \[0x.*\]  Special opcode [0-9]*: advance Address by 0 to 0x8 and Line by 1 to 5 \(view 2\)
diff --git a/gas/testsuite/gas/elf/dwarf2-6.d b/gas/testsuite/gas/elf/dwarf2-6.d
index 10fe2374dd7..90747c90515 100644
--- a/gas/testsuite/gas/elf/dwarf2-6.d
+++ b/gas/testsuite/gas/elf/dwarf2-6.d
@@ -6,7 +6,7 @@
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      84
   DWARF Version:               2
   Prologue Length:             36
@@ -41,7 +41,7 @@ Raw dump of debug contents of section .debug_line:
 
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Copy
   \[0x.*\]  Copy \(view 1\)
   \[0x.*\]  Extended opcode 2: set Address to 0x1
diff --git a/gas/testsuite/gas/i386/debug1.d b/gas/testsuite/gas/i386/debug1.d
index f78ad06bf66..4bed8754747 100644
--- a/gas/testsuite/gas/i386/debug1.d
+++ b/gas/testsuite/gas/i386/debug1.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               3
   Prologue Length:             .*
@@ -36,8 +36,8 @@ Raw dump of debug contents of section \.z?debug_line:
   1	1	0	0	debug1.s
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode 7: advance Address by 0 to 0x0 and Line by 2 to 3
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode 7: advance Address by 0 to (0x)?0 and Line by 2 to 3
   \[0x.*\]  Special opcode 20: advance Address by 1 to 0x1 and Line by 1 to 4
   \[0x.*\]  Special opcode 20: advance Address by 1 to 0x2 and Line by 1 to 5
   \[0x.*\]  Advance PC by 1 to 0x3
diff --git a/gas/testsuite/gas/i386/dw2-compress-1.d b/gas/testsuite/gas/i386/dw2-compress-1.d
index 04f7dedf1ef..dc3ae137015 100644
--- a/gas/testsuite/gas/i386/dw2-compress-1.d
+++ b/gas/testsuite/gas/i386/dw2-compress-1.d
@@ -4,15 +4,15 @@
 
 Contents of the .z?debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x4
-    <14>   DW_AT_low_pc      : 0x0
+    <14>   DW_AT_low_pc      : (0x)?0
     <18>   DW_AT_name        : file1.txt
     <22>   DW_AT_producer    : GNU C 3.3.3
     <2e>   DW_AT_language    : 1	\(ANSI C\)
@@ -22,7 +22,7 @@ Contents of the .z?debug_info section:
     <32>   DW_AT_decl_line   : 2
     <33>   DW_AT_name        : func_cu1
     <3c>   DW_AT_type        : <0x4a>
-    <40>   DW_AT_low_pc      : 0x0
+    <40>   DW_AT_low_pc      : (0x)?0
     <44>   DW_AT_high_pc     : 0x4
     <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
@@ -33,7 +33,7 @@ Contents of the .z?debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -60,7 +60,7 @@ Contents of the .debug_abbrev section:
 
 Raw dump of debug contents of section .z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               .
   Prologue Length:             35
@@ -94,7 +94,7 @@ Raw dump of debug contents of section .z?debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Advance Line by 3 to 4
   \[0x.*\]  Copy
   \[0x.*\]  Copy \(view 1\)
diff --git a/gas/testsuite/gas/i386/dw2-compress-3a.d b/gas/testsuite/gas/i386/dw2-compress-3a.d
index 50a1e28fa87..0b990184da3 100644
--- a/gas/testsuite/gas/i386/dw2-compress-3a.d
+++ b/gas/testsuite/gas/i386/dw2-compress-3a.d
@@ -5,17 +5,17 @@
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x32 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
     <c>   DW_AT_producer    : \(indirect string, offset: 0x2\): GNU C 4.8.3
     <10>   DW_AT_language    : 1	\(ANSI C\)
     <11>   DW_AT_name        : \(indirect string, offset: 0xe\): dw2-compress-3.c
-    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x0\): .
-    <19>   DW_AT_stmt_list   : 0x0
+    <15>   DW_AT_comp_dir    : \(indirect string, offset: (0x)?0\): .
+    <19>   DW_AT_stmt_list   : (0x)?0
  <1><1d>: Abbrev Number: 2 \(DW_TAG_variable\)
     <1e>   DW_AT_name        : foo
     <22>   DW_AT_decl_file   : 1
@@ -31,7 +31,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_producer     DW_FORM_strp
     DW_AT_language     DW_FORM_data1
@@ -57,16 +57,16 @@ Contents of the .debug_aranges section:
 
   Length:                   20
   Version:                  2
-  Offset into .debug_info:  0x0
+  Offset into .debug_info:  (0x)?0
   Pointer Size:             4
   Segment Size:             0
 
     Address    Length
-    00000000 00000000 
+    00000000 00000000 ?
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      45
   DWARF Version:               3
   Prologue Length:             39
diff --git a/gas/testsuite/gas/i386/dw2-compress-3b.d b/gas/testsuite/gas/i386/dw2-compress-3b.d
index 798d5532c33..0b21122fc55 100644
--- a/gas/testsuite/gas/i386/dw2-compress-3b.d
+++ b/gas/testsuite/gas/i386/dw2-compress-3b.d
@@ -5,17 +5,17 @@
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x32 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
     <c>   DW_AT_producer    : \(indirect string, offset: 0x2\): GNU C 4.8.3
     <10>   DW_AT_language    : 1	\(ANSI C\)
     <11>   DW_AT_name        : \(indirect string, offset: 0xe\): dw2-compress-3.c
-    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x0\): .
-    <19>   DW_AT_stmt_list   : 0x0
+    <15>   DW_AT_comp_dir    : \(indirect string, offset: (0x)?0\): .
+    <19>   DW_AT_stmt_list   : (0x)?0
  <1><1d>: Abbrev Number: 2 \(DW_TAG_variable\)
     <1e>   DW_AT_name        : foo
     <22>   DW_AT_decl_file   : 1
@@ -31,7 +31,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_producer     DW_FORM_strp
     DW_AT_language     DW_FORM_data1
@@ -57,16 +57,16 @@ Contents of the .debug_aranges section:
 
   Length:                   20
   Version:                  2
-  Offset into .debug_info:  0x0
+  Offset into .debug_info:  (0x)?0
   Pointer Size:             4
   Segment Size:             0
 
     Address    Length
-    00000000 00000000 
+    00000000 00000000 ?
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      45
   DWARF Version:               3
   Prologue Length:             39
diff --git a/gas/testsuite/gas/i386/dw2-compressed-1.d b/gas/testsuite/gas/i386/dw2-compressed-1.d
index ea771c40882..2615d99e5d0 100644
--- a/gas/testsuite/gas/i386/dw2-compressed-1.d
+++ b/gas/testsuite/gas/i386/dw2-compressed-1.d
@@ -5,15 +5,15 @@
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x4e \(32-bit\)
    Version:       2
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_stmt_list   : 0x0
+    <c>   DW_AT_stmt_list   : (0x)?0
     <10>   DW_AT_high_pc     : 0x4
-    <14>   DW_AT_low_pc      : 0x0
+    <14>   DW_AT_low_pc      : (0x)?0
     <18>   DW_AT_name        : file1.txt
     <22>   DW_AT_producer    : GNU C 3.3.3
     <2e>   DW_AT_language    : 1	\(ANSI C\)
@@ -23,7 +23,7 @@ Contents of the .debug_info section:
     <32>   DW_AT_decl_line   : 2
     <33>   DW_AT_name        : func_cu1
     <3c>   DW_AT_type        : <0x4a>
-    <40>   DW_AT_low_pc      : 0x0
+    <40>   DW_AT_low_pc      : (0x)?0
     <44>   DW_AT_high_pc     : 0x4
     <48>   DW_AT_frame_base  : 1 byte block: 55 	\(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
@@ -34,7 +34,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_stmt_list    DW_FORM_data4
     DW_AT_high_pc      DW_FORM_addr
@@ -61,7 +61,7 @@ Contents of the .debug_abbrev section:
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               .
   Prologue Length:             35
@@ -95,7 +95,7 @@ Raw dump of debug contents of section .debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Advance Line by 3 to 4
   \[0x.*\]  Copy
   \[0x.*\]  Copy \(view 1\)
diff --git a/gas/testsuite/gas/i386/dw2-compressed-3a.d b/gas/testsuite/gas/i386/dw2-compressed-3a.d
index e4fcf535b6e..5a148454685 100644
--- a/gas/testsuite/gas/i386/dw2-compressed-3a.d
+++ b/gas/testsuite/gas/i386/dw2-compressed-3a.d
@@ -5,17 +5,17 @@
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x32 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
     <c>   DW_AT_producer    : \(indirect string, offset: 0x2\): GNU C 4.8.3
     <10>   DW_AT_language    : 1	\(ANSI C\)
     <11>   DW_AT_name        : \(indirect string, offset: 0xe\): dw2-compress-3.c
-    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x0\): .
-    <19>   DW_AT_stmt_list   : 0x0
+    <15>   DW_AT_comp_dir    : \(indirect string, offset: (0x)?0\): .
+    <19>   DW_AT_stmt_list   : (0x)?0
  <1><1d>: Abbrev Number: 2 \(DW_TAG_variable\)
     <1e>   DW_AT_name        : foo
     <22>   DW_AT_decl_file   : 1
@@ -31,7 +31,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_producer     DW_FORM_strp
     DW_AT_language     DW_FORM_data1
@@ -57,16 +57,16 @@ Contents of the .debug_aranges section:
 
   Length:                   20
   Version:                  2
-  Offset into .debug_info:  0x0
+  Offset into .debug_info:  (0x)?0
   Pointer Size:             4
   Segment Size:             0
 
     Address    Length
-    00000000 00000000 
+    00000000 00000000 ?
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      45
   DWARF Version:               3
   Prologue Length:             39
diff --git a/gas/testsuite/gas/i386/dw2-compressed-3b.d b/gas/testsuite/gas/i386/dw2-compressed-3b.d
index 37f6b7effb0..6c2cd12a7b7 100644
--- a/gas/testsuite/gas/i386/dw2-compressed-3b.d
+++ b/gas/testsuite/gas/i386/dw2-compressed-3b.d
@@ -5,17 +5,17 @@
 
 Contents of the .debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x32 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
     <c>   DW_AT_producer    : \(indirect string, offset: 0x2\): GNU C 4.8.3
     <10>   DW_AT_language    : 1	\(ANSI C\)
     <11>   DW_AT_name        : \(indirect string, offset: 0xe\): dw2-compress-3.c
-    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x0\): .
-    <19>   DW_AT_stmt_list   : 0x0
+    <15>   DW_AT_comp_dir    : \(indirect string, offset: (0x)?0\): .
+    <19>   DW_AT_stmt_list   : (0x)?0
  <1><1d>: Abbrev Number: 2 \(DW_TAG_variable\)
     <1e>   DW_AT_name        : foo
     <22>   DW_AT_decl_file   : 1
@@ -31,7 +31,7 @@ Contents of the .debug_info section:
 
 Contents of the .debug_abbrev section:
 
-  Number TAG \(0x0\)
+  Number TAG \((0x)?0\)
    1      DW_TAG_compile_unit    \[has children\]
     DW_AT_producer     DW_FORM_strp
     DW_AT_language     DW_FORM_data1
@@ -57,16 +57,16 @@ Contents of the .debug_aranges section:
 
   Length:                   20
   Version:                  2
-  Offset into .debug_info:  0x0
+  Offset into .debug_info:  (0x)?0
   Pointer Size:             4
   Segment Size:             0
 
     Address    Length
-    00000000 00000000 
+    00000000 00000000 ?
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      45
   DWARF Version:               3
   Prologue Length:             39
diff --git a/gas/testsuite/gas/i386/dwarf2-line-1.d b/gas/testsuite/gas/i386/dwarf2-line-1.d
index 196f099c1a8..d9baafda26d 100644
--- a/gas/testsuite/gas/i386/dwarf2-line-1.d
+++ b/gas/testsuite/gas/i386/dwarf2-line-1.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               3
   Prologue Length:             .*
@@ -36,8 +36,8 @@ Raw dump of debug contents of section \.z?debug_line:
   1	1	0	0	dwarf2-line-1.s
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode 13: advance Address by 0 to 0x0 and Line by 8 to 9
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode 13: advance Address by 0 to (0x)?0 and Line by 8 to 9
   \[0x.*\]  Special opcode 20: advance Address by 1 to 0x1 and Line by 1 to 10
   \[0x.*\]  Advance PC by 1 to 0x2
   \[0x.*\]  Extended opcode 1: End of Sequence
diff --git a/gas/testsuite/gas/i386/dwarf2-line-2.d b/gas/testsuite/gas/i386/dwarf2-line-2.d
index 2553fea32cd..2fb07b7b209 100644
--- a/gas/testsuite/gas/i386/dwarf2-line-2.d
+++ b/gas/testsuite/gas/i386/dwarf2-line-2.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section .z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      62
   DWARF Version:               .
   Prologue Length:             35
@@ -38,11 +38,11 @@ Raw dump of debug contents of section .z?debug_line:
   1	0	0	0	file1.txt
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Advance Line by 3 to 4
   \[0x.*\]  Copy
   \[0x.*\]  Copy \(view 1\)
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Extended opcode 1: End of Sequence
 
 
diff --git a/gas/testsuite/gas/i386/dwarf2-line-4.d b/gas/testsuite/gas/i386/dwarf2-line-4.d
index 0403c3e2faf..6846ae21e9a 100644
--- a/gas/testsuite/gas/i386/dwarf2-line-4.d
+++ b/gas/testsuite/gas/i386/dwarf2-line-4.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               3
   Prologue Length:             .*
diff --git a/gas/testsuite/gas/i386/dwarf4-line-1.d b/gas/testsuite/gas/i386/dwarf4-line-1.d
index 762bdce9934..79018680cda 100644
--- a/gas/testsuite/gas/i386/dwarf4-line-1.d
+++ b/gas/testsuite/gas/i386/dwarf4-line-1.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               4
   Prologue Length:             .*
diff --git a/gas/testsuite/gas/i386/dwarf5-line-1.d b/gas/testsuite/gas/i386/dwarf5-line-1.d
index 6ec51912dd1..dc6d44c7b31 100644
--- a/gas/testsuite/gas/i386/dwarf5-line-1.d
+++ b/gas/testsuite/gas/i386/dwarf5-line-1.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               5
   Address size \(bytes\):        .*
@@ -33,11 +33,11 @@ Raw dump of debug contents of section \.z?debug_line:
 
  The Directory Table \(offset 0x.*, lines 1, columns 1\):
   Entry	Name
-  0	\(indirect line string, offset: 0x.*\): .*/gas/testsuite
+  0	\(indirect line string, offset: 0.*\): .*/gas/testsuite
 
  The File Name Table \(offset 0x.*, lines 2, columns 3\):
   Entry	Dir	MD5				Name
   0	0 0xbbd69fc03ce253b2dbaab2522dd519ae	\(indirect line string, offset: 0x.*\): core.c
-  1	0 0x0	\(indirect line string, offset: 0x.*\): types.h
+  1	0 (0x)?0	\(indirect line string, offset: 0x.*\): types.h
 
  No Line Number Statements\.
diff --git a/gas/testsuite/gas/i386/dwarf5-line-2.d b/gas/testsuite/gas/i386/dwarf5-line-2.d
index 4bb849bba34..0890b16ded9 100644
--- a/gas/testsuite/gas/i386/dwarf5-line-2.d
+++ b/gas/testsuite/gas/i386/dwarf5-line-2.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               5
   Address size \(bytes\):        .*
@@ -33,7 +33,7 @@ Raw dump of debug contents of section \.z?debug_line:
 
  The Directory Table \(offset 0x.*, lines 1, columns 1\):
   Entry	Name
-  0	\(indirect line string, offset: 0x.*\): .*/gas/testsuite
+  0	\(indirect line string, offset: 0.*\): .*/gas/testsuite
 
  The File Name Table \(offset 0x.*, lines 1, columns 3\):
   Entry	Dir	MD5				Name
diff --git a/gas/testsuite/gas/i386/dwarf5-line-3.d b/gas/testsuite/gas/i386/dwarf5-line-3.d
index 0159b9632dc..2a07a17c2db 100644
--- a/gas/testsuite/gas/i386/dwarf5-line-3.d
+++ b/gas/testsuite/gas/i386/dwarf5-line-3.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               5
   Address size \(bytes\):        .*
@@ -33,7 +33,7 @@ Raw dump of debug contents of section \.z?debug_line:
 
  The Directory Table \(offset 0x.*, lines 1, columns 1\):
   Entry	Name
-  0	\(indirect line string, offset: 0x.*\): .*
+  0	\(indirect line string, offset: 0.*\): .*
 
  The File Name Table \(offset 0x.*, lines 2, columns 2\):
   Entry	Dir	Name
@@ -41,8 +41,8 @@ Raw dump of debug contents of section \.z?debug_line:
   1	0	\(indirect line string, offset: 0x.*\): dwarf5-line-3.S
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode 7: advance Address by 0 to 0x0 and Line by 2 to 3
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode 7: advance Address by 0 to (0x)?0 and Line by 2 to 3
   \[0x.*\]  Advance PC by 1 to 0x1
   \[0x.*\]  Extended opcode 1: End of Sequence
 
diff --git a/gas/testsuite/gas/i386/dwarf5-line-4.d b/gas/testsuite/gas/i386/dwarf5-line-4.d
index a3af48eda8c..71623aeb640 100644
--- a/gas/testsuite/gas/i386/dwarf5-line-4.d
+++ b/gas/testsuite/gas/i386/dwarf5-line-4.d
@@ -4,7 +4,7 @@
 
 Raw dump of debug contents of section \.z?debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      .*
   DWARF Version:               5
   Address size \(bytes\):        .*
@@ -33,7 +33,7 @@ Raw dump of debug contents of section \.z?debug_line:
 
  The Directory Table \(offset 0x.*, lines 2, columns 1\):
   Entry	Name
-  0	\(indirect line string, offset: 0x.*\): .*
+  0	\(indirect line string, offset: 0.*\): .*
   1	\(indirect line string, offset: 0x.*\): .*
 
  The File Name Table \(offset 0x.*, lines 2, columns 2\):
@@ -42,8 +42,8 @@ Raw dump of debug contents of section \.z?debug_line:
   1	1	\(indirect line string, offset: 0x.*\): dwarf5-line-4.s
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode 7: advance Address by 0 to 0x0 and Line by 2 to 3
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode 7: advance Address by 0 to (0x)?0 and Line by 2 to 3
   \[0x.*\]  Advance PC by 1 to 0x1
   \[0x.*\]  Extended opcode 1: End of Sequence
 
diff --git a/gas/testsuite/gas/ia64/pr13167.d b/gas/testsuite/gas/ia64/pr13167.d
index e447cb64cc6..10c98bcc0be 100644
--- a/gas/testsuite/gas/ia64/pr13167.d
+++ b/gas/testsuite/gas/ia64/pr13167.d
@@ -2,7 +2,7 @@
 
 Raw dump of debug contents of section \.debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      51
   DWARF Version:               3
   Prologue Length:             26
diff --git a/gas/testsuite/gas/lns/lns-big-delta.d b/gas/testsuite/gas/lns/lns-big-delta.d
index 5641adce195..d75d7d7f14c 100644
--- a/gas/testsuite/gas/lns/lns-big-delta.d
+++ b/gas/testsuite/gas/lns/lns-big-delta.d
@@ -4,10 +4,10 @@
 Raw dump of debug contents of section \.debug_line:
 #...
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
   \[0x.*\]  Copy
   \[0x.*\]  Advance Line by 1 to 2
-  \[0x.*\]  Advance PC by fixed size amount 0 to 0x0
+  \[0x.*\]  Advance PC by fixed size amount 0 to (0x)?0
   \[0x.*\]  Copy \(view 1\)
   \[0x.*\]  Advance Line by 1 to 3
   \[0x.*\]  Extended opcode 2: set Address to 0x.*
diff --git a/gas/testsuite/gas/mips/loc-swap-2.d b/gas/testsuite/gas/mips/loc-swap-2.d
index 27bc810baf8..b88868aee4b 100644
--- a/gas/testsuite/gas/mips/loc-swap-2.d
+++ b/gas/testsuite/gas/mips/loc-swap-2.d
@@ -6,7 +6,7 @@
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      60
   DWARF Version:               3
   Prologue Length:             35
@@ -37,10 +37,10 @@ Raw dump of debug contents of section .debug_line:
   1	0	0	0	loc-swap-2.s
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode 11: advance Address by 0 to 0x0 and Line by 6 to 7
-  \[0x.*\]  Special opcode 7: advance Address by 0 to 0x0 and Line by 2 to 9 \(view 1\)
-  \[0x.*\]  Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 10 \(view 2\)
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode 11: advance Address by 0 to (0x)?0 and Line by 6 to 7
+  \[0x.*\]  Special opcode 7: advance Address by 0 to (0x)?0 and Line by 2 to 9 \(view 1\)
+  \[0x.*\]  Special opcode 6: advance Address by 0 to (0x)?0 and Line by 1 to 10 \(view 2\)
   \[0x.*\]  Special opcode 120: advance Address by 8 to 0x8 and Line by 3 to 13
   \[0x.*\]  Special opcode 62: advance Address by 4 to 0xc and Line by 1 to 14
   \[0x.*\]  Special opcode 6: advance Address by 0 to 0xc and Line by 1 to 15 \(view 1\)
diff --git a/gas/testsuite/gas/mips/loc-swap-3.d b/gas/testsuite/gas/mips/loc-swap-3.d
index 595493c8ad0..e72f7d7323e 100644
--- a/gas/testsuite/gas/mips/loc-swap-3.d
+++ b/gas/testsuite/gas/mips/loc-swap-3.d
@@ -5,13 +5,13 @@
 #...
  Line Number Statements:
 .*  Set prologue_end to true
-.*  Extended opcode 2: set Address to 0x[01]
+.*  Extended opcode 2: set Address to (0x)?[01]
 .*  Copy
 #------------------------------------------------------------------------
 # There used to be a bogus:
 #   Set prologue_end to true
 # here
 #------------------------------------------------------------------------
-.*  Special opcode 6: advance Address by 0 to 0x[01] and Line by 1 to 2 \(view 1\)
+.*  Special opcode 6: advance Address by 0 to (0x)?[01] and Line by 1 to 2 \(view 1\)
 .*  Advance PC by .*
 .*  Extended opcode 1: End of Sequence
diff --git a/gas/testsuite/gas/mips/loc-swap.d b/gas/testsuite/gas/mips/loc-swap.d
index 80c7be4994b..68546e1fb3d 100644
--- a/gas/testsuite/gas/mips/loc-swap.d
+++ b/gas/testsuite/gas/mips/loc-swap.d
@@ -9,7 +9,7 @@
 
 Raw dump of debug contents of section \.debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      67
   DWARF Version:               3
   Prologue Length:             33
@@ -40,8 +40,8 @@ Raw dump of debug contents of section \.debug_line:
   1	0	0	0	loc-swap\.s
 
  Line Number Statements:
-  \[0x.*\]  Extended opcode 2: set Address to 0x0
-  \[0x.*\]  Special opcode 11: advance Address by 0 to 0x0 and Line by 6 to 7
+  \[0x.*\]  Extended opcode 2: set Address to (0x)?0
+  \[0x.*\]  Special opcode 11: advance Address by 0 to (0x)?0 and Line by 6 to 7
   \[0x.*\]  Special opcode 63: advance Address by 4 to 0x4 and Line by 2 to 9
   \[0x.*\]  Special opcode 120: advance Address by 8 to 0xc and Line by 3 to 12
   \[0x.*\]  Special opcode 7: advance Address by 0 to 0xc and Line by 2 to 14 \(view 1\)
diff --git a/gas/testsuite/gas/mips/micromips@loc-swap-2.d b/gas/testsuite/gas/mips/micromips@loc-swap-2.d
index c63a854fded..4940816c39e 100644
--- a/gas/testsuite/gas/mips/micromips@loc-swap-2.d
+++ b/gas/testsuite/gas/mips/micromips@loc-swap-2.d
@@ -6,7 +6,7 @@
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      60
   DWARF Version:               3
   Prologue Length:             35
diff --git a/gas/testsuite/gas/mips/micromips@loc-swap.d b/gas/testsuite/gas/mips/micromips@loc-swap.d
index 6ebb510d274..1c090ae022b 100644
--- a/gas/testsuite/gas/mips/micromips@loc-swap.d
+++ b/gas/testsuite/gas/mips/micromips@loc-swap.d
@@ -10,7 +10,7 @@
 
 Raw dump of debug contents of section \.debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      67
   DWARF Version:               3
   Prologue Length:             33
diff --git a/gas/testsuite/gas/mips/mips16@loc-swap-2.d b/gas/testsuite/gas/mips/mips16@loc-swap-2.d
index 39fd33da9e2..ebc31c1eedc 100644
--- a/gas/testsuite/gas/mips/mips16@loc-swap-2.d
+++ b/gas/testsuite/gas/mips/mips16@loc-swap-2.d
@@ -6,7 +6,7 @@
 
 Raw dump of debug contents of section .debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      60
   DWARF Version:               3
   Prologue Length:             35
diff --git a/gas/testsuite/gas/mips/mips16@loc-swap.d b/gas/testsuite/gas/mips/mips16@loc-swap.d
index 14cd7669580..3b522b1a6f3 100644
--- a/gas/testsuite/gas/mips/mips16@loc-swap.d
+++ b/gas/testsuite/gas/mips/mips16@loc-swap.d
@@ -9,7 +9,7 @@
 
 Raw dump of debug contents of section \.debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      67
   DWARF Version:               3
   Prologue Length:             33
diff --git a/gas/testsuite/gas/mips/mips16e@loc-swap.d b/gas/testsuite/gas/mips/mips16e@loc-swap.d
index 62e342b14d1..f1294cc15cf 100644
--- a/gas/testsuite/gas/mips/mips16e@loc-swap.d
+++ b/gas/testsuite/gas/mips/mips16e@loc-swap.d
@@ -9,7 +9,7 @@
 
 Raw dump of debug contents of section \.debug_line:
 
-  Offset:                      0x0
+  Offset:                      (0x)?0
   Length:                      67
   DWARF Version:               3
   Prologue Length:             33
diff --git a/ld/testsuite/ld-arm/cmse_main_sec_debug.d b/ld/testsuite/ld-arm/cmse_main_sec_debug.d
index 2f01af295c0..03415791420 100644
--- a/ld/testsuite/ld-arm/cmse_main_sec_debug.d
+++ b/ld/testsuite/ld-arm/cmse_main_sec_debug.d
@@ -3,22 +3,22 @@ tmpdir/cmse_main_sec_debug:     .*
 
 Contents of the \.debug_info section:
 
-  Compilation Unit @ offset 0x0:
+  Compilation Unit @ offset (0x)?0:
    Length:        0x34 \(32-bit\)
    Version:       4
-   Abbrev Offset: 0x0
+   Abbrev Offset: (0x)?0
    Pointer Size:  4
  <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
-    <c>   DW_AT_producer    : \(indirect string, offset: 0x[a-f0-9]+\): GNU C17 10.0.0 20190617
+    <c>   DW_AT_producer    : \(indirect string, offset: (0x)?[a-f0-9]+\): GNU C17 10.0.0 20190617
     <10>   DW_AT_language    : 12	\(ANSI C99\)
-    <11>   DW_AT_name        : \(indirect string, offset: 0x[a-f0-9]+\): sec.c
-    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x[a-f0-9]+\): Blinky
-    <19>   DW_AT_ranges      : 0x[a-f0-9]+
-    <1d>   DW_AT_low_pc      : 0x[a-f0-9]+
-    <21>   DW_AT_stmt_list   : 0x[a-f0-9]+
+    <11>   DW_AT_name        : \(indirect string, offset: (0x)?[a-f0-9]+\): sec.c
+    <15>   DW_AT_comp_dir    : \(indirect string, offset: (0x)?[a-f0-9]+\): Blinky
+    <19>   DW_AT_ranges      : (0x)?0
+    <1d>   DW_AT_low_pc      : (0x)?0
+    <21>   DW_AT_stmt_list   : (0x)?0
  <1><25>: Abbrev Number: 2 \(DW_TAG_subprogram\)
     <26>   DW_AT_external    : 1
-    <26>   DW_AT_name        : \(indirect string, offset: 0x[a-f0-9]+\): SecureLED_On
+    <26>   DW_AT_name        : \(indirect string, offset: (0x)?[a-f0-9]+\): SecureLED_On
     <2a>   DW_AT_decl_file   : 1
     <2b>   DW_AT_decl_line   : 2
     <2c>   DW_AT_decl_column : 1

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list