* breakpoint.c, breakpoint.h (breakpoint_init_inferior): New function
[deliverable/binutils-gdb.git] / gdb / language.c
index c5306bb9efdbe7f1273655f1d46aaccb62ae9e83..be519532caf3078172068af04276d492f3cb4372 100644 (file)
@@ -165,9 +165,7 @@ set_language_command (ignore, from_tty)
     printf ("local or auto    Automatic setting based on source file\n");
     printf ("c                Use the C language\n");
     printf ("c++              Use the C++ language\n");
-    /* start-sanitize-chill */
     printf ("chill            Use the Chill language\n");
-    /* end-sanitize-chill */
     printf ("modula-2         Use the Modula-2 language\n");
     /* Restore the silly string. */
     set_language(current_language->la_language);
@@ -460,10 +458,8 @@ binop_result_type(v1,v2)
         not needed. */
       return l1 > l2 ? VALUE_TYPE(v1) : VALUE_TYPE(v2);
       break;
-    /* start-sanitize-chill */
-    case language_chill:
+   case language_chill:
       error ("Missing Chill support in function binop_result_check.");/*FIXME*/
-    /* end-sanitize-chill */
    }
    abort();
    return (struct type *)0;    /* For lint */
@@ -495,7 +491,7 @@ local_hex_format_custom(pre)
    string.  Returns a pointer to this string. */
 char *
 local_hex_string (num)
-   int num;
+   unsigned long num;
 {
    static char res[50];
 
@@ -507,7 +503,7 @@ local_hex_string (num)
    string.  Returns a pointer to this string. */
 char *
 local_hex_string_custom(num,pre)
-   int num;
+   unsigned long num;
    char *pre;
 {
    static char res[50];
@@ -531,6 +527,21 @@ local_octal_format_custom(pre)
    strcat (form, local_octal_format_suffix ());
    return form;
 }
+
+/* Returns the appropriate printf format for decimal numbers. */
+char *
+local_decimal_format_custom(pre)
+   char *pre;
+{
+   static char form[50];
+
+   strcpy (form, local_decimal_format_prefix ());
+   strcat (form, "%");
+   strcat (form, pre);
+   strcat (form, local_decimal_format_specifier ());
+   strcat (form, local_decimal_format_suffix ());
+   return form;
+}
 \f
 /* This page contains functions that are used in type/range checking.
    They all return zero if the type/range check fails.
@@ -619,10 +630,8 @@ integral_type (type)
         (TYPE_CODE(type) != TYPE_CODE_ENUM) ? 0 : 1;
    case language_m2:
       return TYPE_CODE(type) != TYPE_CODE_INT ? 0 : 1;
-    /* start-sanitize-chill */
    case language_chill:
       error ("Missing Chill support in function integral_type.");  /*FIXME*/
-    /* end-sanitize-chill */
    default:
       error ("Language not supported.");
    }
@@ -650,9 +659,7 @@ character_type (type)
 {
    switch(current_language->la_language)
    {
-    /* start-sanitize-chill */
    case language_chill:
-    /* end-sanitize-chill */
    case language_m2:
       return TYPE_CODE(type) != TYPE_CODE_CHAR ? 0 : 1;
 
@@ -673,9 +680,7 @@ string_type (type)
 {
    switch(current_language->la_language)
    {
-    /* start-sanitize-chill */
    case language_chill:
-    /* end-sanitize-chill */
    case language_m2:
       return TYPE_CODE(type) != TYPE_CODE_STRING ? 0 : 1;
 
@@ -695,9 +700,7 @@ boolean_type (type)
 {
    switch(current_language->la_language)
    {
-   /* start-sanitize-chill */
    case language_chill:
-   /* end-sanitize-chill */
    case language_m2:
       return TYPE_CODE(type) != TYPE_CODE_BOOL ? 0 : 1;
 
@@ -742,10 +745,8 @@ structured_type(type)
       return (TYPE_CODE(type) == TYPE_CODE_STRUCT) ||
         (TYPE_CODE(type) == TYPE_CODE_SET) ||
            (TYPE_CODE(type) == TYPE_CODE_ARRAY);
-    /* start-sanitize-chill */
    case language_chill:
       error ("Missing Chill support in function structured_type.");  /*FIXME*/
-    /* end-sanitize-chill */
    default:
       return (0);
    }
@@ -790,10 +791,8 @@ value_true(val)
       return 0;                /* BOOLEAN with value FALSE */
     break;
 
-  /* start-sanitize-chill */
   case language_chill:
     error ("Missing Chill support in function value_type.");  /*FIXME*/
-  /* end-sanitize-chill */
 
   default:
     error ("Language not supported.");
@@ -894,8 +893,9 @@ binop_type_check(arg1,arg2,op)
       break;
 
     case BINOP_CONCAT:
-      if (!(string_type(t1) || character_type(t1))
-         || !(string_type(t2) || character_type(t2)))
+      /* FIXME:  Needs to handle bitstrings as well. */
+      if (!(string_type(t1) || character_type(t1) || integral_type(t1))
+         || !(string_type(t2) || character_type(t2) || integral_type(t2)))
          type_op_error ("Arguments to %s must be strings or characters.", op);
       break;
 
@@ -963,12 +963,10 @@ binop_type_check(arg1,arg2,op)
         }
 #endif
 
-/* start-sanitize-chill */
 #ifdef _LANG_chill
        case language_chill:
         error ("Missing Chill support in function binop_type_check.");/*FIXME*/
 #endif
-/* end-sanitize-chill */
 
       }
    }
@@ -1024,7 +1022,7 @@ type_error (va_alist)
    fprintf (stderr, "\n");
    va_end (args);
    if (type_check==type_check_on)
-      return_to_top_level();
+      return_to_top_level (RETURN_ERROR);
 }
 
 void
@@ -1045,7 +1043,7 @@ range_error (va_alist)
    fprintf (stderr, "\n");
    va_end (args);
    if (range_check==range_check_on)
-      return_to_top_level();
+      return_to_top_level (RETURN_ERROR);
 }
 
 \f
