/* C language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2018 Free Software Foundation, Inc.
+ Copyright (C) 1992-2020 Free Software Foundation, Inc.
This file is part of GDB.
#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,
struct symbol *,
struct ui_file *);
-extern void c_val_print (struct type *,
- int, CORE_ADDR,
- struct ui_file *, int,
- struct value *,
- const struct value_print_options *);
+/* Implement la_value_print_inner for the C family of languages. */
+
+extern void c_value_print_inner (struct value *, struct ui_file *, int,
+ const struct value_print_options *);
extern void c_value_print (struct value *, struct ui_file *,
const struct value_print_options *);
extern void cp_print_class_member (const gdb_byte *, struct type *,
struct ui_file *, const char *);
-extern void cp_print_value_fields (struct type *, struct type *,
- LONGEST, CORE_ADDR,
+extern void cp_print_value_fields (struct value *,
struct ui_file *, int,
- struct value *,
const struct value_print_options *,
struct type **, int);
-extern void cp_print_value_fields_rtti (struct type *,
- const gdb_byte *, LONGEST, CORE_ADDR,
- struct ui_file *, int,
- struct value *,
- const struct value_print_options *,
- struct type **, int);
+/* gcc-2.6 or later (when using -fvtable-thunks)
+ emits a unique named type for a vtable entry.
+ Some gdb code depends on that specific name. */
+
+extern const char vtbl_ptr_name[];
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);
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. */
+ language_defn::get_compile_instance method. */
extern compile_instance *c_get_compile_context (void);
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. */
+ language_defn::get_compile_instance method. */
extern compile_instance *cplus_get_compile_context ();