* hashtab.h (hashval_t): New type.
(htab_find_with_hash): Use it as an argument.
(htab_find_slot_with_hash): Likewise.
* hashtab.c (find_empty_slot_for_expand): Use hashval_t for hash
codes.
(htab_find_with_hash): Likewise.
(htab_find_slot_with_hash): Likewise.
From-SVN: r32842
* partition.h: New file.
Changes in libiberty:
* Makefile.in (CFILES): Add partition.c.
(REQUIRED_OFILES): Add partition.o.
(partition.o): New rule.
* partition.c: New file.
Changes in gcc:
* Makefile.in (ssa.o): New rule.
(OBJS): Add ssa.o.
(STAGESTUFF): Add *.ssa and *.ussa.
(mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
* rtl.def (PHI): New RTL expression.
* rtl.h (clear_log_links): New declaration.
(convert_to_ssa): Likewise.
(convert_from_ssa): Likewise.
* flow.c (split_edge): If the entry node falls through to the
split edge's source block, split the entry edge.
(clear_log_links): New function.
* toplev.c (ssa_dump): New variable.
(flag_ssa): Likewise.
(f_options): Add "ssa".
(compile_file): Create SSA dump files.
(rest_of_compilation): Go to and from SSA if enabled.
(decide_d_option): Handle -de for SSA dump files.
* ssa.c: New file.
From-SVN: r32465
* hashtab.c: Remove debugging variables (all_searches,
all_collisions, all_expansions). Delete
all_hash_table_collisions.
(create_hash_table, delete_hash_table, empty_hash_table,
find_hash_table_entry, remove_element_from_hash_table_entry,
clear_hash_table_slot, traverse_hash_table, hash_table_size,
hash_table_elements_number, hash_table_collisions): Rename to:
htab_create, htab_delete, htab_empty, htab_find_slot,
htab_remove_elt, htab_clear_slot, htab_traverse, htab_size,
htab_elements, htab_collisions.
(htab_find): New function, handles common case where you don't
plan to add or delete an entry.
(htab_expand): Don't create a whole new table, just a new
entry vector.
(htab_find_slot): Simplify logic.
* hashtab.h (hash_table_t): Rename to htab_t.
(struct hash_table): Rename to struct htab. Shorten element
names. Reorder elements by size.
(htab_hash, htab_eq, htab_trav): New typedefs for the callback
function pointers.
(hash_table_entry_t): Discard; just use void * for element
type.
From-SVN: r32437
* splay-tree.h (struct splay_tree_node): Rename to ...
(struct splay_tree_node_s): ... this.
(struct splay_tree): Rename to ...
(struct splay_tree_s): ... this.
* splay-tree.c (splay_tree_new): Use struct splay_tree_node_s
rather than struct splay_tree_node.
(splay_tree_insert): Use struct splay_tree_s rather than struct
splay_tree.
From-SVN: r30790
Revert last change. HJ's message meant "code like this already exists
in libiberty/libio", not "code like this needs to be added to libiberty/libio".
What a waste of my time.
From-SVN: r30534
* cplus-dem.c: Move declarations of standard_symbol_characters and
hp_symbol_characters inside #ifdef MAIN to avoid compiler
warnings.
From-SVN: r30175
1999-10-23 08:51 -0700 Zack Weinberg <zack@bitmover.com>
* hashtab.c (find_hash_table_entry): When returning a
DELETED_ENTRY slot, change it to EMPTY_ENTRY first.
(clear_hash_table_slot): New function which deletes an entry
by its position in the table, not its value.
(traverse_hash_table): New function which calls a hook
function for every live entry in the table.
* hashtab.h: Give hash_table_t a struct tag. Add prototypes
for clear_hash_table_slot and traverse_hash_table. Correct
prototype of all_hash_table_collisions.
From-SVN: r30138
* cplus-dem.c (INTBUF_SIZE): New macro.
(string_append_template_idx): New function.
(demangle_expression): Likewise.
(demangle_integral_value): Use it.
(demangle_real_value): New function, split out from ...
(demangle_template_value_parm): ... here. Use
string_append_template_idx. Use demangle_real_value.
(demangle_template): Use string_append_template_idx.
(demangle_qualified): Use consume_count_with_underscores.
(get_count): Tweak formatting.
(do_type): Use string_append_template_idx.
From-SVN: r30091
* alloca-conf.h (alloca) [C_ALLOCA]: Don't use Gcc builtin
or <alloca.h>.
* clock.c (GNU_HZ): New definition.
(clock): Use it.
* getruntime.c: Likewise.
* config.table: Use mh-beos.
* config/mh-beos: New file.
From-SVN: r29680
* Makefile.in (CFILES): Add calloc.c and getpwd.c.
(REQUIRED_OFILES): Add getpwd.o.
(getpwd.o): Add target.
* configure.in (AC_PREREQ): Bump to 2.13.
(AC_CHECK_HEADERS): Add check for <sys/stat.h>.
* getpwd.c: New file, moved here from gcc.
From-SVN: r28996
* cplus-dem.c (gnu_special): Cast a `size_t' to `long' when
comparing against a signed quantity.
(arm_special): Likewise.
(demangle_fund_type): Likewise.
(do_hpacc_template_const_value): Mark parameter `work' with
ATTRIBUTE_UNUSED.
(main): Constify variable `valid_symbols'.
From-SVN: r28859
* Makefile.in (FLAGS_TO_PASS): Include prefix, exec_prefix,
libdir, libsubdir and tooldir.
Applied in libchill, libf2c, libiberty and libobjc
From-SVN: r28569
* setenv.c (sys/types.h, stdio.h): Files included.
* xstrdup.c (sys/types.h): File included.
For the gcc-2.95 branch only. Not to be migrated into the mainline tree
because it is incomplete.
From-SVN: r27736
* cplus-dem.c (demangle_fund_type (near 'I' case)): Don't advance
the *mangled pointer beyond the end of the string. Clean up code to
match prevailing coding style.
From-SVN: r26959
* cplus-dem.c (standard_symbol_characters): Renamed from
standard_symbol_alphabet. No longer modify TABLE.
(hp_symbol_characters): Renamed from hp_symbol_alphabet. No longer
modify TABLE.
(main): Corresponding changes. Use strchr to determine if a
character is valid.
From-SVN: r26912
* cplus-dem.c (main): Use table lookup to distinguish identifier
characters from non-identifier characters.
(standard_symbol_alphabet, hp_symbol_alphabet): New functions.
From-SVN: r26887
Fred Fish <fnf@be.com>
* configure.in (sys/resource.h): Add to AC_CHECK_HEADERS list.
* getruntime.c: Only attempt to include sys/resource.h and
use getrusage if both HAVE_GETRUSAGE and HAVE_SYS_RESOURCE_H
are defined.
From-SVN: r26808
* cplus-dem.c (mop_up): Set typevec_size to zero, so it'll be
reallocated properly if we use it again.
* cplus-dem.c (demangle_fund_type): Check for buffer overrun. Be
stricter about syntax. Always null-terminate string.
From-SVN: r26562
* configure.in (checkfuncs): Check for sbrk.
* config.in: Rebuilt.
* configure: Likewise.
* xmalloc.c: Use HAVE_SBRK instead of the host specific definitions.
From-SVN: r26480
1999-04-01 Jim Blandy <jimb@zwingli.cygnus.com>
* cplus-dem.c: Attempt to handle overflows in counts with some
semblance of grace.
(consume_count): Detect overflows. Return -1 to indicate errors,
instead of zero.
(demangle_template_value_parm, demangle_template): Handle change
to consume_count's return convention.
From-SVN: r26309
* alias.c (alias_set_compare): Remove.
(record_alias_subset): Use splay_tree_compare_ints instaed of
alias_set_compare.
(init_alias_once): Likewise.
* cse.c: Include splay-tree.h.
(reg_qty): Remove.
(reg_tick): Likewise.
(reg_table): Likewise.
(cse_reg_info): New structure.
(cse_reg_info_free_list): New variable.
(cse_reg_info_tree): Likewise.
(cached_regno): Likewise.
(cached_cse_reg_info): Likewise.
(all_minus_one): Remove.
(consec_ints): Likewise.
(GET_CSE_REG_INFO): New macro.
(REG_TICK): Likewise. Use throughout instead of reg_tick.
(REG_IN_TABLE): Likewise. Use throughout instead of reg_in_table.
(REG_QTY): Likewise. Use throughout instead of reg_qty.
(get_cse_reg_info): New function.
(free_cse_reg_info): Likewise.
(new_basic_block): Reinitialize cse_reg_info_tree instead of
reg_tick, all_minus_one, and consec_ints.
* Makefile.in (cse.o): Depend on splay-tree.h
* splay-tree.h (splay_tree_compare_ints): Declare.
* splay-tree.c (splay_tree_compare_ints): Define.
From-SVN: r26069
* cplus-dem.c (consume_count): If `count' wraps, return 0 and
don't advance input pointer.
(demangle_class_name): If consume_count didn't find a count, do
nothing. Don't bother with `strlen' sanity check; consume_count
does it for us.
From-SVN: r26068
* Makefile.in (REQUIRED_OFILES): remove mkstemp.o
* configure.in (funcs): Check for and conditionally add mkstemps to
the list of functions libiberty will provide.
* configure: Rebuilt.
From-SVN: r25106
* argv.c (buildargv): Cast the result of alloca in assignment.
* choose-temp.c: Include stdlib.h.
* cplus-dem.c (demangle_arm_pt): Remove unused prototype.
(snarf_numeric_literal): Constify first parameter.
(code_for_qualifier): Avoid a gcc extension, make the parameter an
int, not a char.
(demangle_qualifier): Likewise.
(demangle_signature): Cast the argument of a ctype function to
unsigned char.
(arm_pt): Add parens around assignment used as truth value.
(demangle_arm_hp_template): Constify variable `args'.
(do_hpacc_template_const_value): Cast the argument of a ctype
function to unsigned char.
(do_hpacc_template_literal): Remove unused variable `i'.
(snarf_numeric_literal): Constify parameter `args'.
Cast the argument of a ctype function to unsigned char.
* floatformat.c (floatformat_to_double): Add explicit braces to
avoid ambiguous `else'.
* fnmatch.c (fnmatch): Change type of variables `c', `c1',
`cstart' and `cend' to unsigned char. Cast the argument of macro
`FOLD', which uses ctype functions, to unsigned char.
* objalloc.c (free): Add prototype.
From-SVN: r24392
Fri Dec 18 16:11:43 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
* cplus-dem.c (demangle_fund_type): Process CV and u codes before
bumping the pointer we read from. Also prepend these codes,
as we do in other places.
From-SVN: r24374
* cplus-dem.c
(main): Remove default to HP style demangling, set to EDG
demangling correctly when -edg specified; set the demangling style
when user specifies 'edg'. Set strip_underscore to
prepends_underscore, if not HPUXHPPA. Set
current_demangling_style to hp_demangling if HPUXHPPA. Set
current demangling style correctly if the switch is hp. Read
label correctly also in the HP style case.
(work_stuff): add temp_start field; add field for volatile member
function.
(arm_pt): handle ARM_DEMANGLING and EDG_DEMANGLING styles; HP
style for this case is the same as ARM.
(demangle_args): handle EDG_DEMANGLING style; support HP style.
(demangle_arm_hp_template): new function. (It was
demangle_arm_pt.); check and set value of temp_start field in
multiple places. Also, when ceching for end of template args,
check to see if at end of static member of template class.
(demangle_class): new local variable : save_class_name_end Don't
include template args in string defining class.
(demangle_class_name): use demangel_arm_hp_template.
(demangle_function_name): handle case where demangling style is
HP_DEMANGLING and currently point at an 'X' in the mangled name.
Handle EDG_DEMANGLING style. Handle constructor and destructor
ops for HP style.
(demangle_prefix): handle EDG_DEMANGLING and ARM_DEMANGLING
styles. global destructor and constructor for HP style are same
as for ARM style. Same for local variables.
(demangle_qualified): handle EDG_DEMANGLING style.
(demangle_signature): add case for volatile member function. For
cases '1' - '9' : initialize the temp_start field to -1 and handle
the EDG_DEMANGLING style. for case 'F' : handle EDG_DEMANGLING
and AUTO_DEMANGLING styles. If expecting a function and managed
to demangle the funct args, then handle the LUCID_DEMANGLING,
ARM_DEMANGLING, and EDG_DEMANGLING styles. Add case for local
class name after "Lnnn_ in HP style case. HP style too needs to
forget types. _nnn is OK for HP style, so don't report failure.
(do_hpacc_template_const_value): new function. Handle template's
value param for HP/aCC.
(do_hpacc_template_literal): new function. Handle a template's
literal parameter for HP aCC.
(recursively_demangle): new function
(snarf_numeric_literal): new function.
(usage): add 'edg' to the list of demangling styles; add hp switch
to message.
Co-Authored-By: Andrew MacLeod <amacleod@cygnus.com>
Co-Authored-By: Edith Epstein <eepstein@cygnus.com>
Co-Authored-By: Elena Zannoni <ezannoni@cygnus.com>
Co-Authored-By: Satish Pai <pai@apollo.hp.com>
Co-Authored-By: Stan Shebs <shebs@cygnus.com>
From-SVN: r24170
* cplus-dem.c (demangle_prefix): Use the last __
in the mangled name when looking for the signature. This allows
template names to begin with __.
From-SVN: r23627
* cplus-dem.c (type_kind_t): Add tk_reference.
(demangle_template_value_parm): Handle it.
(do_type): Use it for references, instead of tk_pointer.
From-SVN: r23572
* pexecute.c: Check HAVE_CONFIG_H, not IN_GCC, when determining
whether to include config.h. Possibly include unistd.h in the
!IN_GCC case. Define VFORK_STRING as a printable function call
for error messages (either "vfork" or "fork".) If HAVE_VFORK_H is
defined, include vfork.h. If VMS is defined, define vfork()
appropriately. Remove vfork check on USG, we're using autoconf.
(pexecute): Set `errmsg_fmt' to VFORK_STRING instead of checking
locally what string to use.
From-SVN: r23499
Tue Oct 20 12:29:02 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* cplus-dem.c (demangle_qualified): Fix off-by-one when checking
range of 'K' index.
From-SVN: r23202
* choose-temp.c: Prototype mkstemps() when IN_GCC.
* cplus-dem.c (consume_count): Cast argument of ctype macro to
`unsigned char'.
(cplus_demangle_opname): Cast the result of `strlen' to (int) when
comparing against one.
(cplus_mangle_opname): Likewise.
(demangle_integral_value): Cast argument of ctype macro to
`unsigned char'.
(demangle_template_value_parm): Likewise.
(demangle_template): Initialize variable `bindex'. Cast the
result of `strlen' to (int) when comparing against one. Remove
unused variable `start_of_value_parm'.
(demangle_class_name): Cast the result of `strlen' to (int) when
comparing against one.
(demangle_prefix): Cast argument of ctype macro to `unsigned char'.
(gnu_special): Likewise. Cast the result of `strlen' to (int)
when comparing against one.
(demangle_qualified): Cast argument of ctype macro to `unsigned char'.
(get_count): Likewise.
(do_type): Likewise. Cast the result of `strlen' to (int) when
comparing against one.
(demangle_fund_type): Cast argument of ctype macro to `unsigned char'.
(demangle_function_name): Cast the result of `strlen' to (int)
when comparing against one.
* mkstemp.c (mkstemps): Cast variable `len' to (int) when
comparing against one.
From-SVN: r23113
* mkstemp.c: Include config.h even when not IN_GCC. Wrap header
inclusions inside HAVE_*_H macros. Include ansidecl.h when not
IN_GCC.
* vasprintf.c: Include stdarg.h/varargs.h first.
* vprintf.c: Likewise.
From-SVN: r22314
* pexecute.c: Updates from gcc. Copy in gcc has been removed. This
is the canonical copy. Define ISSPACE if !IN_GCC.
* alloca.c, vfprintf.c, choose-temp.c, mkstemp.c, getopt.c: Similarly.
* getopt1.c, obstack.c: Similarly.
* Makefile.in: Build mkstemp.o
From-SVN: r22259
* pexecute.c: Updates from gcc. Copy in gcc has been removed. This
is the canonical copy. Define ISSPACE if !IN_GCC.
* alloca.c, vfprintf.c, choose-temp.c, mkstemp.c, getopt.c: Similarly.
* getopt1.c: Similarly.
* Makefile.in: Build mkstemp.o
From-SVN: r22257
* pexecute.c: Updates from gcc. Copy in gcc has been removed. This
is the canonical copy. Define ISSPACE if !IN_GCC.
* alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Similarly.
* Makefile.in: Build mkstemp.o
From-SVN: r22252
* pexecute.c: Updates from gcc. Copy in gcc has been removed. This
is the canonical copy. Define ISSPACE if !IN_GCC.
* alloca.c, vfprintf.c: Similarly.
From-SVN: r22249
x
* cplus-dem.c (work_stuff): Add dllimported.
(demangled_prefix): Mark symbols imported from PE DLL.
(internal_cplus_demangled): Handle.
From-SVN: r21852
* cplus-dem.c (type_kind_t): New type.
(demangle_template_value_parm): Add type_kind_t parameter. Rely
on this paramter, rather than demangling the type again.
(demangle_integral_value): Pass tk_integral.
(demangle_template_: Pass the value returned from do_type.
(do_type): Return a type_kind_t. Pass tk_integral to
demangle_template_value_parm for array bounds.
(demangle_fund_type): Likewise.
From-SVN: r21434