mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-02 20:53:06 +08:00
merge from gcc
This commit is contained in:
@ -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>
|
2007-01-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/3831
|
PR ld/3831
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* Defs for interface to demanglers.
|
/* Defs for interface to demanglers.
|
||||||
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
|
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
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -131,13 +131,25 @@ cplus_demangle_set_style (enum demangling_styles style);
|
|||||||
extern enum demangling_styles
|
extern enum demangling_styles
|
||||||
cplus_demangle_name_to_style (const char *name);
|
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. */
|
||||||
extern char*
|
typedef void (*demangle_callbackref) (const char *, size_t, void *);
|
||||||
cplus_demangle_v3 (const char* mangled, int options);
|
|
||||||
|
/* 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*
|
extern char*
|
||||||
java_demangle_v3 (const char* mangled);
|
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 {
|
enum gnu_v3_ctor_kinds {
|
||||||
gnu_v3_complete_object_ctor = 1,
|
gnu_v3_complete_object_ctor = 1,
|
||||||
@ -529,6 +541,25 @@ cplus_demangle_print (int options,
|
|||||||
int estimated_length,
|
int estimated_length,
|
||||||
size_t *p_allocated_size);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -3,6 +3,44 @@
|
|||||||
* strsignal.c (psignal): Change type of signo to int.
|
* strsignal.c (psignal): Change type of signo to int.
|
||||||
* functions.texi: Regenerate.
|
* functions.texi: Regenerate.
|
||||||
|
|
||||||
|
2007-01-29 Simon Baldwin <simonb@google.com>
|
||||||
|
|
||||||
|
* cp-demangle.h (cplus_demangle_operators): External definition
|
||||||
|
suppressed if not building for libstdc++.
|
||||||
|
* cp-demangle.c (__gcclibcxx_demangle_callback): Augmented interface
|
||||||
|
to demangling, provides a malloc-less version of __cxa_demangle.
|
||||||
|
(cplus_demangle_print_callback): Public callback version of
|
||||||
|
cplus_demangle_print.
|
||||||
|
(struct d_growable_string): New growable string structure.
|
||||||
|
(d_growable_string_init): New function, provides support for
|
||||||
|
growable strings separate from print info.
|
||||||
|
(d_growable_string_resize): Likewise.
|
||||||
|
(d_growable_string_append_buffer): Likewise.
|
||||||
|
(d_growable_string_callback_adapter):): Likewise.
|
||||||
|
(d_print_init): New print info initialization function.
|
||||||
|
(d_print_error): Macro replace by inline function.
|
||||||
|
(d_print_saw_error): Likewise.
|
||||||
|
(d_append_char): Likewise.
|
||||||
|
(d_append_buffer): Likewise.
|
||||||
|
(d_append_string): New inline function, replaces the
|
||||||
|
d_append_string_constant macro.
|
||||||
|
(d_flush_buffer): New function, flushes buffer to callback.
|
||||||
|
(d_demangle_callback, is_ctor_or_dtor): Malloc-based fallback
|
||||||
|
for unsupported dynamic arrays replaced by alloca().
|
||||||
|
(d_demangle): Return string length estimating removed.
|
||||||
|
(d_dump): Moved error case handling from call site into function.
|
||||||
|
(d_print_resize): Function removed.
|
||||||
|
(d_print_append_char): Likewise.
|
||||||
|
(d_print_append_buffer): Likewise.
|
||||||
|
(d_print_error): Likewise.
|
||||||
|
(d_print_comp): Added special case handling for Java arrays.
|
||||||
|
(java_demangle_v3): Removed string post-processing for Java arrays,
|
||||||
|
now replaced by special case handling in d_print_comp.
|
||||||
|
(cplus_demangle_v3_callback): Augmented interface to demangling,
|
||||||
|
provides a malloc-less version of cplus_demangle_v3.
|
||||||
|
(java_demangle_v3_callback): Augmented interface to demangling,
|
||||||
|
provides a malloc-less version of java_demangle_v3.
|
||||||
|
|
||||||
2007-01-12 Ben Elliston <bje@au.ibm.com>
|
2007-01-12 Ben Elliston <bje@au.ibm.com>
|
||||||
|
|
||||||
* pex-unix.c (writeerr): Cast write result to void.
|
* pex-unix.c (writeerr): Cast write result to void.
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
/* Internal demangler interface for g++ V3 ABI.
|
/* Internal demangler interface for g++ V3 ABI.
|
||||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||||
Written by Ian Lance Taylor <ian@wasabisystems.com>.
|
Written by Ian Lance Taylor <ian@wasabisystems.com>.
|
||||||
|
|
||||||
This file is part of the libiberty library, which is part of GCC.
|
This file is part of the libiberty library, which is part of GCC.
|
||||||
@ -143,8 +143,9 @@ struct d_info
|
|||||||
#define CP_STATIC_IF_GLIBCPP_V3 extern
|
#define CP_STATIC_IF_GLIBCPP_V3 extern
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CP_STATIC_IF_GLIBCPP_V3
|
#ifndef IN_GLIBCPP_V3
|
||||||
const struct demangle_operator_info cplus_demangle_operators[];
|
extern const struct demangle_operator_info cplus_demangle_operators[];
|
||||||
|
#endif
|
||||||
|
|
||||||
#define D_BUILTIN_TYPE_COUNT (26)
|
#define D_BUILTIN_TYPE_COUNT (26)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user