@@ -1197,7 +1195,7 @@ unk_lang_val_print (type, valaddr, address, stream, format, deref_ref,
 
 static struct type ** const (unknown_builtin_types[]) = { 0 };
 static const struct op_print unk_op_print_tab[] = {
-    {NULL, 0, 0, 0}
+    {NULL, OP_NULL, PREC_NULL, 0}
 };
 
 const struct language_defn unknown_language_defn = {
@@ -1217,9 +1215,9 @@ const struct language_defn unknown_language_defn = {
   &builtin_type_error,         /* longest unsigned integral type */
   &builtin_type_error,         /* longest floating point type */
   {"",      "",    "",   ""},  /* Binary format info */
-  {"0%o",   "0",   "o",  ""},  /* Octal format info */
-  {"%d",    "",    "d",  ""},  /* Decimal format info */
-  {"0x%x",  "0x",  "x",  ""},  /* Hex format info */
+  {"0%lo",   "0",   "o",  ""}, /* Octal format info */
+  {"%ld",    "",    "d",  ""}, /* Decimal format info */
+  {"0x%lx",  "0x",  "x",  ""}, /* Hex format info */
   unk_op_print_tab,            /* expression operators for printing */
   LANG_MAGIC
 };
@@ -1242,9 +1240,9 @@ const struct language_defn auto_language_defn = {
   &builtin_type_error,         /* longest unsigned integral type */
   &builtin_type_error,         /* longest floating point type */
   {"",      "",    "",   ""},  /* Binary format info */
-  {"0%o",   "0",   "o",  ""},  /* Octal format info */
-  {"%d",    "",    "d",  ""},  /* Decimal format info */
-  {"0x%x",  "0x",  "x",  ""},  /* Hex format info */
+  {"0%lo",   "0",   "o",  ""}, /* Octal format info */
+  {"%ld",    "",    "d",  ""}, /* Decimal format info */
+  {"0x%lx",  "0x",  "x",  ""}, /* Hex format info */
   unk_op_print_tab,            /* expression operators for printing */
   LANG_MAGIC
 };
@@ -1266,9 +1264,9 @@ const struct language_defn local_language_defn = {
   &builtin_type_error,         /* longest unsigned integral type */
   &builtin_type_error,         /* longest floating point type */
   {"",      "",    "",   ""},  /* Binary format info */
-  {"0%o",   "0",   "o",  ""},  /* Octal format info */
-  {"%d",    "",    "d",  ""},  /* Decimal format info */
-  {"0x%x",  "0x",  "x",  ""},  /* Hex format info */
+  {"0%lo",   "0",   "o",  ""}, /* Octal format info */
+  {"%ld",    "",    "d",  ""}, /* Decimal format info */
+  {"0x%lx",  "0x",  "x",  ""}, /* Hex format info */
   unk_op_print_tab,            /* expression operators for printing */
   LANG_MAGIC
 };
This page took 0.026169 seconds and 4 git commands to generate.