* gdb.java/jv-print.exp: Fix p '' and p ''' tests to deal with
[deliverable/binutils-gdb.git] / gdb / printcmd.c
index fd51c2b1f4cd3cae5992bf6300131d7a6da1a26e..2e57050105f04d1a4dbb89316d7bb40bc67ddb7a 100644 (file)
@@ -40,6 +40,7 @@
 #include "objfiles.h"          /* ditto */
 #include "completer.h"         /* for completion functions */
 #include "ui-out.h"
+#include "gdb_assert.h"
 
 extern int asm_demangle;       /* Whether to demangle syms in asm printouts */
 extern int addressprint;       /* Whether to print hex addresses in HLL " */
@@ -923,25 +924,6 @@ print_command_1 (char *exp, int inspect, int voidprint)
       old_chain = make_cleanup (free_current_contents, &expr);
       cleanup = 1;
       val = evaluate_expression (expr);
-
-      /* C++: figure out what type we actually want to print it as.  */
-      type = VALUE_TYPE (val);
-
-      if (objectprint
-         && (TYPE_CODE (type) == TYPE_CODE_PTR
-             || TYPE_CODE (type) == TYPE_CODE_REF)
-         && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_STRUCT
-             || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_UNION))
-       {
-         struct value *v;
-
-         v = value_from_vtable_info (val, TYPE_TARGET_TYPE (type));
-         if (v != 0)
-           {
-             val = v;
-             type = VALUE_TYPE (val);
-           }
-       }
     }
   else
     val = access_value_history (0);
@@ -1113,7 +1095,7 @@ address_info (char *exp, int from_tty)
   if (exp == 0)
     error ("Argument required.");
 
-  sym = lookup_symbol (exp, get_selected_block (), VAR_NAMESPACE,
+  sym = lookup_symbol (exp, get_selected_block (0), VAR_NAMESPACE,
                       &is_a_field_of_this, (struct symtab **) NULL);
   if (sym == NULL)
     {
@@ -1549,7 +1531,7 @@ do_one_display (struct display *d)
     return;
 
   if (d->block)
-    within_current_scope = contained_in (get_selected_block (), d->block);
+    within_current_scope = contained_in (get_selected_block (0), d->block);
   else
     within_current_scope = 1;
   if (!within_current_scope)
@@ -1683,7 +1665,7 @@ Num Enb Expression\n");
       else if (d->format.format)
        printf_filtered ("/%c ", d->format.format);
       print_expression (d->exp, gdb_stdout);
-      if (d->block && !contained_in (get_selected_block (), d->block))
+      if (d->block && !contained_in (get_selected_block (0), d->block))
        printf_filtered (" (cannot be evaluated in the current context)");
       printf_filtered ("\n");
       gdb_flush (gdb_stdout);
@@ -1804,6 +1786,10 @@ print_frame_args (struct symbol *func, struct frame_info *fi, int num,
   if (func)
     {
       b = SYMBOL_BLOCK_VALUE (func);
+      /* Function blocks are order sensitive, and thus should not be
+        hashed.  */
+      gdb_assert (BLOCK_HASHTABLE (b) == 0);
+
       ALL_BLOCK_SYMBOLS (b, i, sym)
         {
          QUIT;
This page took 0.03909 seconds and 4 git commands to generate.