* printcmd.c (print_address_demangle): Add 'opts' argument.
[deliverable/binutils-gdb.git] / gdb / gnu-v3-abi.c
index 0ba6ab54f527002d7b27b1d1b178803fa3ebfa33..42b939d4192c218df793dd1756ee1cca3ce280ae 100644 (file)
@@ -130,28 +130,28 @@ build_gdb_vtable_type (struct gdbarch *arch)
   /* ptrdiff_t vcall_and_vbase_offsets[0]; */
   FIELD_NAME (*field) = "vcall_and_vbase_offsets";
   FIELD_TYPE (*field) = lookup_array_range_type (ptrdiff_type, 0, -1);
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
   /* ptrdiff_t offset_to_top; */
   FIELD_NAME (*field) = "offset_to_top";
   FIELD_TYPE (*field) = ptrdiff_type;
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
   /* void *type_info; */
   FIELD_NAME (*field) = "type_info";
   FIELD_TYPE (*field) = void_ptr_type;
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
   /* void (*virtual_functions[0]) (); */
   FIELD_NAME (*field) = "virtual_functions";
   FIELD_TYPE (*field) = lookup_array_range_type (ptr_to_void_fn_type, 0, -1);
-  FIELD_BITPOS (*field) = offset * TARGET_CHAR_BIT;
+  SET_FIELD_BITPOS (*field, offset * TARGET_CHAR_BIT);
   offset += TYPE_LENGTH (FIELD_TYPE (*field));
   field++;
 
@@ -620,7 +620,12 @@ gnuv3_print_method_ptr (const gdb_byte *contents,
       print_longest (stream, 'd', 1, ptr_value);
     }
   else
-    print_address_demangle (gdbarch, ptr_value, stream, demangle);
+    {
+      struct value_print_options opts;
+
+      get_user_print_options (&opts);
+      print_address_demangle (&opts, gdbarch, ptr_value, stream, demangle);
+    }
 
   if (adjustment)
     {
@@ -869,8 +874,9 @@ print_one_vtable (struct gdbarch *gdbarch, struct value *value,
 
   for (i = 0; i <= max_voffset; ++i)
     {
+      /* Initialize it just to avoid a GCC false warning.  */
+      CORE_ADDR addr = 0;
       struct value *vfn;
-      CORE_ADDR addr;
       volatile struct gdb_exception ex;
 
       printf_filtered ("[%d]: ", i);
@@ -889,8 +895,7 @@ print_one_vtable (struct gdbarch *gdbarch, struct value *value,
       if (ex.reason < 0)
        printf_filtered (_("<error: %s>"), ex.message);
       else
-       print_function_pointer_address (gdbarch, addr, gdb_stdout,
-                                       opts->addressprint);
+       print_function_pointer_address (opts, gdbarch, addr, gdb_stdout);
       printf_filtered ("\n");
     }
 }
@@ -906,7 +911,7 @@ gnuv3_print_vtable (struct value *value)
   struct value_print_options opts;
   htab_t offset_hash;
   struct cleanup *cleanup;
-  VEC (value_and_voffset_p) *result_vec;
+  VEC (value_and_voffset_p) *result_vec = NULL;
   struct value_and_voffset *iter;
   int i, count;
 
This page took 0.024759 seconds and 4 git commands to generate.