Mark Kettenis [Fri, 8 May 1998 00:04:27 +0000 (02:04 +0200)]
thr-posix.c (__objc_mutex_allocate): Allocate mutex type instead of assuming it fits in a void * type.
* objc/thr-posix.c (__objc_mutex_allocate): Allocate
mutex type instead of assuming it fits in a void * type.
(__objc_mutex_deallocate): Free mutex type.
(__objc_mutex_lock): Pass mutex type instead of pointer to it.
(__objc_mutex_{try,un}lock): Likewise.
(__objc_condition_allocate): Allocate condition type instead
of assuming it fits in a void * type.
(__objc_condition_deallocate): Free condition type.
(__objc_condition_wait): Pass condition type instead of pointer to it.
(__objc_condition_{broadcast,signal}): Likewise.
Another lingering RH5.1 problem.
Jeffrey A Law [Wed, 6 May 1998 00:32:35 +0000 (00:32 +0000)]
haifa-sched.c (free_list): Rename from free_pnd_lst.
* haifa-sched.c (free_list): Rename from free_pnd_lst.
(free_pending_lists): Rename free_pnd_lst uses.
(remove_dependence): Place expunged element on unused_insn_list.
(alloc_INSN_LIST, alloc_EXPR_LIST): New. Change all callers of
gen_rtx_*_LIST and alloc_rtx to use them.
(compute_block_backward_dependences): Free the reg_last_* lists.
* haifa-sched.c (schedule_insns): Correctly remove inter-block
dependencies after reload.
* haifa-sched.c (remove_dependencies): Set RTX_INTEGRATED_P on
dependency we delete. Properly update prev for multiple consecutive
deletions.
(priority): Skip deleted dependence.
Reduce memory consumption of haifa -- should fix problem encountered with
RedHat5.1 builds.
Co-Authored-By: Richard Henderson <rth@cygnus.com>
From-SVN: r19559
reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that boiled down to && ! 0.
* reload1.c (eliminate_regs): Delete LOAD_EXTENDED_OP code that
boiled down to && ! 0.
* reload.c (find_reloads): Always force (subreg (mem)) to be
reloaded if WORD_REGISTER_OPERATIONS.
* reload.c (find_reloads_toplev): Handle arbitrary non-paradoxical
SUBREGs of CONST_INTs.
* reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the
SUBREG_REG if the word count is unchanged, also in the input reload
case. Disable non-applicable sanity checks.
* reload.c (push_reload): In WORD_REGISTER_OPERATIONS code, add test
to require the SUBREG mode to be smaller than the SUBREG_REG mode.
* reload1.c (eliminate_regs): Likewise.
* reload.c (push_reload): If WORD_REGISTER_OPERATIONS, reload the
SUBREG_REG if the word count is unchanged.
* reload1.c (eliminate_regs) [case SET]: If W_R_O, preserve
subregs of identical word size for push_reload.
Various alpha fixes from the mainline sources.
Co-Authored-By: J"orn Rennecke <amylaar@cygnus.co.uk> Co-Authored-By: Jim Wilson <wilson@cygnus.com>
From-SVN: r19336
H.J. Lu [Sun, 19 Apr 1998 23:59:57 +0000 (23:59 +0000)]
reg-stack.c (subst_asm_stack_regs): Change to return the last new insn generated by this function.
* reg-stack.c (subst_asm_stack_regs): Change to return the last
new insn generated by this function.
(subst_stack_regs): Likewise.
(convert_regs): Record the last newly generated insn and use
it for change_stack () instead of INSN.
* com.c (ffecom_expr_): Revert Oct 22 change. Instead take a WIDENP
argument so that we can respect the signedness of the original type.
(ffecom_init_0): Do sizetype initialization first. Init new
ssizetype.
David Edelsohn [Sat, 18 Apr 1998 22:24:38 +0000 (22:24 +0000)]
rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be negative in a stackless frame.
* rs6000.md (floatsidf2_loadaddr): rs6000_fpmem_offset will be
negative in a stackless frame.
* rs6000.c (rs6000_stack_info): Don't include fixed-size link area
in stackless frame size. Support 64-bit stackless frame size.
Combine fpmem offset calculations and don't add total_size to
offset if not pushing a stack frame.
Franz Sirl [Wed, 4 Mar 1998 21:02:15 +0000 (14:02 -0700)]
linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if USE_GNULIBC_1 is defined
* rs6000/linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if
USE_GNULIBC_1 is defined
* configure.in: add a new case powerpc-*-linux-gnulibc1 which
includes the t-linux-gnulibc1 fragment
H.J. Lu [Tue, 24 Feb 1998 19:55:15 +0000 (19:55 +0000)]
configure.in (topsrcdir): New.
* configure.in (topsrcdir): New.
(CHECK_SUBDIRS, configdirs): Check ${topsrcdir}/gcc instead.
(config-ml.in): Use ${topsrcdir}/config-ml.in.
* tests/configure.in (topsrcdir): New.
(CHECK): Check ${topsrcdir}/gcc instead.
* configure.in (CHECK_SUBDIRS): Set to testsuite only if
${srcdir}/../gcc exists.
(configdirs): Include testsuite only if ${srcdir}/../gcc exists.
* tests/Makefile.in (check): Depend on $(CHECK).
* tests/configure.in (CHECK): Set to "check-iostream
check-stdio" if ${srcdir}/../../gcc doesn't exists.
Jeff Law [Sun, 22 Feb 1998 19:54:13 +0000 (12:54 -0700)]
pa.h (TEXT_SPACE_P): Remove unnecessary indirection into tree_code_type.
* pa/pa.h (TEXT_SPACE_P): Remove unnecessary indirection
into tree_code_type.
* vax/vms.h (SELECT_SECTION): Similarly.
Remove this change -- I was in the wrong tree (release instead of mainline).
Sigh. Starting to burn out a little on this stuff.
H.J. Lu [Fri, 20 Feb 1998 11:09:09 +0000 (11:09 +0000)]
ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
* ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
* stl_alloc.h: Ditto.
* stl_config.h: Ditto.
* stl_rope.h: Ditto.
* stl_config.h: include <_G_config.h> if __GNUG__ is defined.
(__STL_PTHREADS): Defined if _PTHREADS is defined or
__GLIBC__ >= 2.
Co-Authored-By: Jason Merrill <jason@yorick.cygnus.com>
From-SVN: r18137
Andrey Slepuhin [Fri, 20 Feb 1998 00:37:32 +0000 (00:37 +0000)]
collect2.c (XCOFF_SCAN_LIBS): Remove.
* collect2.c (XCOFF_SCAN_LIBS): Remove.
(export_flag): New variable.
(export_file): #ifdef COLLECT_EXPORT_LIST.
(import_file, exports, imports, undefined): New variables.
(libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same.
(dump_list, dump_prefix_list, is_in_list): New functions.
(write_export_file): $ifdef COLLECT_EXPORT_LIST.
(write_import_file, resolve_lib_name): New functions.
(use_import_list, ignore_library): Same.
(collect_exit): maybe_unlink import_file and #ifdef.
(handler): Same.
(main): New variable importf, #ifdef exportf. Move parsing of
-shared before general argument parsing. Resolve AIX library
paths and import libgcc.a symbols. Treat .so shared libraries the
same as objects and .a libraries. Create alias for object_lst and
increment it instead of original pointer. Scan AIX libraries as
objects earlier instead of using scan_libraries. Perform AIX
tlink later to resolve templates instead of forking ld.
(GCC_OK_SYMBOL): Ensure symbol not in undef section.
(GCC_UNDEF_SYMBOL): New macro.
(scan_prog_file): Loop for members of AIX libraries. Handle
export/import of ctors/dtors.
(aix_std_libs): New variable.
(scan_libraries, XCOFF): Delete.
Co-Authored-By: David Edelsohn <edelsohn@mhpcc.edu>
From-SVN: r18133
Jeffrey A Law [Thu, 19 Feb 1998 00:33:40 +0000 (00:33 +0000)]
emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__.
* emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__.
* emit-rtl.c (hard-reg-set.h): Include.
(get_lowpart_common): Don't make new REG for hard reg in a
class that cannot change size.
* Makefile.in (emit-rtl.o): Depend on hard-reg-set.h.
* combine.c: Revert previous patch.
Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
From-SVN: r18108
combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when simplifying a subreg of a hard reg.
* combine.c (simplify_rtx): Obey CLASS_CANNOT_CHANGE_SIZE when
simplifying a subreg of a hard reg.
(expand_compound_operation): Likewise.
(force_to_mode): Likewise.
Andreas Schwab [Tue, 17 Feb 1998 21:07:42 +0000 (21:07 +0000)]
iostream.cc (istream::operator>>(long double&)): Scan value into separate variable, in case long double is bigger than double.
* iostream.cc (istream::operator>>(long double&))
[!_G_HAVE_LONG_DOUBLE_IO]: Scan value into separate variable, in
case long double is bigger than double.
(ostream::operator<<(double)) [_G_HAVE_PRINTF_FP]: Fix order of
initializers of struct printf_info to match declaration order,
to work around g++ bug.
(ostream::operator<<(long double)) [_G_HAVE_PRINTF_FP]: Likewise.
* gen-params: Add missing quotes. Avoid useless use of command
substitution.
H.J. Lu [Tue, 17 Feb 1998 20:53:03 +0000 (20:53 +0000)]
linux.mt (IO_OBJECTS): Add iogetline.o.
* config/linux.mt (IO_OBJECTS): Add iogetline.o.
* config/linuxlibc1.mt: Ditto.
* iogetline.c (_IO_getline_info): Renamed from _IO_getline.
(_IO_getline): Just call _IO_getline_info.
* isgetline.cc (istream::getline, istream::get, _sb_readline):
Call _IO_getline_info instead of _IO_getline and get the EOF
information.
* sbgetline.cc (streambuf::sgetline): Ditto.
* libioP.h (_IO_getline_info): New declaration.
* iogetline.c (_IO_getline): Handle the case when there is no
buffer.
* fileops.c: #include <unistd.h>.
* ioprims.c: Likewise.
* dbz/dbz.c (putconf): Handle systems which use "long long" as type
for "off_t".
* dbz/dbzmain.c (mkfiles): Likewise.
H.J. Lu [Sun, 15 Feb 1998 19:43:58 +0000 (19:43 +0000)]
elf.h (LIB_SPEC): New.
* config/alpha/elf.h (LIB_SPEC): New. Defined if
USE_GNULIBC_1 is not defined.
* config/linux.h (LIB_SPEC): Add -lc for -shared if
USE_GNULIBC_1 is not defined.
* config/sparc/linux.h: Ditto.
* config/sparc/linux64.h (LIB_SPEC): Add -lc for -shared.
* config/sparc/linux64.h (LIBGCC_SPEC): Removed.
(CPP_SUBTARGET_SPEC): Add %{pthread:-D_REENTRANT}.
(LIB_SPEC): Updated for glibc 2.
Mumit Khan [Fri, 13 Feb 1998 14:48:54 +0000 (14:48 +0000)]
cygwin32.h (DWARF2_UNWIND): Exception handling doesn't work with it yet, so set it to 0.
* config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling
doesn't work with it yet, so set it to 0.
* config/i386/x-cygwin32 (USE_COLLECT2): Delete.
* config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define.
Jason Merrill [Thu, 12 Feb 1998 19:57:24 +0000 (19:57 +0000)]
decl2.c (comdat_linkage): Also set DECL_COMDAT.
* decl2.c (comdat_linkage): Also set DECL_COMDAT.
(finish_file): Check DECL_COMDAT instead of weak|one_only.
(import_export_vtable): Use make_decl_one_only instead of
comdat_linkage for win32 tweak.
(import_export_decl): Likewise.
* pt.c (mark_decl_instantiated): Likewise.
* decl2.c (import_export_vtable): If we support one_only but not
weak symbols, mark instantiated template vtables one_only.
(import_export_decl): Likewise for tinfo functions.
(finish_vtable_vardecl): Also write out vtables from explicitly
instantiated template classes.
* pt.c (mark_class_instantiated): Revert last change.
Jason Merrill [Wed, 11 Feb 1998 19:06:52 +0000 (14:06 -0500)]
Some patches for 1.0.2:
* decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead
when deciding to override DECL_ASSEMBLER_NAME.
* pt.c (instantiate_decl): Call cp_finish_decl for vars even if we
don't define them yet.
* parse.y (nomods_initdcl0): Add constructor_declarator case.
* tinfo2.cc: Add tinfo for signed char.
* search.c (compute_access): Handle protected constructors in derived
classes as accessible.
* lex.c (file_name_nondirectory): Also check for '/'.
* pt.c (type_unification_real): Just accept function parms that
don't use any template parms.
* parse.y (typename_sub*): Fix std::.
* lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
(file_name_nondirectory): Use.
* call.c (build_user_type_conversion_1): Handle user-defined
template conversion operators correctly.
* cvt.c (build_up_reference): A TARGET_EXPR has side effects.
* pt.c (instantiate_class_template): Don't do injection when
processing_template_decl is true, as pollutes current_binding_level
for base classes.
* typeck.c (build_const_cast): Handle references here instead of
handing off to convert_to_reference.
Jason Merrill [Wed, 11 Feb 1998 10:21:23 +0000 (05:21 -0500)]
flow.c (find_basic_blocks): Don't create a new basic block for calls in a LIBCALL block.
* flow.c (find_basic_blocks): Don't create a new basic block
for calls in a LIBCALL block.
* flow.c (flow_analysis): Be consistent with find_basic_blocks in
determining when a new basic block starts.
* flow.c (find_basic_blocks): A CALL_INSN that can throw starts
a new basic block.
(find_basic_blocks_1): Likewise.
* except.c (get_dynamic_handler_chain): Only make the call once per
function.
* except.c (expand_fixup_region_end): New fn.
(expand_fixup_region_start): Likewise.
(expand_eh_region_start_tree): Store cleanup into finalization here.
* stmt.c (expand_cleanups): Use them to protect fixups.
* except.c (get_dynamic_handler_chain): Build up a FUNCTION_DECL.
* optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc.
* expr.h: Likewise.
cp/:
* decl.c (copy_args_p): Handle copy elision for types with virtual
bases.
* call.c (build_over_call): Likewise.
* exception.cc (__cp_pop_exception): Lose handler arg.
* except.c (do_pop_exception): Likewise.
(push_eh_cleanup): Let the cleanup mechanism supply the handler.
(expand_end_catch_block): Likewise.
Jeff Law [Tue, 10 Feb 1998 00:01:58 +0000 (17:01 -0700)]
bastring.h (unique): We only need length bytes.
* std/bastring.h (unique): We only need length bytes.
(c_str): Avoid writing over random memory.
#include <std/bastring.cc>.
Lose _G_ALLOC_CONTROL.
* std/bastring.cc: Likewise.
(nilRep): Add initializer for selfish.
* sinst.cc: Just #include <string>.
Jeff Law [Mon, 9 Feb 1998 22:08:43 +0000 (15:08 -0700)]
i386.md (push): Prohibit symbolic constants if flag_pic.
* i386.md (push): Prohibit symbolic constants if flag_pic.
(movsi+1): Likewise for move to non-register.
GOT fix.
Mon Feb 9 23:07:04 1998 John Wehle (john@feith.com)
* i386.md: Remove redundant integer push patterns.
Don't bother checking for TARGET_PUSH_MEMORY when
pushing constants or registers.
To avoid having to untangle the got changes....
J"orn Rennecke [Mon, 9 Feb 1998 21:15:14 +0000 (21:15 +0000)]
c-decl.c (grokdeclarator): Get parameter tags from last_function_parm_tags.
* c-decl.c (grokdeclarator): Get parameter tags from
last_function_parm_tags.
* dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before
traversing the parameter types.
(output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context.
Mark Mitchell [Mon, 9 Feb 1998 00:30:57 +0000 (00:30 +0000)]
integrate.c (get_label_from_map): New function.
* integrate.c (get_label_from_map): New function.
(expand_inline_function): Use it. Initialize the label_map to
NULL_RTX instead of gen_label_rtx.
(copy_rtx_and_substitute): Use get_label_from_map.
* integrate.h (get_label_from_map): New function.
(set_label_from_map): New macro.
* unroll.c (unroll_loop): Use them.
(copy_loop_body): Ditto.
* toplev.c (rest_of_compilation): Don't call save_for_inline_copy
if all we're doing is dealing with -Wreturn-type.
Craig Burley [Sun, 8 Feb 1998 23:50:28 +0000 (23:50 +0000)]
Fix -fpedantic combined with `F()' invocation,
also -fugly-comma combined with `IARGC()' invocation:
* bad.def (FFEBAD_NULL_ARGUMENT_W): New diagnostic.
* expr.c (ffeexpr_finished_): Don't reject null expressions
in the argument-expression context -- let outer context
handle that.
(ffeexpr_token_arguments_): Warn about null expressions
here if -fpedantic (as appropriate).
Obey -fugly-comma for only external-procedure invocations.