aboutsummaryrefslogtreecommitdiff
path: root/gdb/language.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/language.h')
-rw-r--r--gdb/language.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/gdb/language.h b/gdb/language.h
index 73619ca..9ed7e22 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -35,6 +35,7 @@ struct value_print_options;
struct type_print_options;
struct lang_varobj_ops;
struct parser_state;
+struct compile_instance;
#define MAX_FORTRAN_DIMS 7 /* Maximum number of F77 array dims. */
@@ -355,6 +356,36 @@ struct language_defn
/* Various operations on varobj. */
const struct lang_varobj_ops *la_varobj_ops;
+ /* If this language allows compilation from the gdb command line,
+ this method should be non-NULL. When called it should return
+ an instance of struct gcc_context appropriate to the language.
+ When defined this method must never return NULL; instead it
+ should throw an exception on failure. The returned compiler
+ instance is owned by its caller and must be deallocated by
+ calling its 'destroy' method. */
+
+ struct compile_instance *(*la_get_compile_instance) (void);
+
+ /* This method must be defined if 'la_get_gcc_context' is defined.
+ If 'la_get_gcc_context' is not defined, then this method is
+ ignored.
+
+ This takes the user-supplied text and returns a newly malloc'd
+ bit of code to compile. The caller owns the result.
+
+ INST is the compiler instance being used.
+ INPUT is the user's input text.
+ GDBARCH is the architecture to use.
+ EXPR_BLOCK is the block in which the expression is being
+ parsed.
+ EXPR_PC is the PC at which the expression is being parsed. */
+
+ char *(*la_compute_program) (struct compile_instance *inst,
+ const char *input,
+ struct gdbarch *gdbarch,
+ const struct block *expr_block,
+ CORE_ADDR expr_pc);
+
/* Add fields above this point, so the magic number is always last. */
/* Magic number for compat checking. */