daily update
[deliverable/binutils-gdb.git] / gdb / language.h
index e6dc5447ccaab91ff45665058ded3427f56a7af8..2de78613617eadddc44e96307072824b20a31071 100644 (file)
@@ -31,8 +31,6 @@ struct frame_info;
 struct expression;
 struct ui_file;
 
-/* enum exp_opcode;     ANSI's `wisdom' didn't include forward enum decls. */
-
 /* This used to be included to configure GDB for one or more specific
    languages.  Now it is left out to configure for all of them.  FIXME.  */
 /* #include "lang_def.h" */
@@ -129,13 +127,6 @@ struct language_arch_info
   struct type *string_char_type;
 };
 
-struct type *language_string_char_type (const struct language_defn *l,
-                                       struct gdbarch *gdbarch);
-
-struct type *language_lookup_primitive_type_by_name (const struct language_defn *l,
-                                                    struct gdbarch *gdbarch,
-                                                    const char *name);
-
 /* Structure tying together assorted information about a language.  */
 
 struct language_defn
@@ -148,13 +139,6 @@ struct language_defn
 
     enum language la_language;
 
-    /* Its builtin types.  This is a vector ended by a NULL pointer.  These
-       types can be specified by name in parsing types in expressions,
-       regardless of whether the program being debugged actually defines
-       such a type.  */
-
-    struct type **const *la_builtin_type_vector;
-
     /* Default range checking */
 
     enum range_check la_range_check;
@@ -198,8 +182,6 @@ struct language_defn
 
     void (*la_emitchar) (int ch, struct ui_file * stream, int quoter);
 
-    struct type *(*la_fund_type) (struct objfile *, int);
-
     /* Print a type using syntax appropriate for this language. */
 
     void (*la_print_type) (struct type *, char *, struct ui_file *, int,
@@ -264,9 +246,6 @@ struct language_defn
     /* Index to use for extracting the first element of a string. */
     char string_lower_bound;
 
-    /* Type of elements of strings. */
-    struct type **string_char_type;
-
     /* The list of characters forming word boundaries.  */
     char *(*la_word_break_characters) (void);
 
@@ -280,6 +259,10 @@ struct language_defn
                                   int format,
                                   enum val_prettyprint pretty);
 
+    /* Return non-zero if TYPE should be passed (and returned) by
+       reference at the language level.  */
+    int (*la_pass_by_reference) (struct type *type);
+
     /* Add fields above this point, so the magic number is always last. */
     /* Magic number for compat checking */
 
@@ -322,6 +305,14 @@ extern enum language_mode
     language_mode_auto, language_mode_manual
   }
 language_mode;
+
+struct type *language_string_char_type (const struct language_defn *l,
+                                       struct gdbarch *gdbarch);
+
+struct type *language_lookup_primitive_type_by_name (const struct language_defn *l,
+                                                    struct gdbarch *gdbarch,
+                                                    const char *name);
+
 \f
 /* These macros define the behaviour of the expression 
    evaluator.  */
@@ -348,9 +339,6 @@ extern enum language set_language (enum language);
    the current setting of working_lang, which the user sets
    with the "set language" command. */
 
-#define create_fundamental_type(objfile,typeid) \
-  (current_language->la_fund_type(objfile, typeid))
-
 #define LA_PRINT_TYPE(type,varstring,stream,show,level) \
   (current_language->la_print_type(type,varstring,stream,show,level))
 
@@ -420,9 +408,6 @@ extern void binop_type_check (struct value *, struct value *, int);
 
 /* Error messages */
 
-extern void op_error (const char *lhs, enum exp_opcode,
-                     const char *rhs);
-
 extern void type_error (const char *, ...) ATTR_FORMAT (printf, 1, 2);
 
 extern void range_error (const char *, ...) ATTR_FORMAT (printf, 1, 2);
@@ -471,4 +456,13 @@ extern void default_print_array_index (struct value *index_value,
                                        int format,
                                        enum val_prettyprint pretty);
 
+/* Return non-zero if TYPE should be passed (and returned) by
+   reference at the language level.  */
+int language_pass_by_reference (struct type *type);
+
+/* Return zero; by default, types are passed by value at the language
+   level.  The target ABI may pass or return some structs by reference
+   independent of this.  */
+int default_pass_by_reference (struct type *type);
+
 #endif /* defined (LANGUAGE_H) */
This page took 0.03984 seconds and 4 git commands to generate.