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.
Michael Meissner [Thu, 27 Nov 1997 00:06:53 +0000 (00:06 +0000)]
rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
* rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
(print_operand): Use SMALL_DATA_REG for the register involved in
small data relocations.
(print_operand_address): Ditto.
* rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if
-dynamic linker is not used.
* rs6000.md (call insns): For local calls, use @local suffix under
System V. Don't use @plt under Solaris.
* configure.in (target frags): Add alpha*-linux-gnulibc1.
(pic frags): Its alpha*- not alpha-.
(stdio-lock): Kill everything. Add alpha*-linux-gnulibc1.
* libio.h: Check __GLIBC_MINOR__ to find stdio-lock.h. If not
_IO_MTSAFE_IO & GLIBC, make sure the lock pointer is still there.
* libioP.h: Check __GLIBC_MINOR__ to find libc-lock.h.
* config/linuxaxp1-libc-lock.h: New file.
* config/linuxaxp1-stdio-lock.h: New file.
* config/linuxaxp1.mt: New file.
* gen-params (va_list): Check for and use __gnuc_va_list.
(NULL): Work around some linux kernel headers and redefine NULL.
Cater to RH powerpc & alpha Linux systems with pre-release versions
of glibc2.
Michael Meissner [Wed, 26 Nov 1997 21:26:23 +0000 (21:26 +0000)]
(patches originally from Geoffrey Keating)
(patches originally from Geoffrey Keating)
* rs6000.c (function_arg): Excess floating point arguments don't
go into GPR registers after exhausting FP registers under the
System V.4 ABI.
(function_arg_partial_nregs): Ditto.
* rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt
suffix to calls.