X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fcp-support.h;h=b6af5791e1c1273a0dddffd6b99b983117767d8a;hb=9b254dd1ce46c19dde1dde5b8d1e22e862dfacce;hp=49da26ccb2c24b10f6afa1be5c3c168213bc2e36;hpb=b368761e45fa3e27c8433fa421963d6ecf12c34a;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/cp-support.h b/gdb/cp-support.h index 49da26ccb2..b6af5791e1 100644 --- a/gdb/cp-support.h +++ b/gdb/cp-support.h @@ -1,5 +1,6 @@ /* Helper routines for C++ support in GDB. - Copyright 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 + Free Software Foundation, Inc. Contributed by MontaVista Software. Namespace support contributed by David Carlton. @@ -8,7 +9,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -17,9 +18,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + along with this program. If not, see . */ #ifndef CP_SUPPORT_H #define CP_SUPPORT_H @@ -35,6 +34,7 @@ struct obstack; struct block; struct objfile; struct type; +struct demangle_component; /* This struct is designed to store data from using directives. It says that names from namespace INNER should be visible within @@ -52,7 +52,9 @@ struct using_direct /* Functions from cp-support.c. */ -extern char *class_name_from_physname (const char *physname); +extern char *cp_canonicalize_string (const char *string); + +extern char *cp_class_name_from_physname (const char *physname); extern char *method_name_from_physname (const char *physname); @@ -60,7 +62,10 @@ extern unsigned int cp_find_first_component (const char *name); extern unsigned int cp_entire_prefix_len (const char *name); -extern struct symbol **make_symbol_overload_list (struct symbol *); +extern char *cp_func_name (const char *full_name); + +extern struct symbol **make_symbol_overload_list (const char *, + const char *); extern struct type *cp_lookup_rtti_type (const char *name, struct block *block); @@ -110,8 +115,22 @@ extern void cp_check_possible_namespace_symbols (const char *name, struct type *cp_lookup_transparent_type (const char *name); +/* Functions from cp-name-parser.y. */ + +extern struct demangle_component *cp_demangled_name_to_comp + (const char *demangled_name, const char **errmsg); + +extern char *cp_comp_to_string (struct demangle_component *result, + int estimated_len); + /* The list of "maint cplus" commands. */ extern struct cmd_list_element *maint_cplus_cmd_list; +/* Pointer to member function. Depends on compiler implementation. */ + +#define METHOD_PTR_IS_VIRTUAL(ADDR) ((ADDR) & 0x80000000) +#define METHOD_PTR_FROM_VOFFSET(OFFSET) (0x80000000 + (OFFSET)) +#define METHOD_PTR_TO_VOFFSET(ADDR) (~0x80000000 & (ADDR)) + #endif /* CP_SUPPORT_H */