X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fc-lang.h;h=d95df54c83e3e1bec46af20a9d938ea661578295;hb=268a13a5a3f7c6b9b6ffc5ac2d1b24eb41f3fbdc;hp=a250fb34a6bf01b66b6fe1bfe6022881a0bbc38d;hpb=c1ec8cea7ff53eb76cb7c354b813c67fde755409;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/c-lang.h b/gdb/c-lang.h index a250fb34a6..d95df54c83 100644 --- a/gdb/c-lang.h +++ b/gdb/c-lang.h @@ -1,6 +1,6 @@ /* C language support definitions for GDB, the GNU debugger. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -29,13 +29,13 @@ struct parser_state; #include "value.h" #include "macroexp.h" #include "parser-defs.h" -#include "common/enum-flags.h" +#include "gdbsupport/enum-flags.h" /* The various kinds of C string and character. Note that these values are chosen so that they may be or'd together in certain ways. */ -enum c_string_type_values +enum c_string_type_values : unsigned { /* An ordinary string: "value". */ C_STRING = 0, @@ -63,8 +63,6 @@ DEF_ENUM_FLAGS_TYPE (enum c_string_type_values, c_string_type); extern int c_parse (struct parser_state *); -extern void c_yyerror (const char *); - extern int c_parse_escape (const char **, struct obstack *); /* Defined in c-typeprint.c */ @@ -150,6 +148,11 @@ extern int cp_is_vtbl_ptr_type (struct type *); extern int cp_is_vtbl_member (struct type *); +/* Return true if TYPE is a string type. Unlike DEFAULT_IS_STRING_TYPE_P + this will detect arrays of characters not just TYPE_CODE_STRING. */ + +extern bool c_is_string_type_p (struct type *type); + /* These are in c-valprint.c. */ extern int c_textual_element_type (struct type *, char); @@ -160,7 +163,15 @@ extern int c_textual_element_type (struct type *, char); exception on failure. This is suitable for use as the la_get_compile_instance language method. */ -extern struct compile_instance *c_get_compile_context (void); +extern compile_instance *c_get_compile_context (void); + +/* Create a new instance of the C++ compiler and return it. The new + compiler is owned by the caller and must be freed using the destroy + method. This function never returns NULL, but rather throws an + exception on failure. This is suitable for use as the + la_get_compile_instance language method. */ + +extern compile_instance *cplus_get_compile_context (); /* This takes the user-supplied text and returns a new bit of code to compile. @@ -168,10 +179,21 @@ extern struct compile_instance *c_get_compile_context (void); This is used as the la_compute_program language method; see that for a description of the arguments. */ -extern std::string c_compute_program (struct compile_instance *inst, +extern std::string c_compute_program (compile_instance *inst, const char *input, struct gdbarch *gdbarch, const struct block *expr_block, CORE_ADDR expr_pc); +/* This takes the user-supplied text and returns a new bit of code to compile. + + This is used as the la_compute_program language method; see that + for a description of the arguments. */ + +extern std::string cplus_compute_program (compile_instance *inst, + const char *input, + struct gdbarch *gdbarch, + const struct block *expr_block, + CORE_ADDR expr_pc); + #endif /* !defined (C_LANG_H) */