* language.h (type_error, range_error): Make string parameter
authorAndrew Cagney <cagney@redhat.com>
Sat, 2 Feb 2002 02:28:40 +0000 (02:28 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sat, 2 Feb 2002 02:28:40 +0000 (02:28 +0000)
constant.
* language.c (warning_pre_print): Delete extern declaration.
* dwarfread.c (warning_pre_print): Ditto.
* language.c (type_error, range_error): Rewrite to use verror and
vwarning instead of warning_begin.

gdb/ChangeLog
gdb/dwarfread.c
gdb/language.c
gdb/language.h

index 5870e81..7d8f9c6 100644 (file)
@@ -1,3 +1,12 @@
+2002-02-01  Andrew Cagney  <ac131313@redhat.com>
+
+       * language.h (type_error, range_error): Make string parameter
+       constant.
+       * language.c (warning_pre_print): Delete extern declaration.
+       * dwarfread.c (warning_pre_print): Ditto.
+       * language.c (type_error, range_error): Rewrite to use verror and
+       vwarning instead of warning_begin.
+
 2002-02-01  Michael Snyder  <msnyder@redhat.com>
 
        * breakpoint.c (set_ignore_count): Move misplaced comment
index 3fdfd1c..d5a62cc 100644 (file)
@@ -239,10 +239,6 @@ typedef unsigned int DIE_REF;      /* Reference to a DIE */
 
 #define        AT_short_element_list    (0x00f0|FORM_BLOCK2)
 
-/* External variables referenced. */
-
-extern char *warning_pre_print;        /* From utils.c */
-
 /* The DWARF debugging information consists of two major pieces,
    one is a block of DWARF Information Entries (DIE's) and the other
    is a line number table.  The "struct dieinfo" structure contains
index f8525b6..c2db91c 100644 (file)
@@ -100,7 +100,6 @@ static int unk_lang_value_print (struct value *, struct ui_file *, int, enum val
 
 /* Forward declaration */
 extern const struct language_defn unknown_language_defn;
-extern char *warning_pre_print;
 
 /* The current (default at startup) state of type and range checking.
    (If the modes are set to "auto", though, these are changed based
@@ -1234,47 +1233,63 @@ op_error (char *fmt, enum exp_opcode op, int fatal)
     }
 }
 
-/* These are called when a language fails a type- or range-check.
-   The first argument should be a printf()-style format string, and
-   the rest of the arguments should be its arguments.  If
-   [type|range]_check is [type|range]_check_on, then return_to_top_level()
-   is called in the style of error ().  Otherwise, the message is prefixed
-   by the value of warning_pre_print and we do not return to the top level. */
+/* These are called when a language fails a type- or range-check.  The
+   first argument should be a printf()-style format string, and the
+   rest of the arguments should be its arguments.  If
+   [type|range]_check is [type|range]_check_on, an error is printed;
+   if [type|range]_check_warn, a warning; otherwise just the
+   message. */
 
 void
-type_error (char *string,...)
+type_error (const char *string,...)
 {
   va_list args;
   va_start (args, string);
 
-  if (type_check == type_check_warn)
-    fprintf_filtered (gdb_stderr, warning_pre_print);
-  else
-    error_begin ();
-
-  vfprintf_filtered (gdb_stderr, string, args);
-  fprintf_filtered (gdb_stderr, "\n");
+  switch (type_check)
+    {
+    case type_check_warn:
+      vwarning (string, args);
+      break;
+    case type_check_on:
+      verror (string, args);
+      break;
+    case type_check_off:
+      /* FIXME: cagney/2002-01-30: Should this function print anything
+         when type error is off?  */
+      vfprintf_filtered (gdb_stderr, string, args);
+      fprintf_filtered (gdb_stderr, "\n");
+      break;
+    default:
+      internal_error (__FILE__, __LINE__, "bad switch");
+    }
   va_end (args);
-  if (type_check == type_check_on)
-    return_to_top_level (RETURN_ERROR);
 }
 
 void
-range_error (char *string,...)
+range_error (const char *string,...)
 {
   va_list args;
   va_start (args, string);
 
-  if (range_check == range_check_warn)
-    fprintf_filtered (gdb_stderr, warning_pre_print);
-  else
-    error_begin ();
-
-  vfprintf_filtered (gdb_stderr, string, args);
-  fprintf_filtered (gdb_stderr, "\n");
+  switch (range_check)
+    {
+    case range_check_warn:
+      vwarning (string, args);
+      break;
+    case range_check_on:
+      verror (string, args);
+      break;
+    case range_check_off:
+      /* FIXME: cagney/2002-01-30: Should this function print anything
+         when range error is off?  */
+      vfprintf_filtered (gdb_stderr, string, args);
+      fprintf_filtered (gdb_stderr, "\n");
+      break;
+    default:
+      internal_error (__FILE__, __LINE__, "bad switch");
+    }
   va_end (args);
-  if (range_check == range_check_on)
-    return_to_top_level (RETURN_ERROR);
 }
 \f
 
index 01d75bd..88375db 100644 (file)
@@ -440,11 +440,9 @@ extern void op_error (char *fmt, enum exp_opcode, int);
 #define range_op_error(f,o) \
    op_error((f),(o),range_check==range_check_on ? 1 : 0)
 
-extern void type_error (char *, ...) ATTR_FORMAT (printf, 1, 2);
+extern void type_error (const char *, ...) ATTR_FORMAT (printf, 1, 2);
 
-void
-range_error (char *, ...)
-ATTR_FORMAT (printf, 1, 2);
+extern void range_error (const char *, ...) ATTR_FORMAT (printf, 1, 2);
 
 /* Data:  Does this value represent "truth" to the current language?  */