2000-06-15 H.J. Lu <hjl@gnu.org>
* sort.h: New file. Impored from gcc. * hashtab.h: Updated from from gcc. 2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * demangle.h (demangling_styles): Remove trailing comma in enum. * dyn-string.h (dyn_string_append_char): Change parameter from char to int. 2000-06-04 Alex Samuel <samuel@codesourcery.com> * dyn-string.h: Move here from gcc/dyn-string.h. Add new functions. * demangle.h (DMGL_GNU_NEW_ABI): New macro. (DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI. (current_demangling_style): Add gnu_new_abi_demangling. (GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro. (GNU_NEW_ABI_DEMANGLING): Likewise. (cplus_demangle_new_abi): New declaration.
This commit is contained in:
parent
d67b540418
commit
06ac6369e1
|
@ -1,3 +1,27 @@
|
|||
2000-06-15 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* sort.h: New file. Impored from gcc.
|
||||
|
||||
* hashtab.h: Updated from from gcc.
|
||||
|
||||
2000-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* demangle.h (demangling_styles): Remove trailing comma in enum.
|
||||
|
||||
* dyn-string.h (dyn_string_append_char): Change parameter from
|
||||
char to int.
|
||||
|
||||
2000-06-04 Alex Samuel <samuel@codesourcery.com>
|
||||
|
||||
* dyn-string.h: Move here from gcc/dyn-string.h. Add new functions.
|
||||
|
||||
* demangle.h (DMGL_GNU_NEW_ABI): New macro.
|
||||
(DMGL_STYLE_MASK): Or in DMGL_GNU_NEW_ABI.
|
||||
(current_demangling_style): Add gnu_new_abi_demangling.
|
||||
(GNU_NEW_ABI_DEMANGLING_STYLE_STRING): New macro.
|
||||
(GNU_NEW_ABI_DEMANGLING): Likewise.
|
||||
(cplus_demangle_new_abi): New declaration.
|
||||
|
||||
Tue May 30 16:53:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* floatformat.h (struct floatformat): Add field name.
|
||||
|
|
|
@ -24,21 +24,23 @@
|
|||
|
||||
/* Options passed to cplus_demangle (in 2nd parameter). */
|
||||
|
||||
#define DMGL_NO_OPTS 0 /* For readability... */
|
||||
#define DMGL_PARAMS (1 << 0) /* Include function args */
|
||||
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
|
||||
#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */
|
||||
#define DMGL_NO_OPTS 0 /* For readability... */
|
||||
#define DMGL_PARAMS (1 << 0) /* Include function args */
|
||||
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
|
||||
#define DMGL_JAVA (1 << 2) /* Demangle as Java rather than C++. */
|
||||
|
||||
#define DMGL_AUTO (1 << 8)
|
||||
#define DMGL_GNU (1 << 9)
|
||||
#define DMGL_LUCID (1 << 10)
|
||||
#define DMGL_ARM (1 << 11)
|
||||
#define DMGL_HP (1 << 12) /* For the HP aCC compiler; same as ARM
|
||||
except for template arguments, etc. */
|
||||
#define DMGL_EDG (1 << 13)
|
||||
#define DMGL_AUTO (1 << 8)
|
||||
#define DMGL_GNU (1 << 9)
|
||||
#define DMGL_LUCID (1 << 10)
|
||||
#define DMGL_ARM (1 << 11)
|
||||
#define DMGL_HP (1 << 12) /* For the HP aCC compiler;
|
||||
same as ARM except for
|
||||
template arguments, etc. */
|
||||
#define DMGL_EDG (1 << 13)
|
||||
#define DMGL_GNU_NEW_ABI (1 << 14)
|
||||
|
||||
/* If none of these are set, use 'current_demangling_style' as the default. */
|
||||
#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG)
|
||||
#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM|DMGL_HP|DMGL_EDG|DMGL_GNU_NEW_ABI)
|
||||
|
||||
/* Enumeration of possible demangling styles.
|
||||
|
||||
|
@ -56,17 +58,19 @@ extern enum demangling_styles
|
|||
lucid_demangling = DMGL_LUCID,
|
||||
arm_demangling = DMGL_ARM,
|
||||
hp_demangling = DMGL_HP,
|
||||
edg_demangling = DMGL_EDG
|
||||
edg_demangling = DMGL_EDG,
|
||||
gnu_new_abi_demangling = DMGL_GNU_NEW_ABI
|
||||
} current_demangling_style;
|
||||
|
||||
/* Define string names for the various demangling styles. */
|
||||
|
||||
#define AUTO_DEMANGLING_STYLE_STRING "auto"
|
||||
#define GNU_DEMANGLING_STYLE_STRING "gnu"
|
||||
#define LUCID_DEMANGLING_STYLE_STRING "lucid"
|
||||
#define ARM_DEMANGLING_STYLE_STRING "arm"
|
||||
#define HP_DEMANGLING_STYLE_STRING "hp"
|
||||
#define EDG_DEMANGLING_STYLE_STRING "edg"
|
||||
#define AUTO_DEMANGLING_STYLE_STRING "auto"
|
||||
#define GNU_DEMANGLING_STYLE_STRING "gnu"
|
||||
#define LUCID_DEMANGLING_STYLE_STRING "lucid"
|
||||
#define ARM_DEMANGLING_STYLE_STRING "arm"
|
||||
#define HP_DEMANGLING_STYLE_STRING "hp"
|
||||
#define EDG_DEMANGLING_STYLE_STRING "edg"
|
||||
#define GNU_NEW_ABI_DEMANGLING_STYLE_STRING "gnu-new-abi"
|
||||
|
||||
/* Some macros to test what demangling style is active. */
|
||||
|
||||
|
@ -77,6 +81,17 @@ extern enum demangling_styles
|
|||
#define ARM_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_ARM)
|
||||
#define HP_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_HP)
|
||||
#define EDG_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_EDG)
|
||||
#define GNU_NEW_ABI_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU_NEW_ABI)
|
||||
|
||||
/* Provide information about the available demangle styles. This code is
|
||||
pulled from gdb into libiberty because it is useful to binutils also. */
|
||||
|
||||
extern struct demangler_engine
|
||||
{
|
||||
const char *demangling_style_name;
|
||||
enum demangling_styles demangling_style;
|
||||
const char *demangling_style_doc;
|
||||
} libiberty_demanglers[];
|
||||
|
||||
extern char *
|
||||
cplus_demangle PARAMS ((const char *mangled, int options));
|
||||
|
@ -92,4 +107,14 @@ cplus_mangle_opname PARAMS ((const char *opname, int options));
|
|||
extern void
|
||||
set_cplus_marker_for_demangling PARAMS ((int ch));
|
||||
|
||||
extern enum demangling_styles
|
||||
cplus_demangle_set_style PARAMS ((enum demangling_styles style));
|
||||
|
||||
extern enum demangling_styles
|
||||
cplus_demangle_name_to_style PARAMS ((const char *name));
|
||||
|
||||
/* New-ABI demangling entry point, defined in cp-demangle.c. */
|
||||
extern char*
|
||||
cplus_demangle_new_abi PARAMS ((const char* mangled));
|
||||
|
||||
#endif /* DEMANGLE_H */
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
/* An abstract string datatype.
|
||||
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Mark Mitchell (mark@markmitchell.com).
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC 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, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
typedef struct dyn_string
|
||||
{
|
||||
int allocated; /* The amount of space allocated for the string. */
|
||||
int length; /* The actual length of the string. */
|
||||
char *s; /* The string itself, NUL-terminated. */
|
||||
}* dyn_string_t;
|
||||
|
||||
/* The length STR, in bytes, not including the terminating NUL. */
|
||||
#define dyn_string_length(STR) \
|
||||
((STR)->length)
|
||||
|
||||
/* The NTBS in which the contents of STR are stored. */
|
||||
#define dyn_string_buf(STR) \
|
||||
((STR)->s)
|
||||
|
||||
/* Compare DS1 to DS2 with strcmp. */
|
||||
#define dyn_string_compare(DS1, DS2) \
|
||||
(strcmp ((DS1)->s, (DS2)->s))
|
||||
|
||||
|
||||
extern void dyn_string_init PARAMS ((struct dyn_string *, int));
|
||||
extern dyn_string_t dyn_string_new PARAMS ((int));
|
||||
extern void dyn_string_delete PARAMS ((dyn_string_t));
|
||||
extern char *dyn_string_release PARAMS ((dyn_string_t));
|
||||
extern dyn_string_t dyn_string_resize PARAMS ((dyn_string_t, int));
|
||||
extern void dyn_string_clear PARAMS ((dyn_string_t));
|
||||
extern void dyn_string_copy PARAMS ((dyn_string_t, dyn_string_t));
|
||||
extern void dyn_string_copy_cstr PARAMS ((dyn_string_t, const char *));
|
||||
extern void dyn_string_prepend PARAMS ((dyn_string_t, dyn_string_t));
|
||||
extern void dyn_string_prepend_cstr PARAMS ((dyn_string_t, const char *));
|
||||
extern void dyn_string_insert PARAMS ((dyn_string_t, int,
|
||||
dyn_string_t));
|
||||
extern void dyn_string_insert_cstr PARAMS ((dyn_string_t, int,
|
||||
const char *));
|
||||
extern dyn_string_t dyn_string_append PARAMS ((dyn_string_t, dyn_string_t));
|
||||
extern dyn_string_t dyn_string_append_cstr
|
||||
PARAMS ((dyn_string_t, const char *));
|
||||
extern dyn_string_t dyn_string_append_char
|
||||
PARAMS ((dyn_string_t, int));
|
||||
extern void dyn_string_substring PARAMS ((dyn_string_t,
|
||||
dyn_string_t, int, int));
|
||||
extern int dyn_string_eq PARAMS ((dyn_string_t, dyn_string_t));
|
|
@ -1,5 +1,5 @@
|
|||
/* An expandable hash tables datatype.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Vladimir Makarov (vmakarov@cygnus.com).
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -38,10 +38,13 @@ extern "C" {
|
|||
|
||||
#include <ansidecl.h>
|
||||
|
||||
/* The type for a hash code. */
|
||||
typedef unsigned int hashval_t;
|
||||
|
||||
/* Callback function pointer types. */
|
||||
|
||||
/* Calculate hash of a table entry. */
|
||||
typedef unsigned int (*htab_hash) PARAMS ((const void *));
|
||||
typedef hashval_t (*htab_hash) PARAMS ((const void *));
|
||||
|
||||
/* Compare a table entry with a possible entry. The entry already in
|
||||
the table always comes first, so the second element can be of a
|
||||
|
@ -99,6 +102,9 @@ struct htab
|
|||
|
||||
typedef struct htab *htab_t;
|
||||
|
||||
/* An enum saying whether we insert into the hash table or not. */
|
||||
enum insert_option {NO_INSERT, INSERT};
|
||||
|
||||
/* The prototypes of the package functions. */
|
||||
|
||||
extern htab_t htab_create PARAMS ((size_t, htab_hash,
|
||||
|
@ -107,11 +113,13 @@ extern void htab_delete PARAMS ((htab_t));
|
|||
extern void htab_empty PARAMS ((htab_t));
|
||||
|
||||
extern void *htab_find PARAMS ((htab_t, const void *));
|
||||
extern void **htab_find_slot PARAMS ((htab_t, const void *, int));
|
||||
extern void *htab_find_with_hash PARAMS ((htab_t, const void *,
|
||||
unsigned int));
|
||||
extern void **htab_find_slot_with_hash PARAMS ((htab_t, const void *,
|
||||
unsigned int, int));
|
||||
extern void **htab_find_slot PARAMS ((htab_t, const void *,
|
||||
enum insert_option));
|
||||
extern void *htab_find_with_hash PARAMS ((htab_t, const void *,
|
||||
hashval_t));
|
||||
extern void **htab_find_slot_with_hash PARAMS ((htab_t, const void *,
|
||||
hashval_t,
|
||||
enum insert_option));
|
||||
extern void htab_clear_slot PARAMS ((htab_t, void **));
|
||||
extern void htab_remove_elt PARAMS ((htab_t, void *));
|
||||
|
||||
|
@ -121,6 +129,12 @@ extern size_t htab_size PARAMS ((htab_t));
|
|||
extern size_t htab_elements PARAMS ((htab_t));
|
||||
extern double htab_collisions PARAMS ((htab_t));
|
||||
|
||||
/* A hash function for pointers. */
|
||||
extern htab_hash htab_hash_pointer;
|
||||
|
||||
/* An equality function for pointers. */
|
||||
extern htab_eq htab_eq_pointer;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/* Sorting algorithms.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
Contributed by Mark Mitchell <mark@codesourcery.com>.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC 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, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef SORT_H
|
||||
#define SORT_H
|
||||
|
||||
#include <sys/types.h> /* For size_t */
|
||||
#ifdef __STDC__
|
||||
#include <stddef.h>
|
||||
#endif /* __STDC__ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#include <ansidecl.h>
|
||||
|
||||
/* Sort an array of pointers. */
|
||||
|
||||
extern void sort_pointers PARAMS ((size_t, void **, void **));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* SORT_H */
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue