merge from gcc
This commit is contained in:
parent
62d172bb49
commit
ff2a198b68
|
@ -1,3 +1,9 @@
|
|||
2007-01-29 Simon Baldwin <simonb@google.com>
|
||||
|
||||
* demangle.h: New cplus_demangle_print_callback,
|
||||
cplus_demangle_v3_callback, and java_demangle_v3_callback function
|
||||
prototypes, and demangle_callbackref type definition.
|
||||
|
||||
2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/3831
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Defs for interface to demanglers.
|
||||
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
|
||||
2003, 2004 Free Software Foundation, Inc.
|
||||
2003, 2004, 2005, 2007 Free Software Foundation, Inc.
|
||||
|
||||
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
|
||||
|
@ -131,14 +131,26 @@ cplus_demangle_set_style (enum demangling_styles style);
|
|||
extern enum demangling_styles
|
||||
cplus_demangle_name_to_style (const char *name);
|
||||
|
||||
/* V3 ABI demangling entry points, defined in cp-demangle.c. */
|
||||
/* Callback typedef for allocation-less demangler interfaces. */
|
||||
typedef void (*demangle_callbackref) (const char *, size_t, void *);
|
||||
|
||||
/* V3 ABI demangling entry points, defined in cp-demangle.c. Callback
|
||||
variants return non-zero on success, zero on error. char* variants
|
||||
return a string allocated by malloc on success, NULL on error. */
|
||||
extern int
|
||||
cplus_demangle_v3_callback (const char *mangled, int options,
|
||||
demangle_callbackref callback, void *opaque);
|
||||
|
||||
extern char*
|
||||
cplus_demangle_v3 (const char *mangled, int options);
|
||||
|
||||
extern int
|
||||
java_demangle_v3_callback (const char *mangled,
|
||||
demangle_callbackref callback, void *opaque);
|
||||
|
||||
extern char*
|
||||
java_demangle_v3 (const char *mangled);
|
||||
|
||||
|
||||
enum gnu_v3_ctor_kinds {
|
||||
gnu_v3_complete_object_ctor = 1,
|
||||
gnu_v3_base_object_ctor,
|
||||
|
@ -529,6 +541,25 @@ cplus_demangle_print (int options,
|
|||
int estimated_length,
|
||||
size_t *p_allocated_size);
|
||||
|
||||
/* This function takes a struct demangle_component tree and passes back
|
||||
a demangled string in one or more calls to a callback function.
|
||||
The first argument is DMGL_* options. The second is the tree to
|
||||
demangle. The third is a pointer to a callback function; on each call
|
||||
this receives an element of the demangled string, its length, and an
|
||||
opaque value. The fourth is the opaque value passed to the callback.
|
||||
The callback is called once or more to return the full demangled
|
||||
string. The demangled element string is always nul-terminated, though
|
||||
its length is also provided for convenience. In contrast to
|
||||
cplus_demangle_print(), this function does not allocate heap memory
|
||||
to grow output strings (except perhaps where alloca() is implemented
|
||||
by malloc()), and so is normally safe for use where the heap has been
|
||||
corrupted. On success, this function returns 1; on failure, 0. */
|
||||
|
||||
extern int
|
||||
cplus_demangle_print_callback (int options,
|
||||
const struct demangle_component *tree,
|
||||
demangle_callbackref callback, void *opaque);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
|
Loading…
Reference in New Issue