* config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
not current_function_uses_pic_offset_table and
current_function_uses_const_pool; examine current_function_profile.
(ix86_expand_prologue): Likewise. Add pic_offset_table_rtx as
input to blockage if needed.
(ix86_expand_call): Do not set current_function_uses_pic_offset_table.
(legitimize_pic_address): Likewise. Set regs_ever_live for
pic_offset_table_rtx when invoked during reload.
* config/i386/i386.h (FINALIZE_PIC): Remove.
* config/i386/i386.md (tablejump): Reformat. Do not set
current_function_uses_pic_offset_table.
(tls_global_dynamic, tls_local_dynamic_base): Likewise.
(blockage): Accept anything as operand 0.
Jason Thorpe [Wed, 29 May 2002 01:12:56 +0000 (01:12 +0000)]
netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define common CPP built-ins for all NetBSD a.out targets.
* config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
common CPP built-ins for all NetBSD a.out targets.
* config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
common CPP built-ins for all NetBSD ELF targets.
* config/netbsd.h: Add missing notice.
(NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
for all NetBSD targets.
(NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
for all NetBSD targets using an LP64 code model.
(NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
NetBSD targets.
Phil Edwards [Tue, 28 May 2002 23:15:18 +0000 (23:15 +0000)]
Makefile.am (noinst_LIBRARIES): New target.
2002-05-28 Phil Edwards <pme@gcc.gnu.org>
* testsuite/Makefile.am (noinst_LIBRARIES): New target. Pull in
CXX/INCLUDES.
* testsuite/Makefile.in: Regenerate.
* testsuite/testsuite_hooks.h (gnu_copy_tracker): Move from
list_modifiers.cc and rename from 'T'. Move code bodies...
* testsuite/testsuite_hooks.cc: ...to here. New file.
* testsuite/23_containers/list_modifiers.cc: Move 'T' class out.
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile):
Add libv3test.a to link options.
J"orn Rennecke [Tue, 28 May 2002 22:26:43 +0000 (22:26 +0000)]
config/sh reorganization to factor out endianness and coff:
* config/sh/little.h: New file.
* config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
defined, define to 0 to select big-endian.
(SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
(TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
* config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
* config/sh/t-be: New file.
* config/sh/t-le: New file.
Zack Weinberg [Tue, 28 May 2002 17:33:14 +0000 (17:33 +0000)]
tree.h: Forward-declare struct realvaluetype.
* tree.h: Forward-declare struct realvaluetype.
(struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
contain it.
(TREE_REAL_CST_PTR): New accessor.
(TREE_REAL_CST): Update.
* real.h: Include machmode.h.
(realvaluetype): Make it struct realvaluetype, not a typedef.
(build_real): Prototype here.
* tree.c: Include real.h.
(build_real): Allocate the REAL_VALUE_TYPE as a separate
object in GC memory, set TREE_REAL_CST_PTR to point to it.
(build_real_from_int_cst): Use build_real.
* ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
REAL_CST.
Zdenek Dvorak [Tue, 28 May 2002 12:53:47 +0000 (14:53 +0200)]
basic-block.h (last_basic_block): Declare.
* basic-block.h (last_basic_block): Declare.
(expunge_block_nocompact): Declaration removed.
(compact_blocks): Declare.
* cfg.c (last_basic_block): New variable.
(expunge_block_nocompact): Removed.
(expunge_block): Do not compact basic blocks.
(compact_blocks): New.
* cfganal.c (flow_call_edges_add): Use the fact that bb indices no
longer change.
* cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
last_basic_block.
* cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
real positions of blocks.
(delete_unreachable_blocks): Simplified -- quadratic behavior now
cannot occur.
(cleanup_cfg): Compact blocks.
* cfgrtl.c (create_basic_block): Insert basic blocks to the end of
basic_block_info varray.
(flow_delete_block): Comment update.
(back_edge_of_syntactic_loop_p): Modify position check code.
(verify_flow_info): Update checking.
* flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
* ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
(find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
indices no longer change.
* lcm.c (optimize_mode_switching): Replace n_basic_blocks with
last_basic_block.
* predict.c (estimate_bb_frequencies): Remove unneccessary code.
* profile.c (branch_prob): Compact blocks.
* sched-rgn.c (find_rgns): Replace n_basic_blocks with
last_basic_block.
Roger Sayle [Mon, 27 May 2002 21:09:38 +0000 (21:09 +0000)]
c-common.c: Add support for __attribute__((nothrow)) to specify that a function cannot...
* c-common.c: Add support for __attribute__((nothrow)) to specify
that a function cannot throw an exception (using TREE_NOTHROW).
(handle_nothrow_attribute): New function to process this attribute.
* doc/extend.texi: Document the new nothrow function attribute.
Bo Thorsen [Mon, 27 May 2002 14:01:40 +0000 (16:01 +0200)]
libgcc-x86_64-glibc.ver: Copy this file from the 3.1 branch.
2002-05-23 Bo Thorsen <bo@suse.de>
* config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
3.1 branch. The file was made by Jakub Jelinek.
* config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
support so multilib doesn't break. And don't define this at all
when -Dinhibit_libc is used.
(MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
* config/i386/t-linux64: Implement full multilib support. Patch
originally done by Andreas Jaeger and Jakub Jelinek.
# Control whether header files are installed.
-INSTALL_HEADERS=install-headers
+INSTALL_HEADERS=install-headers install-mkheaders
# Control whether Info documentation is built and installed.
BUILD_INFO = @BUILD_INFO@
@@ -878,6 +878,9 @@ gccbug: $(srcdir)/gccbug.in
mklibgcc: $(srcdir)/mklibgcc.in
CONFIG_FILES=mklibgcc CONFIG_HEADERS= ./config.status
+mkheaders: $(srcdir)/mkheaders.in
+ CONFIG_FILES=mkheaders CONFIG_HEADERS= ./config.status
+
# cstamp-h.in controls rebuilding of config.in.
# It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't
# delete it. A stamp file is needed as autoheader won't update the file if
@@ -2839,6 +2842,47 @@ install-headers-cpio: stmp-int-hdrs $(ST
# Install the include directory using cp.
install-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir
cp -p -r include $(libsubdir)
+
+itoolsdir = $(libsubdir)/install-tools
+# Don't install the headers. Instead, install appropriate scripts
+# and supporting files for fixincludes to be run later.
+install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir \
+ mkheaders xlimits.h
+ -rm -rf $(itoolsdir)
+ $(SHELL) $(srcdir)/mkinstalldirs $(itoolsdir)/include
+ for file in $(USER_H); do \
+ realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
+ $(INSTALL_DATA) $$file \
+ $(itoolsdir)/include/$$realfile ; \
+ done
+ if [ x$(FLOAT_H) != xMakefile.in ]; then \
+ $(INSTALL_DATA) $(srcdir)/config/$(FLOAT_H) \
+ $(itoolsdir)/include/float.h ; \
+ else :; fi
+ $(INSTALL_DATA) xlimits.h $(itoolsdir)/include/limits.h
+ if [ x$(STMP_FIXINC) != x ] ; then \
+ $(INSTALL_DATA) $(srcdir)/README-fixinc \
+ $(itoolsdir)/include/README ; \
+ $(INSTALL_PROGRAM) fixinc.sh $(itoolsdir)/fixinc.sh ; \
+ $(INSTALL_PROGRAM) fixinc/fixincl $(itoolsdir)/fixincl ; \
+ $(INSTALL_DATA) $(srcdir)/gsyslimits.h $(itoolsdir)/gsyslimits.h ; \
+ else :; fi
+ if [ x$(STMP_FIXPROTO) != x ] ; then \
+ $(INSTALL_PROGRAM) $(srcdir)/mkinstalldirs \
+ $(itoolsdir)/mkinstalldirs ; \
+ $(INSTALL_PROGRAM) $(srcdir)/fixproto $(itoolsdir)/fixproto ; \
+ $(INSTALL_PROGRAM) fix-header$(build_exeext) \
+ $(itoolsdir)/fix-header$(build_exeext) ; \
+ else :; fi
+ $(INSTALL_PROGRAM) mkheaders $(itoolsdir)/mkheaders
+ echo 'SYSTEM_HEADER_DIR="$(SYSTEM_HEADER_DIR)"' \
+ > $(itoolsdir)/mkheaders.conf
+ echo 'OTHER_FIXINCLUDES_DIRS="$(OTHER_FIXINCLUDES_DIRS)"' \
+ >> $(itoolsdir)/mkheaders.conf
+ echo 'FIXPROTO_DEFINES="$(FIXPROTO_DEFINES)"' \
+ >> $(itoolsdir)/mkheaders.conf
+ echo 'STMP_FIXPROTO="$(STMP_FIXPROTO)"' >> $(itoolsdir)/mkheaders.conf
+ echo 'STMP_FIXINC="$(STMP_FIXINC)"' >> $(itoolsdir)/mkheaders.conf
# Use this target to install the program `collect2' under the name `collect2'.
install-collect2: collect2 installdirs
Index: gcc/configure
===================================================================
RCS file: /cvs/gcc/gcc/gcc/configure,v
retrieving revision 1.606
diff -p -u -p -r1.606 configure
--- gcc/configure 25 May 2002 19:51:40 -0000 1.606
+++ gcc/configure 27 May 2002 04:14:21 -0000
@@ -8065,7 +8065,7 @@ all_languages=
all_boot_languages=
all_compilers=
all_stagestuff=
-all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc'
+all_outputs='Makefile intl/Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
# List of language makefile fragments.
all_lang_makefiles=
Index: gcc/mkheaders.in
===================================================================
RCS file: gcc/mkheaders.in
diff -N gcc/mkheaders.in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gcc/mkheaders.in 27 May 2002 04:14:21 -0000
@@ -0,0 +1,101 @@
+#!/bin/sh
+
+# Copyright (C) 2002 Free Software Foundation, Inc.
+
+#This file is part of GCC.
+
+#GCC is free software; you can redistribute it and/or modify it under
+#the terms of the GNU General Public License as published by the Free
+#Software Foundation; either version 2, or (at your option) any later
+#version.
+
+#GCC is distributed in the hope that it will be useful, but WITHOUT
+#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+#for more details.
+
+#You should have received a copy of the GNU General Public License
+#along with GCC; see the file COPYING. If not, write to the Free
+#Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+#02111-1307, USA.
+
+# Basic information
+target=@target@
+target_alias=@target_alias@
+version=@gcc_version@
+
+VERBOSE=0
+while [ x$1 = x-v ] ; do
+ shift
+ VERBOSE=`expr $VERBOSE + 1`
+done
+export VERBOSE
+
+if [ x$1 = x--help ] ; then
+ echo "Usage: mkheaders [options] [prefix]"
+ echo "Options:"
+ echo " -v Print more output (may be repeated for even more output)"
+ echo " --help This help"
+ echo " --version Print version information"
+ exit 0
+fi
+
+if [ x$1 = x--version ] ; then
+ echo "mkheaders (GCC) version $version"
+ echo "Copyright 2002 Free Software Foundation, Inc."
+ echo "This program is free software; you may redistribute it under the"
+ echo "terms of the GNU General Public License. This program has"
+ echo "absolutely no warranty."
+ exit 0
+fi
+
+# Common prefix for installation directories.
+if [ x$1 != x ] ; then
+ prefix=$1
+else
+ prefix=@prefix@
+fi
+# Directory in which to put localized header files. On the systems with
+# gcc as the native cc, `local_prefix' may not be `prefix' which is
+# `/usr'.
+# NOTE: local_prefix *should not* default from prefix.
+local_prefix=@local_prefix@
+# Directory in which to put host dependent programs and libraries
+exec_prefix=@exec_prefix@
+# Directory in which to put the directories used by the compiler.
+libdir=@libdir@
+# Directory in which the compiler finds executables, libraries, etc.
+libsubdir=${libdir}/gcc-lib/${target_alias}/${version}
+# Since gcc_tooldir does not exist at build-time, use -B${build_tooldir}/bin/
+build_tooldir=${exec_prefix}/${target_alias}
+# Directory to search for site-specific includes.
+local_includedir=${local_prefix}/include
+includedir=${prefix}/include
+
+itoolsdir=${libsubdir}/install-tools
+incdir=${libsubdir}/include
+
+. ${itoolsdir}/mkheaders.conf
+
+cd ${itoolsdir}
+rm -rf ${incdir}/*
+
+if [ x${STMP_FIXINC} != x ] ; then
+ TARGET_MACHINE="${target}" target_canonical="${target}" \
+ ${SHELL} ./fixinc.sh ${incdir} \
+ ${SYSTEM_HEADER_DIR} ${OTHER_FIXINCLUDES_DIRS}
+ rm -f ${incdir}/syslimits.h
+ if [ -f ${incdir}/limits.h ]; then
+ mv ${incdir}/limits.h ${incdir}/syslimits.h
+ else
+ cp gsyslimits.h ${incdir}/syslimits.h
+ fi
+fi
+
+cp include/* ${incdir}
+
+if [ x${STMP_FIXPROTO} != x ] ; then
+ mkinstalldirs="${SHELL} ${itoolsdir}/mkinstalldirs"
+ export FIXPROTO_DEFINES mkinstalldirs
+ ${SHELL} fixproto ${incdir} ${incdir} ${SYSTEM_HEADER_DIR} || exit 1
+fi
* config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
* config/avr/avr.c (jump_over_one_insn_p): Take length of the
branch insn into account, do not assume 1.
(avr_out_sbxx_branch): New function. Optimize cases of skipping
over single word insn. Handle upper half of I/O space too.
* config/avr/avr.md (*sbrx_branch): Use it.
(*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
(*sbix_branch, *sbix_branch_bit7): Likewise.
(*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
Use RTL peepholes to optimize register operand sign tests.
* config/avr/avr.c (avr_asm_only_p): New variable.
(avr_override_options): Set it here if AVR1.
(asm_file_start): Test it here, report an error if set.
Joseph Myers [Sun, 26 May 2002 10:29:30 +0000 (11:29 +0100)]
gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526 (experimental)".
gcc/ada:
* gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
(experimental)".
maintainer-scripts:
* gcc_release: Add gcc/ada/gnatvsn.ads to list of files in which
release status is updated.
* update_version (textstring_FILES): Add gcc/ada/gnatvsn.ads.
c-pragma.c (apply_pragma_weak): Convert value identifier to string for decl_attributes.
* c-pragma.c (apply_pragma_weak): Convert value identifier to
string for decl_attributes.
(handle_pragma_weak): Call assemble_alias if we're modifying
an existing decl.
sparc.c (sparc_output_mi_thunk): New implementation using rtl instead of fprintf.
* config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
using rtl instead of fprintf.
* config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
* config/sparc/sparc-protos.h: Update.
Zack Weinberg [Sat, 25 May 2002 02:10:46 +0000 (02:10 +0000)]
config.gcc: Remove all stanzas for previously obsoleted systems.
* config.gcc: Remove all stanzas for previously obsoleted
systems. Where necessary, add explicit error stanzas to
prevent removed systems from being misidentified as something
else. Begin a fresh obsoletions list, with the systems that
were reprieved last round.
* doc/install.texi: Remove all mention of dead targets.
* fixinc/mkfixinc.sh: Likewise.
* config/arm/arm.h: Bit 31 of target_flags is no longer
reserved.
* flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
* toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
* config/i386/i386.c (tls_model_chars): Add leading space.
(tls_symbolic_operand): Don't bias by 1.
(legitimize_address): Don't unbias by 1.
Phil Edwards [Fri, 24 May 2002 18:16:00 +0000 (18:16 +0000)]
std_bitset.h (_Base_biteset<0>): New specialization.
2002-05-24 Phil Edwards <pme@gcc.gnu.org>
libstdc++/6282
* include/std/std_bitset.h (_Base_biteset<0>): New specialization.
(operator>>): If nothing was extracted, don't fail in the
zero-length case.
* testsuite/23_containers/bitset_ctor.cc (test02): New test.
* java/security/cert/CertPath.java: New file.
* java/security/cert/CertPathBuilderException.java: New file.
* java/security/cert/CertPathValidatorException.java: New file.
* java/security/cert/CertStoreException.java: New file.
* Makefile.am: Add new CertPath classes.
* Makefile.in: Rebuilt.
* gnu/java/util/EmptyEnumeration: New file from classpath.
Andreas Jaeger [Fri, 24 May 2002 06:30:41 +0000 (08:30 +0200)]
ggc-page.c (alloc_page): Cast variables of type size_t to unsigned long, adjust printf format string.
* ggc-page.c (alloc_page): Cast variables of type size_t to
unsigned long, adjust printf format string.
(ggc_alloc): Likewise.
(ggc_print_statistics): Likewise.
(ggc_print_statistics): Correct printf format string for SCALE to
use unsigned long.