/* Helper routines for C++ support in GDB.
- Copyright (C) 2002-2018 Free Software Foundation, Inc.
+ Copyright (C) 2002-2020 Free Software Foundation, Inc.
Contributed by MontaVista Software.
Namespace support contributed by David Carlton.
/* We need this for 'domain_enum', alas... */
#include "symtab.h"
-#include "vec.h"
-#include "gdb_vecs.h"
+#include "gdbsupport/gdb_vecs.h"
#include "gdb_obstack.h"
+#include "gdbsupport/array-view.h"
+#include <vector>
/* Opaque declarations. */
/* Functions from cp-support.c. */
-extern std::string cp_canonicalize_string (const char *string);
+extern gdb::unique_xmalloc_ptr<char> cp_canonicalize_string
+ (const char *string);
-extern std::string cp_canonicalize_string_no_typedefs (const char *string);
+extern gdb::unique_xmalloc_ptr<char> cp_canonicalize_string_no_typedefs
+ (const char *string);
typedef const char *(canonicalization_ftype) (struct type *, void *);
-extern std::string cp_canonicalize_string_full (const char *string,
- canonicalization_ftype *finder,
- void *data);
+extern gdb::unique_xmalloc_ptr<char> cp_canonicalize_string_full
+ (const char *string, canonicalization_ftype *finder, void *data);
extern char *cp_class_name_from_physname (const char *physname);
extern unsigned int cp_entire_prefix_len (const char *name);
-extern char *cp_func_name (const char *full_name);
+extern gdb::unique_xmalloc_ptr<char> cp_func_name (const char *full_name);
extern gdb::unique_xmalloc_ptr<char> cp_remove_params
(const char *demanged_name);
extern gdb::unique_xmalloc_ptr<char> cp_remove_params_if_any
(const char *demangled_name, bool completion_mode);
-extern struct symbol **make_symbol_overload_list (const char *,
- const char *);
+extern std::vector<symbol *> make_symbol_overload_list (const char *,
+ const char *);
-extern struct symbol **make_symbol_overload_list_adl (struct type **arg_types,
- int nargs,
- const char *func_name);
+extern void add_symbol_overload_list_adl
+ (gdb::array_view<type *> arg_types,
+ const char *func_name,
+ std::vector<symbol *> *overload_list);
extern struct type *cp_lookup_rtti_type (const char *name,
- struct block *block);
+ const struct block *block);
/* Produce an unsigned hash value from SEARCH_NAME that is compatible
with cp_symbol_name_matches. Only the last component in
char *gdb_demangle (const char *name, int options);
-/* Like gdb_demangle, but suitable for use as la_sniff_from_mangled_name. */
-
-int gdb_sniff_from_mangled_name (const char *mangled, char **demangled);
-
#endif /* CP_SUPPORT_H */