| Index: gdb/language.h
|
| diff --git a/gdb/language.h b/gdb/language.h
|
| index 38c48305c2dbe962973b773ffb47ac82119f1234..7398a725c95d91b698d9a98236b2b01205282173 100644
|
| --- a/gdb/language.h
|
| +++ b/gdb/language.h
|
| @@ -1,7 +1,6 @@
|
| /* Source-language-related definitions for GDB.
|
|
|
| - Copyright (C) 1991-1995, 1998-2000, 2003-2004, 2007-2012 Free
|
| - Software Foundation, Inc.
|
| + Copyright (C) 1991-2013 Free Software Foundation, Inc.
|
|
|
| Contributed by the Department of Computer Science at the State University
|
| of New York at Buffalo.
|
| @@ -24,6 +23,8 @@
|
| #if !defined (LANGUAGE_H)
|
| #define LANGUAGE_H 1
|
|
|
| +#include "symtab.h"
|
| +
|
| /* Forward decls for prototypes. */
|
| struct value;
|
| struct objfile;
|
| @@ -31,6 +32,8 @@ struct frame_info;
|
| struct expression;
|
| struct ui_file;
|
| struct value_print_options;
|
| +struct type_print_options;
|
| +struct lang_varobj_ops;
|
|
|
| #define MAX_FORTRAN_DIMS 7 /* Maximum number of F77 array dims. */
|
|
|
| @@ -55,27 +58,6 @@ extern enum range_check
|
| }
|
| range_check;
|
|
|
| -/* type_mode ==
|
| - type_mode_auto: type_check set automatically to default of language.
|
| - type_mode_manual: type_check set manually by user. */
|
| -
|
| -extern enum type_mode
|
| - {
|
| - type_mode_auto, type_mode_manual
|
| - }
|
| -type_mode;
|
| -
|
| -/* type_check ==
|
| - type_check_on: Types are checked in GDB expressions, producing errors.
|
| - type_check_warn: Types are checked, producing warnings.
|
| - type_check_off: Types are not checked in GDB expressions. */
|
| -
|
| -extern enum type_check
|
| - {
|
| - type_check_off, type_check_warn, type_check_on
|
| - }
|
| -type_check;
|
| -
|
| /* case_mode ==
|
| case_mode_auto: case_sensitivity set upon selection of scope.
|
| case_mode_manual: case_sensitivity set only by user. */
|
| @@ -152,7 +134,11 @@ struct language_defn
|
| {
|
| /* Name of the language. */
|
|
|
| - char *la_name;
|
| + const char *la_name;
|
| +
|
| + /* Natural or official name of the language. */
|
| +
|
| + const char *la_natural_name;
|
|
|
| /* its symtab language-enum (defs.h). */
|
|
|
| @@ -162,10 +148,6 @@ struct language_defn
|
|
|
| enum range_check la_range_check;
|
|
|
| - /* Default type checking. */
|
| -
|
| - enum type_check la_type_check;
|
| -
|
| /* Default case sensitivity. */
|
| enum case_sensitivity la_case_sensitivity;
|
|
|
| @@ -210,7 +192,7 @@ struct language_defn
|
| /* Print a type using syntax appropriate for this language. */
|
|
|
| void (*la_print_type) (struct type *, const char *, struct ui_file *, int,
|
| - int);
|
| + int, const struct type_print_options *);
|
|
|
| /* Print a typedef using syntax appropriate for this language.
|
| TYPE is the underlying type. NEW_SYMBOL is the symbol naming
|
| @@ -308,8 +290,12 @@ struct language_defn
|
|
|
| /* Should return a vector of all symbols which are possible
|
| completions for TEXT. WORD is the entire command on which the
|
| - completion is being made. */
|
| - VEC (char_ptr) *(*la_make_symbol_completion_list) (char *text, char *word);
|
| + completion is being made. If CODE is TYPE_CODE_UNDEF, then all
|
| + symbols should be examined; otherwise, only STRUCT_DOMAIN
|
| + symbols whose type has a code of CODE should be matched. */
|
| + VEC (char_ptr) *(*la_make_symbol_completion_list) (const char *text,
|
| + const char *word,
|
| + enum type_code code);
|
|
|
| /* The per-architecture (OS/ABI) language information. */
|
| void (*la_language_arch_info) (struct gdbarch *,
|
| @@ -348,9 +334,9 @@ struct language_defn
|
| /* Find all symbols in the current program space matching NAME in
|
| DOMAIN, according to this language's rules.
|
|
|
| - The search starts with BLOCK. This function iterates upward
|
| - through blocks. When the outermost block has been finished,
|
| - the function returns.
|
| + The search is done in BLOCK only.
|
| + The caller is responsible for iterating up through superblocks
|
| + if desired.
|
|
|
| For each one, call CALLBACK with the symbol and the DATA
|
| argument. If CALLBACK returns zero, the iteration ends at that
|
| @@ -365,6 +351,9 @@ struct language_defn
|
| symbol_found_callback_ftype *callback,
|
| void *data);
|
|
|
| + /* Various operations on varobj. */
|
| + const struct lang_varobj_ops *la_varobj_ops;
|
| +
|
| /* Add fields above this point, so the magic number is always last. */
|
| /* Magic number for compat checking. */
|
|
|
| @@ -422,9 +411,6 @@ struct type *language_lookup_primitive_type_by_name (const struct language_defn
|
| /* These macros define the behaviour of the expression
|
| evaluator. */
|
|
|
| -/* Should we strictly type check expressions? */
|
| -#define STRICT_TYPE (type_check != type_check_off)
|
| -
|
| /* Should we range check values against the domain of their type? */
|
| #define RANGE_CHECK (range_check != range_check_off)
|
|
|
| @@ -444,8 +430,8 @@ extern enum language set_language (enum language);
|
| the current setting of working_lang, which the user sets
|
| with the "set language" command. */
|
|
|
| -#define LA_PRINT_TYPE(type,varstring,stream,show,level) \
|
| - (current_language->la_print_type(type,varstring,stream,show,level))
|
| +#define LA_PRINT_TYPE(type,varstring,stream,show,level,flags) \
|
| + (current_language->la_print_type(type,varstring,stream,show,level,flags))
|
|
|
| #define LA_PRINT_TYPEDEF(type,new_symbol,stream) \
|
| (current_language->la_print_typedef(type,new_symbol,stream))
|
| @@ -496,8 +482,6 @@ extern void binop_type_check (struct value *, struct value *, int);
|
|
|
| /* Error messages */
|
|
|
| -extern void type_error (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
|
| -
|
| extern void range_error (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
|
|
|
| /* Data: Does this value represent "truth" to the current language? */
|
| @@ -510,7 +494,7 @@ extern enum language language_enum (char *str);
|
|
|
| extern const struct language_defn *language_def (enum language);
|
|
|
| -extern char *language_str (enum language);
|
| +extern const char *language_str (enum language);
|
|
|
| /* Add a language to the set known by GDB (at initialization time). */
|
|
|
|
|