* utils.c (vfprintf_maybe_filtered, vfprintf_unfiltered): Call
authorJim Kingdon <jkingdon@engr.sgi.com>
Tue, 17 May 1994 20:13:50 +0000 (20:13 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Tue, 17 May 1994 20:13:50 +0000 (20:13 +0000)
fputs_unfiltered and exit directly, rather than fatal.  The latter
calls vfprintf_unfiltered!

* gdbtypes.h, gdbtypes.c (can_dereference): New function.
* value.h, printcmd.c (print_value_flags): Move from here...
* annotate.c: ...to here, and make it use can_dereference.

gdb/ChangeLog
gdb/annotate.c
gdb/gdbtypes.c
gdb/gdbtypes.h
gdb/printcmd.c
gdb/utils.c

index 150258b2afa245b1805b451e6286637031d95cbd..61af1ced9dfce67d0e2d30e77517856132cf59fa 100644 (file)
@@ -1,3 +1,13 @@
+Tue May 17 11:08:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * utils.c (vfprintf_maybe_filtered, vfprintf_unfiltered): Call
+       fputs_unfiltered and exit directly, rather than fatal.  The latter
+       calls vfprintf_unfiltered!
+
+       * gdbtypes.h, gdbtypes.c (can_dereference): New function.
+       * value.h, printcmd.c (print_value_flags): Move from here...
+       * annotate.c: ...to here, and make it use can_dereference.
+
 Sat May 14 15:13:52 1994  Stan Shebs  (shebs@andros.cygnus.com)
 
        * inflow.c (job_control, attach_flag, generic_mourn_inferior):
index 73612aa703f13d1ff269119c93e8c55302a1987a..4276b849d5626f07bba26af36f016598db89938e 100644 (file)
@@ -21,7 +21,20 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "annotate.h"
 #include "value.h"
 #include "target.h"
+#include "gdbtypes.h"
+\f
+static void print_value_flags PARAMS ((struct type *));
 
+static void
+print_value_flags (t)
+     struct type *t;
+{
+  if (can_dereference (t))
+    printf_filtered ("*");
+  else
+    printf_filtered ("-");
+}
+\f
 void
 breakpoints_changed ()
 {
index 06bada597adafbce240f0569ca9cc35df632c407..b89123738fb89e26353cdcd054e09eb7b38419d5 100644 (file)
@@ -1146,6 +1146,17 @@ lookup_fundamental_type (objfile, typeid)
   return (*typep);
 }
 
+int
+can_dereference (t)
+     struct type *t;
+{
+  /* FIXME: Should we return true for references as well as pointers?  */
+  return
+    (t != NULL
+     && TYPE_CODE (t) == TYPE_CODE_PTR
+     && TYPE_CODE (TYPE_TARGET_TYPE (t)) != TYPE_CODE_VOID);
+}
+
 #if MAINTENANCE_CMDS
 
 static void
index acd21c0dcc740dfc8dde7168ab6e90c910d753eb..62fe1ab262ab5c3cde090bfabeb9901dd450f9a1 100644 (file)
@@ -726,6 +726,8 @@ extern void recursive_dump_type PARAMS ((struct type *, int));
 extern void
 print_scalar_formatted PARAMS ((char *, struct type *, int, int, GDB_FILE *));
 
+extern int can_dereference PARAMS ((struct type *));
+
 #if MAINTENANCE_CMDS
 extern void maintenance_print_type PARAMS ((char *, int));
 #endif
index 20600240df1debf3fa7d8bfcdf092260e153e688..467b0ae4f62df56af3abf1216b5e416d448f4f0a 100644 (file)
@@ -88,19 +88,6 @@ int current_display_number;
 
 int inspect_it = 0;
 
-void
-print_value_flags (t)
-     struct type *t;
-{
-  /* FIXME: Should we be printing * for references as well as pointers?  */
-  if (t != NULL
-      && TYPE_CODE (t) == TYPE_CODE_PTR
-      && TYPE_CODE (TYPE_TARGET_TYPE (t)) != TYPE_CODE_VOID)
-    printf_filtered ("*");
-  else
-    printf_filtered ("-");
-}
-
 struct display
 {
   /* Chain link to next auto-display item.  */
index 1956984d6823b763ee392e922ba2a7e40fe0257c..de02160b6e4c8258bff0361b176905b690b63271 100644 (file)
@@ -1389,7 +1389,10 @@ vfprintf_maybe_filtered (stream, format, args, filter)
 
   vasprintf (&linebuffer, format, args);
   if (linebuffer == NULL)
-    fatal ("virtual memory exhausted.");
+    {
+      fputs_unfiltered ("\ngdb: virtual memory exhausted.\n", gdb_stderr);
+      exit (1);
+    }
   old_cleanups = make_cleanup (free, linebuffer);
   fputs_maybe_filtered (linebuffer, stream, filter);
   do_cleanups (old_cleanups);
@@ -1416,7 +1419,10 @@ vfprintf_unfiltered (stream, format, args)
 
   vasprintf (&linebuffer, format, args);
   if (linebuffer == NULL)
-    fatal ("virtual memory exhausted.");
+    {
+      fputs_unfiltered ("\ngdb: virtual memory exhausted.\n", gdb_stderr);
+      exit (1);
+    }
   old_cleanups = make_cleanup (free, linebuffer);
   fputs_unfiltered (linebuffer, stream);
   do_cleanups (old_cleanups);