whenever the working language changes. That would be a lot faster. */
#include "defs.h"
+#include <ctype.h>
#include "gdb_string.h"
-#ifdef ANSI_PROTOTYPES
-#include <stdarg.h>
-#else
-#include <varargs.h>
-#endif
#include "symtab.h"
#include "gdbtypes.h"
static void
set_type_range PARAMS ((void));
+static void
+unk_lang_printchar PARAMS ((int, GDB_FILE *));
+
+static void
+unk_lang_printstr PARAMS ((GDB_FILE *, char *, unsigned int, int));
+
+static struct type *
+unk_lang_create_fundamental_type PARAMS ((struct objfile *, int));
+
+static void
+unk_lang_print_type PARAMS ((struct type *, char *, GDB_FILE *, int, int));
+
+static int
+unk_lang_val_print PARAMS ((struct type *, char *, CORE_ADDR, GDB_FILE *,
+ int, int, int, enum val_prettyprint));
+
+static int
+unk_lang_value_print PARAMS ((value_ptr, GDB_FILE *, int, enum val_prettyprint));
+
/* Forward declaration */
extern const struct language_defn unknown_language_defn;
extern char *warning_pre_print;
enum language flang;
char *err_lang;
- /* FIXME -- do this from the list, with HELP. */
- if (!language || !language[0]) {
- printf_unfiltered("The currently understood settings are:\n\n");
- printf_unfiltered ("local or auto Automatic setting based on source file\n");
- printf_unfiltered ("c Use the C language\n");
- printf_unfiltered ("c++ Use the C++ language\n");
- printf_unfiltered ("chill Use the Chill language\n");
- printf_unfiltered ("fortran Use the Fortran language\n");
- printf_unfiltered ("modula-2 Use the Modula-2 language\n");
- /* Restore the silly string. */
- set_language(current_language->la_language);
- return;
- }
+ if (!language || !language[0])
+ {
+ printf_unfiltered("The currently understood settings are:\n\n");
+ printf_unfiltered ("local or auto Automatic setting based on source file\n");
+
+ for (i = 0; i < languages_size; ++i)
+ {
+ /* Already dealt with these above. */
+ if (languages[i]->la_language == language_unknown
+ || languages[i]->la_language == language_auto)
+ continue;
+
+ /* FIXME for now assume that the human-readable name is just
+ a capitalization of the internal name. */
+ printf_unfiltered ("%-16s Use the %c%s language\n",
+ languages[i]->la_name,
+ /* Capitalize first letter of language
+ name. */
+ toupper (languages[i]->la_name[0]),
+ languages[i]->la_name + 1);
+ }
+ /* Restore the silly string. */
+ set_language(current_language->la_language);
+ return;
+ }
/* Search the list of languages for a match. */
for (i = 0; i < languages_size; i++) {
{
case language_chill:
return builtin_type_chill_bool;
+ case language_fortran:
+ sym = lookup_symbol ("logical", NULL, VAR_NAMESPACE, NULL, NULL);
+ if (sym)
+ {
+ type = SYMBOL_TYPE (sym);
+ if (type && TYPE_CODE (type) == TYPE_CODE_BOOL)
+ return type;
+ }
+ return builtin_type_f_logical_s2;
case language_cplus:
sym = lookup_symbol ("bool", NULL, VAR_NAMESPACE, NULL, NULL);
if (sym)
{
- struct type *type = SYMBOL_TYPE (sym);
+ type = SYMBOL_TYPE (sym);
if (type && TYPE_CODE (type) == TYPE_CODE_BOOL)
return type;
}
error ("internal error - unimplemented function unk_lang_create_fundamental_type called.");
}
-void
+static void
unk_lang_print_type (type, varstring, stream, show, level)
struct type *type;
char *varstring;
error ("internal error - unimplemented function unk_lang_print_type called.");
}
-int
+static int
unk_lang_val_print (type, valaddr, address, stream, format, deref_ref,
recurse, pretty)
struct type *type;
error ("internal error - unimplemented function unk_lang_val_print called.");
}
-int
+static int
unk_lang_value_print (val, stream, format, pretty)
value_ptr val;
GDB_FILE *stream;
error ("internal error - unimplemented function unk_lang_value_print called.");
}
-static struct type ** const (unknown_builtin_types[]) = { 0 };
+static struct type ** CONST_PTR (unknown_builtin_types[]) = { 0 };
static const struct op_print unk_op_print_tab[] = {
{NULL, OP_NULL, PREC_NULL, 0}
};