Age | Commit message (Collapse) | Author | Files | Lines |
|
always executed at least once.
* frame.c (find_fde): Convert for loop to do-while so compiler
sees it's always executed at least once.
* libgcc2.c (BBINBUFSIZE): Kill.
(__bb_init_prg): Use fgets.
(__bb_exit_trace_func): Don't paste strings.
* unroll.c (unroll_loop): Initialize unroll_type, not
unroll_number, and tweak logic to match.
* i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
all failure paths.
(ix86_flags_dependant): Likewise. Disentangle control flow.
(ix86_sched_reorder): Break guts out to
ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
(ix86_sched_reorder_ppro): Initialize pair2 and insnp before
any possible use.
* i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
use string concatenation. Don't save and restore esi.
* fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
(machname.h): Remove script to separate file. Use two-step
sequence so target is not created if script fails.
* fixinc/gen-machname.h: New file. Handle case where no non-reserved
identifiers are defined.
* fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
an empty string, machine_name doesn't need to do anything at
all.
(is_cxx_header): Add more cases to regexp.
* fixinc/fixlib.h: Update prototype.
* fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
mn_get_regexps.
* fixinc/fixincl.c: Define NO_BOGOSITY.
* fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
(hp_sysfile): Add missing comma.
(math_exception): Put the wrapper ifdefs at the beginning and
the end of the file.
* fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
From-SVN: r31744
|
|
* tsystem.h: New file.
* Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
s-crtS): Depend on tsystem.h.
* crtstuff.c: Include tsystem.h.
* frame.c: Likewise.
* libgcc2.c: Likewise.
From-SVN: r31741
|
|
gcc:
* calls.c (special_function_p): New argument fork_or_exec.
(expand_call): When profile_arc_flag is set and the function
is in the fork_or_exec group, call __bb_fork_func first.
* libgcc2.c, _bb module (__bb_fork_func): New function.
(__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
output file.
* config/svr4.h (TARGET_HAS_F_SETLKW): Define.
* tree.h (special_function_p): Update prototype.
gcc/cp:
* cp/optimize.c (calls_setjmp_r): Supply new argument
to special_function_p.
From-SVN: r31635
|
|
* libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
(throw_helper): Iterate over DWARF_FRAME_REGISTERS.
From-SVN: r31576
|
|
* crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
Otherwise provide a declaration for atexit.
(init_dummy): Make sure dummy call to atexit is nevertheless
called with correct number of args.
* frame.c: Update comments referring to other files.
* libgcc2.c: Likewise.
From-SVN: r31124
|
|
are compile time constants when...
* config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
compiling libgcc2.
* config/mips/mips.h (TARGET_64BIT): Likewise.
* config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
* libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
of {SI,DI}type and DIunion. Define these types to QI/HI modes on
dsps. Give routines proper names if SI/DI modes are not used.
* longlong.h: Use DWunion instead of DIunion.
From-SVN: r31095
|
|
* gthr-single.h (__gthread_active_p): Add prototype arguments.
* libgcc2.c (__udivmoddi4): Remove unnecessary decls.
(__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
__bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
function_ptr, getpagesize, __enable_execute_stack,
__enable_execute_stack, __clear_insn_cache,
__enable_execute_stack, __do_global_dtors, __do_global_ctors,
_cleanup, _exit, __default_terminate, __terminate_func,
__terminate, __empty, __throw, new_eh_context,
eh_context_initialize, eh_context_static, eh_context_specific,
get_eh_context, __get_eh_context, __get_eh_info,
init_reg_size_table, eh_threads_initialize,
__get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
__unwinding_cleanup, throw_helper, __throw, __rethrow,
__pure_virtual): Add prototype arguments.
(__bb_exit_func): Cast a sizeof to long when comparing against one.
Cast a signed value to unsigned long when comparing against one.
(new_eh_context): Wrap in _GTHREADS macro.
(__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
declaration.
(in_reg_window): Mark parameters with __attribute__ ((__unused__)).
(throw_helper): Initialize variables `handler_p' and `pc_p'.
From-SVN: r30872
|
|
* longlong.h: Merge in changes from glibc.
Also don't clobber %g2 register in 32bit SPARC assembly, so that
-mno-app-regs libgcc can be compiled.
* libgcc2.c: Add defines so that the updated longlong.h
can be used in libgcc2.a. Also, make sure on most architectures
(at least on all which have optimized code in longlong.h defined
for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
From-SVN: r30836
|
|
* xm-i386.h: Define `__i386__' if not defined, rather than `i386'
which is in the user's namespace.
* libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
`i386' which is not in our namespace.
From-SVN: r30627
|
|
* libgcc2.c (__do_global_dtors): Only do EH frame stuff if
! HAS_INIT_SECTION.
From-SVN: r30339
|
|
Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
* gcov.c (DIR_SEPARATOR): Provide default.
(output_data): Add test for MS-DOS format absolute filename.
(fancy_abort): Correct program name.
(open_files): Open all files in binary mode.
* libgcc2.c (__bb_exit_func): Likewise.
* profile.c (init_branch_prob): Specify binary when opening files.
* flags.h (flag_unwind_tables): New decl.
* toplev.c (flag_unwind_table): New definition.
(f_options): Add -funwind-tables.
(decode_g_option): Clarify warning when unknown -g option is given.
(rest_of_compilation): If inside an inlined external function,
pretend we are just being declared.
* dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
(dwarf2out_frame_finish): Likewise.
Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
* flow.c (propagate_block): When the last reference to a label
before an ADDR_VEC is deleted because the reference is a dead
store, delete the ADDR_VEC.
Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
* fold-const.c (merge_ranges): In not in0, but in1, handle
upper bounds equal like subset case.
Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
* dbxout.c (dbxout_parms): Generate a second stabs line for parameters
passed in a register but moved to the stack.
Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
* gcc.c (pass_exit_codes, greatest_status): New variables.
(struct option_map): Add entry for "--pass-exit-codes".
(execute): Update greatest_status if error.
(display_help): Add documentation for -pass-exit-codes.
(process_command): Handle -pass-exit-codes.
(main): Look at pass_exit_codes and greatest_status on call to exit.
Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* reload.c (find_reloads): Refine test for no input reload
case to not includes reloads emitted after insn.
* function.c (find_temp_slots_from_address): Handle sum involving
a register that points to a temp slot.
(update_temp_slot_address): Make recursive call if both old and
new are PLUS with a common operand.
* calls.c (expand_call): Mark temp slot for result as having
address taken.
* rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
* gcc.c (process_command): Add standard_exec_prefix with "GCC"
component as well as "BINUTILS".
* integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
* integrate.c (copy_rtx_and_substitute): Likewise.
(expand_inline_function, integrate_parm_decls, integrate_decl_tree):
All callers changed.
* unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
* dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
gdb extensions, write size of type; also be more consistent
in using references when this is a subtype.
* pa.md (extv, extzv, insv): Use define_expand to reject constant
that is out of range.
* loop.c (unknown_constant_address_altered): New variable.
(prescan_loop): Initialize it.
(note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
(invariant_p, case MEM): Remove handling for volatile and readony;
check new variable if readonly.
(check_dbra_loop): Chdeck unknown_constant_address_altered.
* cse.c (canon_hash, case MEM): Do not record if BLKmode.
(addr_affects_sp_p): Removed from note_mem_written and only
define #ifdef AUTO_INC_DEC.
* alpha.c (input_operand, case ADDRESSOF): Treat as REG.
* regclass.c (record_reg_classes): Properly handle register move
directions.
* varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
Don't think valid if both operands are invalid.
(struct constant_descriptor): New field RTL.
(mark_const_hash_entry): Mark it.
(record_constant{,_rtx}): Initialize it.
(output_constant_def): Allocate RTL in permanent obstack and
save in table.
({record,compare}_constant_1): Modes must match for
CONSTRUCTOR of ARRAY_TYPE.
* c-common.h (initializer_constant_valid_p): Delete decl from here.
* output.h (initializer_constant_valid_p): Move decl to here.
* c-common.c (initializer_constant_valid_p): Delete function from here.
* varasm.c (initializer_constant_valid_p): Move function to here.
* tree.h (STRIP_SIGN_NOPS): New macro.
* fold-const.c (optimize_minmax_comparison): New function.
(invert_truthvalue, case WITH_RECORD_EXPR): New case.
(fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
(fold, case EQ_EXPR): Call optimize_minmax_comparison and add
cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
widening conversions.
(fold, case LE_EXPR): Rework changing unsigned to signed comparisons
to look at size of mode, not precision of type; also add missing cases.
(optimize_bit_field_compare, decode_field_reference): Don't try to
optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
* dwarf2out.c (ctype.h): Include.
(dwarf2out_set_demangle_name_func): New function.
(size_of_line_info): Deleted.
(output_line_info): Compute size of line info table from difference
of labels.
(base_type_die, add_name_attribute): Call demangle function, if any.
(field_byte_offset): Use bits per word for variable length fields.
(gen_array_type_die): Add array name.
(gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
(dwarf2out_add_library_unit_info): New function.
* explow.c (set_stack_check_libfunc): New function.
(stack_check_libfunc): New static variable.
(probe_stack_range): Allow front-end to set up a libfunc to call.
* combine.c (simplify_comparison): When making comparison in wider
mode, check for having commuted an AND and a SUBREG.
(contains_muldiv): New function.
(try_combine): Call it when dividing a PARALLEL.
(simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
(simplify_comparison, case ASHIFTRT): Recognize sign-extension of
a PLUS.
(record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
use one of the CLOBBERs instead.
(if_then_else_cond): If comparing against zero, just return thing
being compared.
* optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
Don't generate shifts and subtract if have conditional arithmetic.
* rtl.h (delete_barrier): New declaration.
* jump.c (jump_optimize): Set up to handle conditional call.
In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
(delete_barrier): New function.
* rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
* recog.c (nonmemory_operand): Accept ADDRESSOF.
* tree.c (build_type_attribute_variant): Push to obstack of
ttype around type_hash_canon call.
* expr.c (placeholder_list): Move decl to file scope.
(expand_expr): Don't force access to volatile just because its
address is taken.
If ignoring reference operations, just expand the operands.
(expand_expr, case COMPONENT_REF): Propagate
EXPAND_CONST_ADDRESS to recursive call when expanding inner.
Refine test for using bitfield operations vs pointer punning.
(expand_expr, case CONVERT_EXPR): If converting to
BLKmode UNION_TYPE from BLKmode, just return inner object.
Use proper mode in store_field call.
Properly set sizes of object to store and total size in store_field
call for convert to union.
(expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
memory (like for ADDR_EXPR). Also, don't put constant in register if
we'll want it in memory.
(readonly_fields_p): New function.
(expand_expr, case INDIRECT_REF): Call it if LHS.
(expand_assignment): Handle a RESULT_DECL where
DECL_RTL is a PARALLEL.
(do_jump, case WITH_RECORD_EXPR): New case.
(get_inner_reference): Always go inside a CONVERT_EXPR
and NOP_EXPR if both modes are the same.
(store_field): Use bitfield operations if size of bitsize is not same
as size of RHS's type.
Check for bitpos not a multiple of alignment in BLKmode case.
Do block move in largest possible alignment.
(store_constructor): Set BITSIZE to -1 for variable size and properly
in case of array of BLKmode.
(expand_expr_unaligned): New function.
(do_compare_and_jump): Call it.
* mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
* collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
does not include 'o'.
* function.c (instantiate_virtual_regs_1, case SET): Handle case where
both SET_DEST and SET_SRC reference a virtual register.
(gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
* integrate.c (expand_inline_function): Handle case of setting
virtual stack vars register (from built in setjmp); when parameter
lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
(subst_constant): Add new parm, MEMONLY.
(expand_inline_function, integrate_parm_decls): Pass new parm.
(integrate_decl_tree): Likewise.
(copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
(try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
(copy_rtx_and_substitute, case SET): Add explicit calls to
copy_rtx_and_substitute for both sides.
* stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
constraints.
(pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
within INDEX_TYPE, instead of before.
(fixup_gotos): Use f->target_rtl, not the next insn,
since latter may be from a later fixup.
(expand_value_return): Correctly convert VAL when promoting function
return; support RETURN_REG being a PARALLEL.
(expand_return): When checking for result in regs and having
cleanup, consider PARALLEL in DECL_RTL as being in regs.
From-SVN: r30299
|
|
calls.
* libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
from multiple calls.
From-SVN: r29979
|
|
defined
From-SVN: r29831
|
|
From-SVN: r29830
|
|
From-SVN: r29829
|
|
From-SVN: r29730
|
|
* libgcc2.c (num_digits): Add prototype with
__attribute__((const)).
(__terminate): Add prototype.
From-SVN: r29616
|
|
* libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
* sparc/sunos4.h (HAVE_ON_EXIT): Remove.
From-SVN: r29481
|
|
* libgcc2.c (__do_global_ctors): Call atexit with one arg.
* sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
Define HAVE_ON_EXIT.
From-SVN: r29465
|
|
* gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT.
* libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
(__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
(__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl.
(atexit, exit): Simplify.
* tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT.
* config/lots: Remove defns of HAVE_ATEXIT.
From-SVN: r29439
|
|
* defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
* crtstuff.c: Not here.
* dwarf2out.c: Or here.
* libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
info.
From-SVN: r29241
|
|
From-SVN: r29150
|
|
* Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
* libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
initializers is some circumstances.
From-SVN: r27489
|
|
* libgcc2.c (throw_helper): Just return the SP offset, rather than
a whole udata. Include args_size in the offset.
(__throw, __rethrow): Adjust.
From-SVN: r26066
|
|
* libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all
platforms.
From-SVN: r25939
|
|
* cppfiles.c (INO_T_EQ): Handle UWIN.
* c-common.c (decl_attributes): Flag unrecognized attribute
functions as warnings instead of as errors.
Support for i386-pc-uwin.
* i386/uwin.h: New file.
* i386/xm-uwin.h: New file.
* i386/t-uwin: New file.
* i386/uwin.asm: New file.
* configure.in (i[3456]86-*-uwin*): Define.
Add Workaround for vfork bug when hosted on uwin.
* configure: Regenerate.
* cccp.c (INO_T_EQ): Undefine. UWIN has inodes.
(absolute_filename): UWIN uses POSIX pathnames only.
* libgcc2.c (getpagesize): Do not define for UWIN.
(mprotect): Likewise.
* protoize.c (dirent.h): Conditionally include.
(fputc): Prototype only if it's not a macro.
From-SVN: r25696
|
|
From-SVN: r24874
|
|
1999-01-19 Vladimir N. Makarov <vmakarov@cygnus.com>
* invoke.texi (-mlong-double-64): New option description.
1999-01-19 Jim Wilson <wilson@cygnus.com>
* libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. Set to LONG_DOUBLE_TYPE_SIZE
if not defined.
* i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
(CPP_SPECS): Add -mlong-double-64 support.
(TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
(TARGET_SWITCHES): Add -mlong-double-64 support.
(LONG_DOUBLE_TYPE_SIZE): Likewise.
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
* i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
(CPP_SPECS): Add -mlong-double-64 support.
* i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
(MULTILIB_DIRNAMES): Add ld64.
* i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
From-SVN: r24764
|
|
Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
See ChangeLog.. These are the files that were changed:
* eh-common.h (struct eh_context): Add table_index for rethrows.
* rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
* rtl.c (reg_note_name): Add strings for new reg_note enums.
* expr.h (rethrow_libfunc): New library decl.
* optabs.c (rethrow_libfunc): Initialize.
* except.h (struct eh_entry): Add new field 'rethrow_label'.
* except.c (create_rethrow_ref): New function to create a single
* flow.c (make_edges): Add different edges for rethrow calls,
* integrate.c (save_for_inline_eh_labelmap): New callback routine to
* libgcc2.c (find_exception_handler): Generalize to enable it to
* cp/except.c
* cp/exception.cc
From-SVN: r24194
|
|
* libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
The strategy we now use is to pre allocate the top_elt along
with the EH context so that each thread has its own top_elt.
This is necessary as the dynmanic cleanup chain is used on the
top element of the stack and each thread MUST have its own.
(eh_context_static): Likewise.
(new_eh_context): Likewise.
(__sjthrow): Likewise.
From-SVN: r23818
|
|
From-SVN: r23622
|
|
From-SVN: r23185
|
|
eh_context structure.
* libgcc2.c (eh_context_static): Do not call malloc to allocate the
static eh_context structure.
From-SVN: r23175
|
|
* Makefile.in (flow.o): Depend on recog.h.
* cpplib.h (directive_table): Add missing initializiers.
(finclude): Change type of variable `bsize' to size_t.
* cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
* dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
* fix-header.c (lookup_std_proto): Cast the result of `strlen' to
`int' when comparing against one.
(cpp_file_line_for_message): Mark parameter `pfile' with
ATTRIBUTE_UNUSED.
(cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
* flow.c: Include recog.h.
(sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
* function.c (thread_prologue_and_epilogue_insns): Mark parameter
`f' with ATTRIBUTE_UNUSED.
(reposition_prologue_and_epilogue_notes): Likewise.
* genopinit.c (gen_insn): Cast argument of ctype functions to
`unsigned char'.
* haifa-sched.c: Include recog.h.
(blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
comparing against one.
* libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
* mips-tfile.c (parse_end): Cast the argument of ctype function to
`unsigned char'.
(parse_ent): Likewise.
(parse_input): Likewise.
* optabs.c (init_libfuncs): Likewise.
* protoize.c (find_rightmost_formals_list): Likewise.
* recog.h (const_double_operand): Fix typo in prototype.
* tlink.c (scan_linker_output): Cast the argument of ctype
function to `unsigned char'.
* toplev.c (check_lang_option): Cast the result of `strlen' to
`int' when comparing against one.
From-SVN: r23155
|
|
* cppalloc.c (memory_full): Mark function prototype with
ATTRIBUTE_NORETURN.
* demangle.h (collect_exit): Likewise.
* fix-header.c (v_fatal, fatal): Likewise.
* gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
Likewise.
* gcov.c (print_usage): Likewise.
* genattr.c (fatal, fancy_abort): Likewise.
* genattrtab.c (fatal, fancy_abort): Likewise.
* gencodes.c (fatal, fancy_abort): Likewise.
* genconfig.c (fatal, fancy_abort): Likewise.
* genemit.c (fatal, fancy_abort): Likewise.
* genextract.c (fatal, fancy_abort): Likewise.
* genflags.c (fatal, fancy_abort): Likewise.
* genopinit.c (fatal, fancy_abort): Likewise.
* genoutput.c (fatal, fancy_abort): Likewise.
* genpeep.c (fatal, fancy_abort): Likewise.
* genrecog.c (fatal, fancy_abort): Likewise.
* libgcc2.c (__eprintf, __default_terminate, __sjthrow,
__sjpopnthrow, __throw): Likewise.
* objc/objc-act.c (objc_fatal): Likewise.
* protoize.c (usage, aux_info_corrupted,
declare_source_confusing): Likewise.
* rtl.c (dump_and_abort): Likewise.
* rtl.h (sets_cc0_p): Likewise.
* toplev.c (float_signal, pipe_closed): Likewise.
From-SVN: r23084
|
|
Mon Sep 21 17:15:26 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* expr.h (eh_rtime_match_libfunc): New extern declaration.
* optabs.c (init_optabs): Set eh_rtime_match_libfunc.
* except.c (start_catch_handler): Use eh_rtime_match_libfunc.
* libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
NULL. Only include <stdio.h> if inhibit_libc is not defined.
From-SVN: r22532
|
|
Thu Sep 17 16:42:16 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
re-align some code.
* libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
1998-09-17 Andrew MacLeod <amacleod@cygnus.com>
* exception.cc (__cplus_type_matcher): realign some code.
From-SVN: r22462
|
|
* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. Kill.
(BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
(BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
(BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
* c-decl.c (init_decl_processing): Update accordingly.
* expr.c (expand_builtin): Likewise.
* cp/decl.c (init_decl_processing): Likewise.
* rtl.h (global_rtl): Add cfa entry.
(virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
(LAST_VIRTUAL_REGISTER): Update.
* emit-rtl.c (global_rtl): Add cfa entry.
(init_emit): Initialize it.
* function.c (cfa_offset): New.
(instantiate_virtual_regs): Initialize it.
(instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
(expand_function_end): Call expand_eh_return.
* tm.texi (ARG_POINTER_CFA_OFFSET): New.
* except.c (current_function_eh_stub_label): Kill.
(current_function_eh_old_stub_label): Likwise; update all references.
(expand_builtin_set_return_addr_reg): Kill.
(expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
(expand_builtin_set_eh_regs): Kill.
(eh_regs): Produce a third reg for the actual handler address.
(eh_return_context, eh_return_stack_adjust): New.
(eh_return_handler, eh_return_stub_label): New.
(init_eh_for_function): Initialize them.
(expand_builtin_eh_return, expand_eh_return): New.
* except.h: Update prototypes.
* flow.c (find_basic_blocks_1): Update references to the stub label.
* function.h (struct function): Kill stub label elements.
* libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
register number is one that would be in the previous window.
Provide a dummy definition for non-windowed targets.
(get_reg_addr): New function.
(get_reg, put_reg, copy_reg): Use it.
(__throw): Rely on in_reg_window, not INCOMING_REGNO. Kill stub
generating code and use __builtin_eh_return. Use __builtin_dwarf_cfa.
* alpha.c (alpha_eh_epilogue_sp_ofs): New.
(alpha_init_expanders): Initialize it.
(alpha_expand_epilogue): Use it.
* alpha.h: Declare it.
* alpha.md (eh_epilogue): New.
* m68h.h (ARG_POINTER_CFA_OFFSET): New.
* sparc.h (ARG_POINTER_CFA_OFFSET): New.
From-SVN: r22436
|
|
Tue Sep 15 14:10:54 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* except.h (struct eh_entry): Add false_label field.
(end_catch_handler): Add prototype.
* except.c (push_eh_entry): Set false_label field to NULL_RTX.
(start_catch_handler): When using old style exceptions, issue
runtime typematch code before continuing with the handler.
(end_catch_handler): New function, generates label after handler
if needed by older style exceptions.
(expand_start_all_catch): No need to check for new style exceptions.
(output_exception_table_entry): Only output the first handler label
for old style exceptions.
* libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
mechanism into one function, if a runtime matcher is provided.
1998-09-15 Andrew MacLeod <amacleod@cygnus.com>
* cp/except.c (expand_start_catch_block): No need to check for new
exception model.
(process_start_catch_block_old): Deleted.
(process_start_catch_block): Add call to start_decl_1().
(expand_end_catch_block): Add call to end_catch_handler().
* cp/exception.cc (__cplus_type_matcher): Only check the exception
language if there is an exception table.
From-SVN: r22425
|
|
ON_EXIT but not HAVE_ATEXIT.
* libgcc2.c (L_exit): Provide a fake for atexit on systems which
define ON_EXIT but not HAVE_ATEXIT.
From-SVN: r20982
|
|
* libgcc2.c (__eprintf): Make args consistent with prototype in
assert.h.
From-SVN: r20943
|
|
descriptor information.
Tue Jun 23 13:38:18 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* libgcc2.c (__get_eh_table_version, __get_eh_table_language): New
functions to return exception descriptor information.
(find_exception_handler): Pass match_info field to runtime matcher,
not a descriptor table entry.
* exception.cc (__cplus_type_matcher): Get a match_info pointer
instead of an exception table entry as a parameter.
From-SVN: r20673
|
|
runtime checking code inside each handler.
Have -fnew-exceptions actually use the runtime field, and not generate
runtime checking code inside each handler.
THis works at low opt, but not with optimization at the moment.
Tue Jun 23 10:06:07 EDT 1998 Andrew MacLeod (amacleod@cygnus.com)
* eh-common.h (struct __eh_info): Remove coerced value field.
* libgcc2.c (find_exception_handler): Don't set coerced_value field.
* except.c (get_dynamic_handler_chain, get_dynamic_cleanup_chain): Use
POINTER_SIZE instead of Pmode.
(expand_start_all_catch): Call start_catch_handler() if we are not
using new style exceptions.
1998-06-22 Andrew MacLeod (amacleod@cygnus.com)
* parse.y (function_try_block): Don't call start_catch_handler.
* except.c (call_eh_info): Remove coerced field from declaration.
(build_eh_type_type_ref): New function to create an address of a
rtti function for the new style exception tables.
(expand_start_catch_block): Split function, this contains the
common part.
(process_start_catch_block_old): New function to perform the rest
of expand_start_catch_block under old style exceptions.
(process_start_catch_block_old): New function to perform the rest
of expand_start_catch_block under new style exceptions.
(expand_end_catch_block): Only pop the false label off the stack under
the old style of exceptions.
* semantics.c (finish_try_block): Don't call start_catch_handler.
* exception.cc (struct cp_eh_info): Add original_value field.
(__cplus_type_matcher): Perform type matching on the original exception
value, and if we have a match, set the current value.
(__cp_push_exception): Set the original expcetion value.
From-SVN: r20671
|
|
Wed Jun 17 16:25:38 EDT 1998 Andrew MacLeod (amacleod@cygnus.com)
* except.c (add_new_handler): fix bug in finding last region handler.
* libgcc2.c (find_exception_handler): Pass exception table pointer
to runtime type matcher, not the match info field.
From-SVN: r20541
|
|
* Makefile.in (varasm.o): Depend on dbxout.h.
(cse.o): Depend on toplev.h and output.h.
(gcse.o): Depend on output.h.
* mips.c: Include system.h and toplev.h and remove redundant code.
Include output.h after tree.h so all its prototypes get activated.
* mips.md (table_jump): Remove unused variable `dest'.
* sparc.h: Add prototype for `v8plus_regcmp_op'.
* crtstuff.c (fini_dummy, init_dummy): Mark function definitions
with __attribute__ ((__unused__)).
(__frame_dummy): Provide prototype before use, wrap it with
EH_FRAME_SECTION_ASM_OP.
* cse.c: Move inclusion of <setjmp.h> above local headers.
Include toplev.h and output.h.
* dbxout.h: Add prototype for `dbxout_begin_function'.
* final.c (final_scan_insn): Wrap variable `max_skip' in macro
ASM_OUTPUT_MAX_SKIP_ALIGN.
* gcse.c: Include system.h and output.h.
(dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data):
Make extern instead of static.
(compute_can_copy): Only declare variables `reg' and `insn' when
AVOID_CCMODE_COPIES is not defined.
(record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED.
(hash_scan_clobber): Likewise for `x' and `insn'.
(hash_scan_call): Likewise.
(record_last_set_info): Likewise for `setter'.
(mark_call): Likewise for `pat'.
(pre_insert_insn): Wrap variable `note' in macro HAVE_cc0.
* libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the
length parameter so that it multiplies the number of elements by
the sizeof(element).
* output.h: Add prototype for `weak_finish'.
* recog.h: Likewise for `validate_replace_src'.
* rtl.h: Likewise for `optimize_save_area_alloca',
`fix_sched_param', `purge_addressof', `gcse_main',
`regmove_optimize', `dbr_schedule', `branch_prob' and
`end_branch_prob'.
* toplev.h: Likewise for `set_float_handler' and
`output_quoted_string'.
* varasm.c: Include dbxout.h.
From-SVN: r20351
|
|
Thu Jun 8 14:16:15 EDT 1998 Andrew MacLeod <amacleod@cygnus.com>
* eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
flag_new_exceptions runtime flag.
(struct old_exception_table): New struct which represents what
the exception table looks like without the new model.
(NEW_EH_RUNTIME): New value used as a tag in the exception table to
flag that this is a new style table.
* except.h: Remove compile time flag NEW_EH_MODEL.
(expand_builtin_eh_stub_old): New prototype.
* tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
* expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
* c-decl.c (init_decl_processing): Add new builtin function
__builtin_eh_stub_old.
* final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
* flags.h (flag_new_exceptions): New runtime flag.
* toplev.c (flag_new_exceptions): Initialize default to 0,
-fnew-exceptions sets to 1.
* except.c (output_exception_table_entry): Output New style exception
identifier into table, and replace compile time flag NEW_EH_MODEL
with runtime flag flag_new_exceptions.
(output_exception_table): Replace compile time flag NEW_EH_MODEL.
(expand_builtin_eh_stub_old): Duplicates original functionality of
expand_builtin_eh_stub.
(expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
* libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
(old_find_exception_handler): New func, same as find_exception_handler
except it works on the old style exception table.
(__throw): Replace NEW_EH_MODEL. Detect new model based on presence
of identifier in the exception table, and call appropriate routines.
1998-06-08 Andrew MacLeod <amacleod@cygnus.com>
* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
time flag. Call __cp_eh_info instead of __cp_exception_info.
* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
(__cp_exception_info): Return offset into cp_eh_info structure to
match what use to be the start of this structure.
(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
compile time flag.
(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
__cp_eh_info instead of __cp_exception_info.
From-SVN: r20336
|
|
From-SVN: r19746
|
|
* Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h.
(c-lex.o): Depend on output.h.
(c-common.o): Likewise.
(stmt.o): Likewise.
(calls.o): Likewise.
(integrate.o): Depend on toplev.h.
(regclass.o): Depend on output.h.
(final.o): Depend on reload.h.
* c-common.c: Include output.h.
(check_format_info): Remove unused variable `integral_format'.
* c-decl.c (print_lang_decl): Mark parameters `file', `node' and
`indent' with ATTRIBUTE_UNUSED.
(print_lang_type): Likewise.
(maybe_build_cleanup): Likewise for parameter `decl'.
(copy_lang_decl): Likewise for parameter `node'.
* c-lang.c: Include c-tree.h, c-lex.h and toplev.h.
(lang_print_xnode): Mark parameters `file', `node' and `indent'
with ATTRIBUTE_UNUSED.
(lookup_interface): Likewise for parameter `arg'.
(is_class_name): Likewise.
(maybe_objc_check_decl): Likewise for parameter `decl'.
(maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and
`reflexive'.
(maybe_objc_method_name): Likewise for parameter `decl'.
(build_objc_string): Likewise for parameters `len' and `str'.
* c-lex.c: Include output.h.
* c-lex.h (position_after_white_space): Correct typo in prototype.
* c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else,
c_expand_end_cond, init_iterators): Add prototypes.
* caller-save.c (set_reg_live): Mark parameters `reg' and `setter'
with ATTRIBUTE_UNUSED.
* calls.c: Include output.h.
* cccp.c (pipe_closed): Mark parameter `signo' with
ATTRIBUTE_UNUSED.
* combine.c: Move inclusion of expr.h to after insn-config.h.
* iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define
as empty, rather define as ((void)0).
* sparc.c (sparc_check_64): Add braces around ambiguous `else'.
Add parentheses around assignment used as truth value.
* cplus-dem.c (squangle_mop_up): Change return type to void.
(internal_cplus_demangle): Remove unused parameter `options'.
All callers changed.
(cplus_demangle_opname): Remove function wide variable `int i' and
replace with `size_t i' at each location where it is used.
(cplus_demangle_opname): change type of `i' from int to size_t.
* cppexp.c (right_shift): Mark parameter `pfile' with
ATTRIBUTE_UNUSED.
* cpphash.c (cpp_lookup): Likewise.
(cpp_hash_cleanup): Likewise.
* cpplib.c (parse_name): Add a prototype and make it static.
(null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
(null_cleanup): Likewise for parameters `pbuf' and `pfile'.
(macro_cleanup): Likewise for parameter `pfile'.
(file_cleanup): Likewise.
* cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read,
cpp_read_check_assertion, skip_rest_of_line): Add prototypes.
* crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data,
__DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED.
* cse.c (cse_check_loop_start): Mark parameter `set' with
ATTRIBUTE_UNUSED.
* dbxout.c (flag_minimal_debug, have_used_extensions,
source_label_number): Move inside macro wrapper check against
defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO).
* dwarf2out.c (gen_entry_point_die): Hide prototype and definition.
* except.h (doing_eh): Provide prototype.
* expr.c: Move inclusion of expr.h to after insn-config.h.
* final.c: Include reload.h.
(shorten_branches): Cast the first argument of bzero to char *.
* fix-header.c (cpp_print_containing_files): Mark parameter
`pfile' with ATTRIBUTE_UNUSED.
(cpp_fatal): Likewise.
* flow.c (find_basic_blocks_1): Cast the first argument of bzero
to char *.
* genattrtab.c (make_length_attrs): Change the type of variable
`i' from int to size_t.
(zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED.
(one_fn): Likewise.
* genextract.c (main): When generating insn-extract.c, mark
variable `junk' with ATTRIBUTE_UNUSED.
* gengenrtl.c (gencode): When generating genrtl.c, cast the first
argument of bzero to char*.
* integrate.c: Include toplev.h.
* libgcc2.c: Wrap `struct exception_table' and
`find_exception_handler' in macro DWARF2_UNWIND_INFO.
* objc/Make-lang.in (objc-act.o): Depend on toplev.h.
* objc/objc-act.c: Include toplev.h.
(lang_print_xnode): Mark parameters `file', `node' and `indent'
with ATTRIBUTE_UNUSED.
(finish_protocol): Likewise for parameter `protocol'.
* output.h (declare_weak): Add prototype.
(decode_reg_name): Don't wrap with TREE_CODE macro.
(assemble_alias): Add prototype.
* regclass.c: Include output.h.
* reload.h (reloads_conflict): Add prototype.
* rtl.h (print_rtl_single, mark_elimiation, reg_class_subset_p,
output_func_start_profiler): Add prototypes.
* rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with
ATTRIBUTE_UNUSED.
* scan-decls.c: Include scan.h.
* scan.h (recognized_function, recognized_extern): Add prototypes.
* stmt.c: Include output.h.
* toplev.c (error_for_asm, warning_for_asm): Remove prototypes.
(output_lang_identify): Hide prototype and definition.
(float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED.
(pipe_closed): Likewise.
* toplev.h (count_error, strip_off_ending, error_for_asm,
warning_for_asm): Add prototypes.
From-SVN: r19712
|
|
From-SVN: r19553
|
|
* frame.c, libgcc2.c (stdlib.h, unistd.h): Don't include when
inhibit_libc is defined.
From-SVN: r19390
|