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.
Jim Wilson [Wed, 24 Dec 1997 22:06:54 +0000 (22:06 +0000)]
mips.c (mips_expand_epilogue): Emit blockage insn before call to save_restore_insns if...
* mips.c (mips_expand_epilogue): Emit blockage insn before call to
save_restore_insns if no FP and GP will be restored.
* abi64.h (LONG_MAX_SPEC): Check MIPS_ABI_DEFAULT and TARGET_DEFAULT,
and define __LONG_MAX__ appropriately. Add support for -mabi=X,
-mlong64, and -mgp{32,64} options.
* mips.c (mips_abi): Change type to int.
* mips.h (enum mips_abi_type): Delete.
(ABI_32, ABI_N32, ABI_64, ABI_EABI): Define as constants.
(mips_abi): Change type to int.
Jeff Law [Mon, 22 Dec 1997 08:55:43 +0000 (01:55 -0700)]
haifa-sched.c (create_reg_dead_note): Detect and handle another case where we kill more regs after sched than were...
* haifa-sched.c (create_reg_dead_note): Detect and handle another
case where we kill more regs after sched than were killed before
sched.
* sched.c (create_reg_dead_note): Similarly.
Paul Eggert [Sat, 20 Dec 1997 12:37:59 +0000 (12:37 +0000)]
frame.h (__register_frame, [...]): New.
* frame.h (__register_frame, __register_frame_table,
__deregister_frame): New.
* frame.c (__register_frame, __register_frame_table,
__deregister_frame): New.
* frame.c (__deregister_frame_info): Return void *.
* frame.h (__deregister_frame_info): Ditto.
* collect2.c (__deregister_frame_info): Ditto.
* frame.h (__register_frame_info_table): Fix typo in declaration.
* frame.c (__register_frame_info): Renamed from __register_frame.
(__register_frame_info_table, __deregister_frame_info): Similarly.
* frame.h (__{,de}register_frame_info): Likewise.
(__register_frame_info_table): New declaration.
* crtstuff.c (__do_global_dtors{,_aux}): Rename __deregister_frame.
(frame_dummy, __do_global_ctors): Likewise for __register_frame.
* collect2.c (write_c_file_{stat,glob}): Rename __register_frame
to __register_frame_info and similarly for __deregister_frame and
__register_frame_table.
* collect2.c (write_c_file_glob):
Allocate initial frame object in static storage and pass its address.
* crtstuff.c (__do_global_ctors): Fix typo in last change.
* crtstuff.c (__do_global_ctors): Add missing arg to __register_frame.
* collect2.c (write_c_file_stat): Fix error in last change;
use __SIZE_TYPE__, not size_t.
Alter C startup code so that it doesn't invoke malloc on Solaris.
* frame.h (struct object): Decl moved here from frame.c.
* frame.c (struct object): Move decl to frame.h.
("frame.h"): Include after <stddef.h>, so that size_t is defined.
(__register_frame, __register_frame_table, __deregister_frame):
It's now the caller's responsibility to allocate storage for object.
* crtstuff.c (frame_dummy), collect2.c (write_c_file_stat):
Allocate initial frame object in static storage and pass its address.
* crtstuff.c (<stddef.h>, "frame.h"): Include.
* Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS):
Depend on defaults.h and frame.h.
The oh so fun changes in __register_frame* interface stuff.
Co-Authored-By: H.J. Lu <hjl@gnu.org> Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
From-SVN: r17160
Jason Merrill [Fri, 19 Dec 1997 08:38:33 +0000 (08:38 +0000)]
cp-tree.h (struct lang_decl_flags): Add comdat.
* cp-tree.h (struct lang_decl_flags): Add comdat.
(DECL_COMDAT): New macro.
* decl.c (duplicate_decls): Propagate it.
(cp_finish_decl): Handle it.
* decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.