Andrew Pinski [Fri, 25 Nov 2005 05:05:26 +0000 (05:05 +0000)]
[multiple changes]
2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24989
* fold-const.c (fold_build): Convert bool_var != 1 and
bool_var == 0 to !bool_var.
2005-11-24 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24989
* gcc.dg/tree-ssa/bool-10.c: New test.
* gcc.dg/tree-ssa/bool-11.c: New test.
* gcc.dg/tree-ssa/bool-7.c: Un-xfail.
From-SVN: r107488
Andrew Pinski [Fri, 25 Nov 2005 04:54:59 +0000 (04:54 +0000)]
[multiple changes]
2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24990
* fold-const.c (fold_binary): Fold (~a) == C to a == ~C
for C being INTEGER_CST. Likewise for !=.
2005-11-24 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24990
* tree-ssa/pr24990-1.c: New test.
From-SVN: r107487
Bryce McKinlay [Fri, 25 Nov 2005 04:15:15 +0000 (04:15 +0000)]
ia64-frame.h: Removed.
2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
* sysdep/ia64-frame.h: Removed.
* sysdep/ia64.c: Removed.
* sysdep/dwarf2-backtrace.cc: Removed.
* configure.ac: Remove references to HAVE_BACKTRACE and
SUPPLY_BACKTRACE.
* Makefile.am: Remove SUPPLY_BACKTRACE support.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
From-SVN: r107486
Joseph Myers [Fri, 25 Nov 2005 03:57:22 +0000 (03:57 +0000)]
re PR target/24998 (Build failure: undefined symbol __floatunsitf)
PR middle-end/24998
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for
unsigned conversions from SImode to TFmode.
From-SVN: r107483
Bryce McKinlay [Fri, 25 Nov 2005 03:36:13 +0000 (03:36 +0000)]
gij.cc (nonstandard_opts_help): Add entry for -Xss.
2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
* gij.cc (nonstandard_opts_help): Add entry for -Xss.
2005-11-24 Bryce McKinlay <mckinlay@redhat.com>
* gcj.texi (gij options): Add -Xss documentation.
From-SVN: r107480
GCC Administrator [Fri, 25 Nov 2005 00:17:22 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r107477
Bernd Schmidt [Thu, 24 Nov 2005 22:06:17 +0000 (22:06 +0000)]
expr.c (expand_expr_real_1): Fix error in last change.
* expr.c (expand_expr_real_1): Fix error in last change.
From-SVN: r107471
J"orn Rennecke [Thu, 24 Nov 2005 19:08:20 +0000 (19:08 +0000)]
caller-save.c: (this_insn_sets): Move into: (save_call_clobbered_regs).
2005-11-24 J"orn Rennecke <joern.rennecke@st.com>
* caller-save.c: (this_insn_sets): Move into:
(save_call_clobbered_regs).
(mark_set_regs): Get this_insn_sets from data.
(save_call_clobbered_regs): Take sets of the return value by
sibcalls into account.
From-SVN: r107469
J"orn Rennecke [Thu, 24 Nov 2005 18:55:53 +0000 (18:55 +0000)]
re PR target/21623 (ICE in reload_cse_simplify_operands, at postreload.c:391)
PR target/21623:
* regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove
SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests.
(init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test.
(memory_move_secondary_cost, init_reg_autoinc): Remove
SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests.
Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with
secondary_reload_class call.
(copy_cost): Likewise. Add new parameter prev_sri. Changed all
callers.
* reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks.
(push_secondary_reload): Use secondary_reload target hook.
(secondary_reload_class, scratch_reload_class): New functions.
(push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and
SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace
SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call.
* reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test.
(secondary_reload_class, scratch_reload_class): Declare.
* reload1.c: Include target.h.
(reload_adjust_reg_for_temp): New function.
(reload_adjust_reg_for_icode): Likewise.
(choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test.
Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class
call.
(emit_input_reload_insns): Likewise. Rewrite secondary reload checks
for inheritance. Support case when both secondary & tertiary reloads
are for intermediate registers.
(emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use
with secondary_reload_class call. Support case when both secondary
& tertiary reloads are for intermediate registers.
* target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition.
(TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD.
* target.h (secondary_reload_info): New struct / typedef.
(struct gcc_target): New member secondary_reload.
* targhooks.c Include reload.h, optabs.h and recog.h.
(default_secondary_reload): New function.
* targhooks.h (default_secondary_reload): Declare.
* doc/tm.texi: Document secondary_reload target hook. Update
description of SECONDARY_*RELOAD_CLASS and reload_{in,out}<mode>.
* doc/md.texi: Likewise.
* sh-protos.h (sh_secondary_reload): Declare.
* sh.c (TARGET_SECONDARY_RELOAD): Override.
(sh_secondary_reload): New function.
* sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define.
(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
(HAVE_SECONDARY_RELOADS): Define.
* sh.md (reload_indf): Rename to:
(reload_indf__frn).
(reload_outdf): Rename to:
(reload_outdf__RnFRm).
(reload_insf): Rename to:
(reload_insf__frn).
(reload_insi): Rename to:
(reload_insi__i_fpul).
From-SVN: r107468
Uros Bizjak [Thu, 24 Nov 2005 14:08:21 +0000 (15:08 +0100)]
configure.ac: Require at least texinfo 4.4.
* configure.ac: Require at least texinfo 4.4.
* configure: Regenerate.
* doc/install.texi (Tools/packages necessary for building GCC):
Update required version of texinfo to at least 4.4.
(Installing GCC: Building): Update required version of texinfo
to at least 4.4.
(Installing GCC: Final installation): Update required version
of texi2dvi to at least 4.4.
(Host/target specific installation notes for GCC): Update required
version of texinfo to at least 4.4.
From-SVN: r107465
Richard Guenther [Thu, 24 Nov 2005 10:48:15 +0000 (10:48 +0000)]
re PR c++/14024 (g++ isn't reporting aliasing warnings)
2005-11-24 Richard Guenther <rguenther@suse.de>
Dirk Mueller <dmueller@suse.de>
PR c++/14024
* c-common.h (strict_aliasing_warning): Declare.
* c-common.c (strict_aliasing_warning): New function,
split out from ...
* c-typeck.c (build_c_cast): ... here.
* typeck.c (build_reinterpret_cast_1): Use it.
* g++.dg/warn/Wstrict-aliasing-1.C: New testcase.
* g++.dg/warn/Wstrict-aliasing-2.C: Likewise.
* g++.dg/warn/Wstrict-aliasing-3.C: Likewise.
* g++.dg/warn/Wstrict-aliasing-4.C: Likewise.
* g++.dg/warn/Wstrict-aliasing-5.C: Likewise.
* g++.dg/warn/Wstrict-aliasing-6.C: Likewise.
Co-Authored-By: Dirk Mueller <dmueller@suse.de>
From-SVN: r107459
Gabriel Dos Reis [Thu, 24 Nov 2005 10:32:48 +0000 (10:32 +0000)]
Get the logs in.
From-SVN: r107458
Paolo Bonzini [Thu, 24 Nov 2005 09:48:43 +0000 (09:48 +0000)]
optabs.c (expand_binop): Use swap_commutative_operands_with_target to order operands.
2005-11-24 Paolo Bonzini <bonzini@gnu.org>
* optabs.c (expand_binop): Use swap_commutative_operands_with_target
to order operands.
(swap_commutative_operands_with_target): New.
From-SVN: r107457
Paolo Bonzini [Thu, 24 Nov 2005 09:47:36 +0000 (09:47 +0000)]
gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes also when doing PRE...
2005-11-24 Paolo Bonzini <bonzini@gnu.org>
* gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
also when doing PRE, rather than only for global CPROP.
From-SVN: r107456
Gabriel Dos Reis [Thu, 24 Nov 2005 03:11:33 +0000 (03:11 +0000)]
re PR target/24236 (gcc.dg/i386-sse-10.c fails on the mainline on x86_64-linux-gnu)
PR c++/24235
* pt.c (check_instantiated_args): Reword diagnostic message about
template argument involving local types.
From-SVN: r107451
Ben Elliston [Thu, 24 Nov 2005 02:50:02 +0000 (02:50 +0000)]
machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
* machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
* optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
formatting.
(expand_twoval_unop): Likewise.
(widen_clz): Likewise.
(expand_parity): Likewise.
(expand_unop): Likewise.
(emit_cmp_and_jmp_insn_1): Likewise.
(prepare_float_lib_cmp): Likewise.
From-SVN: r107450
Ben Elliston [Thu, 24 Nov 2005 02:31:38 +0000 (02:31 +0000)]
optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
* optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
Remove unused `class' variable.
From-SVN: r107449
Gabriel Dos Reis [Thu, 24 Nov 2005 02:02:26 +0000 (02:02 +0000)]
re PR c++/21667 (misleading warning about array subscription)
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/21667
* c-typeck.c (build_array_ref): Avoid code duplicate. Use
common
C/C++ diagnostic function warn_array_subscript_with_type_char.
* c-common.h (warn_array_subscript_with_type_char): Declare.
* c-common.c (warn_array_subscript_with_type_char): Define.
cp/
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/21667
* typeck.c (build_array_ref): Avoid code duplicate. Use
common
C/C++ diagnostic function warn_array_subscript_with_type_char.
testsuite/
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
PR c++/21667
* gcc.dg/Wchar-subscripts.c: New.
* g++.dg/warn/Wchar-subscripts.C: Likewise.
From-SVN: r107448
Paolo Carlini [Thu, 24 Nov 2005 01:29:51 +0000 (01:29 +0000)]
PR libstdc++/24975 (basic_string)
2005-11-23 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24975 (basic_string)
* include/bits/basic_string.h (_Rep::_S_empty_rep): Avoid
strict-aliasing warnings.
From-SVN: r107447
GCC Administrator [Thu, 24 Nov 2005 00:17:11 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r107444
Ian Lance Taylor [Wed, 23 Nov 2005 23:08:54 +0000 (23:08 +0000)]
These files were stored incorrectly in the old CVS repository: they were in the Attic but were not marked as dead.
These files were stored incorrectly in the old CVS repository: they
were in the Attic but were not marked as dead. This had the effect of
making them appear to not exist in CVS checkouts, but they were
accidentally resurrected by cvs2svn. I am now deleting them again.
From-SVN: r107435
Geoffrey Keating [Wed, 23 Nov 2005 20:29:09 +0000 (20:29 +0000)]
GCC Regression Tester.wdgt/widget.html: New file.
* GCC Regression Tester.wdgt/widget.html: New file.
* GCC Regression Tester.wdgt/Info.plist: New file.
* GCC Regression Tester.wdgt/Icon.png: New file.
* GCC Regression Tester.wdgt/Default.png: New file.
* README: Describe new files.
From-SVN: r107430
Mark Mitchell [Wed, 23 Nov 2005 18:46:40 +0000 (18:46 +0000)]
* update_web_docs_svn: Set @srcdir in gcc-vers.texi.
From-SVN: r107427
Mark Mitchell [Wed, 23 Nov 2005 18:08:59 +0000 (18:08 +0000)]
invoke.texi: For man pages, include gcc-vers.texi.
* doc/invoke.texi: For man pages, include gcc-vers.texi.
List @file in the option summary. Include the libiberty
documentation for @file.
* gcc.c (main): Call expandargv.
* Makefile.in (gcc-vers.texi): Define srcdir.
From-SVN: r107426
Diego Novillo [Wed, 23 Nov 2005 18:05:38 +0000 (18:05 +0000)]
passes.c (init_optimization_passes): Document sequencing of passes.
* passes.c (init_optimization_passes): Document
sequencing of passes.
From-SVN: r107425
Kazu Hirata [Wed, 23 Nov 2005 13:40:32 +0000 (13:40 +0000)]
predicates.md (pcrel_address, [...]): Remove redundant conditionals.
* config/m68k/predicates.md (pcrel_address, extend_operator,
post_inc_operand, pre_dec_operand): Remove redundant
conditionals.
(const_uint32_operand, const_sint32_operand): Use gcc_assert
instead of abort.
(valid_dbcc_comparison_p): Rewrite in the lisp style.
From-SVN: r107419
Laurent GUERBY [Wed, 23 Nov 2005 11:31:25 +0000 (11:31 +0000)]
mlib-prj.adb (Build_Library): Initialize Delete.
2005-11-23 Laurent GUERBY <laurent@guerby.net>
* mlib-prj.adb (Build_Library): Initialize Delete.
From-SVN: r107416
Alan Modra [Wed, 23 Nov 2005 10:18:11 +0000 (10:18 +0000)]
open.c (new_unit): Use the right unit number when checking for stdin, stdout, stderr.
* io/open.c (new_unit): Use the right unit number when checking
for stdin, stdout, stderr.
From-SVN: r107413
Uros Bizjak [Wed, 23 Nov 2005 08:45:09 +0000 (09:45 +0100)]
i386-1.C: Pass if CPU has no SSE2 support.
* g++.dg/other/i386-1.C: Pass if CPU has no SSE2 support.
From-SVN: r107403
Gabriel Dos Reis [Wed, 23 Nov 2005 07:07:33 +0000 (07:07 +0000)]
re PR c/21668 (gratuitous warning about "extern const" with initializer)
PR c/21668
* c-decl.c (grokdeclarator): Don't warn for 'extern const' when
compiling at the intersection of C and C++.
testsuite/
PR c/21668
* gcc.dg/Wc++-compat.c: New.
* gcc.dg/Wno-c++-compat.c: New.
From-SVN: r107401
Alan Modra [Wed, 23 Nov 2005 02:29:39 +0000 (02:29 +0000)]
altivec-consts.c (vspltisb): Use int val.
* gcc.target/powerpc/altivec-consts.c (vspltisb): Use int val.
(vspltish, vspltisw): Likewise.
From-SVN: r107398
Jerry DeLisle [Wed, 23 Nov 2005 02:14:26 +0000 (02:14 +0000)]
re PR libfortran/24794 (problem with namelist input of character array)
2005-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/24794
* gfortran.dg/namelist_12.f: Fix quotes.
* gfortran.dg/namelist_13.f90: Fix quotes.
* gfortran.dg/namelist_14.f90: Fix quotes.
* gfortran.dg/namelist_15.f90: Fix quotes.
* gfortran.dg/namelist_use.f90: Fix quotes.
* gfortran.dg/namelist_use_only.f90: Fix quotes.
* gfortran.dg/namelist_21.f90: New test.
* gfortran.dg/namelist_22.f90: New test.
From-SVN: r107396
Jerry DeLisle [Wed, 23 Nov 2005 02:02:31 +0000 (02:02 +0000)]
re PR libfortran/24794 (problem with namelist input of character array)
2005-11-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/24794
* io/list_read.c (read_character): Add auto completion on short
namelist reads.
From-SVN: r107394
GCC Administrator [Wed, 23 Nov 2005 00:17:35 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r107390
Ben Elliston [Wed, 23 Nov 2005 00:07:23 +0000 (00:07 +0000)]
* dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
From-SVN: r107384
J"orn Rennecke [Tue, 22 Nov 2005 22:57:35 +0000 (22:57 +0000)]
Preparatory work for PR target/21623:
* alpha.c (secondary_reload_class): Rename to:
(alpha_secondary_reload_class).
* alpha.h, alpha-protos.h: Likewise.
* mn10300.c (secondary_reload_class): Rename to:
(mn10300_secondary_reload_class).
* mn10300.h, mn10300-protos.h: Likewise.
* pa.c (secondary_reload_class): Rename to:
(pa_secondary_reload_class).
* pa.h, pa-protos.h: Likewise.
* rs6000.c (secondary_reload_class): Rename to:
rs6000_secondary_reload_class.
* rs6000.h, rs6000-protos.h: Likewise.
From-SVN: r107381
David Edelsohn [Tue, 22 Nov 2005 22:45:10 +0000 (22:45 +0000)]
io.h (_LARGE_FILES): Undefine for AIX.
* io/io.h (_LARGE_FILES): Undefine for AIX.
(_LARGE_FILE_API): Define for AIX.
From-SVN: r107380
Eric Botcazou [Tue, 22 Nov 2005 22:38:13 +0000 (22:38 +0000)]
Fix bogus date.
From-SVN: r107379
Eric Botcazou [Tue, 22 Nov 2005 22:35:55 +0000 (22:35 +0000)]
re PR middle-end/22561 (ACATS
ca11c01 wrong code)
PR middle-end/22561
* tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
From-SVN: r107377
Ian Lance Taylor [Tue, 22 Nov 2005 21:25:52 +0000 (21:25 +0000)]
optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not a mode_class.
* optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
a mode_class.
(prepare_cmp_insn): Likewise.
From-SVN: r107375
Kazu Hirata [Tue, 22 Nov 2005 20:42:54 +0000 (20:42 +0000)]
re PR target/23435 (Unrecognizable insn (in extract_insn, at recog.c))
gcc/
PR target/23435
* m68k.md (zero_extendsidi2): Force operands[1] to a register
if both operands[0] and operands[1] are memory.
gcc/testsuite/
PR target/23435
* gcc.c-torture/compile/pr23435.c: New.
From-SVN: r107373
Kean Johnston [Tue, 22 Nov 2005 20:41:02 +0000 (20:41 +0000)]
Sync config.{sub,guess} from upstream sources
From-SVN: r107372
Janis Johnson [Tue, 22 Nov 2005 20:35:51 +0000 (20:35 +0000)]
libmudflap.exp (libmudflap-init): Remove -static from MUDFLAP_FLAGS if static library not supported.
* testsuite/lib/libmudflap.exp (libmudflap-init): Remove -static from
MUDFLAP_FLAGS if static library not supported.
* testsuite/libmudflap.c/cfrags.exp (MUDFLAP_FLAGS): new.
* testsuite/libmudflap.c/externs.exp: Ditto.
* testsuite/libmudflap.c++/ctors.exp: Ditto.
* testsuite/libmudflap.c++/c++frags.exp: Ditto.
* testsuite/libmudflap.cth/cthfrags.exp: Ditto.
From-SVN: r107371
Andrew Pinski [Tue, 22 Nov 2005 19:22:21 +0000 (19:22 +0000)]
re PR middle-end/23606 (fold does not fold (type)(a == b) into a == b (with type as the type))
2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/23606
* fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
COMPARISON_CLASS_P and an integral types create create a new
expression with the new type and fold that.
From-SVN: r107370
Andrew Pinski [Tue, 22 Nov 2005 19:05:51 +0000 (19:05 +0000)]
objcp-decl.c (objcp_lookup_name): Remove.
2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
* objcp-decl.c (objcp_lookup_name): Remove.
* objcp-decl.h (objcp_lookup_name): Delete.
(lookup_name): Kill define.
From-SVN: r107369
Andrew Pinski [Tue, 22 Nov 2005 18:58:05 +0000 (18:58 +0000)]
re PR target/24988 (gfortran build fails with - Undefined symbols)
2005-11-22 Andrew Pinski <pinskia@physics.uc.edu>
PR target/24988
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
to SUBTARGET_OS_CPP_BUILTINS.
From-SVN: r107368
Gabriel Dos Reis [Tue, 22 Nov 2005 17:04:12 +0000 (17:04 +0000)]
re PR c++/22238 (Awful error messages with virtual functions)
PR c++/22238
* error.c (resolve_virtual_fun_from_obj_type_ref): New.
(dump_expr): Use it in <case CALL_EXPR>.
From-SVN: r107366
Paolo Carlini [Tue, 22 Nov 2005 14:53:03 +0000 (14:53 +0000)]
re PR libstdc++/24975 (Aliasing problems inside libstdc++)
2005-11-22 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24975
* include/bits/stl_set.h (insert(iterator, const value_type&),
erase(iterator), erase(iterator, iterator)): Don't break aliasing
rules casting to _Rep_iterator&, forward to _Rb_tree facilities.
* include/bits/stl_multiset.h (insert(iterator, const value_type&),
erase(iterator), erase(iterator, iterator)): Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::_M_insert(_Const_Base_ptr,
_Const_Base_ptr, const value_type&), insert_unique(const_iterator,
const value_type&), insert_equal(const_iterator, const value_type&),
erase(const_iterator), erase(const_iterator, const_iterator)): New,
_Rb_tree<>::const_iterator counterparts of existing facilities.
From-SVN: r107362
Richard Earnshaw [Tue, 22 Nov 2005 14:30:10 +0000 (14:30 +0000)]
arm.c (emit_set_insn): New function.
* arm.c (emit_set_insn): New function.
(arm_split_constant): Call it.
(arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
(arm_legitimize_address): Likewise. Use plus_constant.
(arm_expand_prologue): Likewise. Use VOIDmode in SET.
(thumb_expand_prologue): Likewise.
(arm_gen_load_multiple): Use VOIDmode in SET.
(arm_gen_store_multiple): Likewise.
(vfp_emit_fstmx): Likewise. Use plus_constant.
(emit_multi_reg_push): Likewise.
(emit_sfm): Use plus_constant.
From-SVN: r107361
Alan Modra [Tue, 22 Nov 2005 14:23:01 +0000 (14:23 +0000)]
re PR target/24954 (ICE: could not split insn)
PR target/24954
* config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
typo last change.
From-SVN: r107359
Alan Modra [Tue, 22 Nov 2005 13:16:29 +0000 (13:16 +0000)]
re PR middle-end/24950 (ICE in operand_subword_force)
PR middle-end/24950
* expmed.c (store_bit_field): Don't attempt to insv a field
larger than the reg.
From-SVN: r107354
Alan Modra [Tue, 22 Nov 2005 13:00:06 +0000 (13:00 +0000)]
re PR target/24954 (ICE: could not split insn)
PR target/24954
* config/rs6000/predicated.md (easy_vector_constant_add_self): Use
explicit sign extension, not a (char) cast.
From-SVN: r107352
Benjamin Kosnik [Tue, 22 Nov 2005 06:54:08 +0000 (06:54 +0000)]
re PR libstdc++/23591 (exceptions in plugins in threads cause segmentation violation by leaving bad exit handler for the pthread)
2005-11-21 Benjamin Kosnik <bkoz@redhat.com>
Ulrich Drepper <drepper@redhat.com>
PR libstdc++/23591
* scripts/create_testsuite_files: Support for "C" test files.
* testsuite/lib/libstdc++.exp: Same.
* testsuite/libstdc++-dg/normal.exp: Same.
* testsuite/ext/mt_allocator/22309_thread.cc: Update names.
* testsuite/19_diagnostics/23591_thread-1.c: New.
* testsuite/testsuite_shared.cc: Add tests, rename existing functions.
* libsupc++/eh_globals.cc: Make global thread local if possible.
* configure.ac: Use GCC_CHECK_TLS.
* acinclude.m4: Include tls.m4.
* configure: Regenerate.
* config.h.in: Same.
Co-Authored-By: Ulrich Drepper <drepper@redhat.com>
From-SVN: r107350
Ben Elliston [Tue, 22 Nov 2005 05:19:29 +0000 (05:19 +0000)]
optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing GET_MODE_CLASS (x) ==...
* optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
GET_MODE_CLASS (x) == MODE_FLOAT.
* config/i386/i386.c: Likewise.
* config/rs6000/xcoff.h: Likewise.
* config/rs6000/linux64.h: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/rs6000/predicates.md: Likewise.
* config/rs6000/sysv4.h: Likewise.
From-SVN: r107348
Kaveh R. Ghazi [Tue, 22 Nov 2005 03:09:59 +0000 (03:09 +0000)]
c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when flag_pic is set.
* c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
flag_pic is set.
* config/alpha/freebsd.h, config/alpha/linux.h,
config/arm/linux-elf.h, config/bfin/bfin.h,
config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
config/i386/beos-elf.h, config/i386/gnu.h,
config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
config/rs6000/linux64.h, config/rs6000/sysv4.h,
config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
config/sh/linux.h, config/sh/sh.h, config/sol2.h,
config/sparc/linux.h, config/sparc/linux64.h,
config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
* doc/invoke.texi: Document that the macros __pic__ and __PIC__
are both defined when either flag -fpic or -fPIC are used.
From-SVN: r107347
Joseph Myers [Tue, 22 Nov 2005 00:38:30 +0000 (00:38 +0000)]
fp-bit.c (clzusi): New function.
* config/fp-bit.c (clzusi): New function.
(si_to_float, usi_to_float): Use it to compute proper shift.
(usi_to_float): Preserve guard bits when shifting right.
* libgcc-std.ver (GCC_4.2.0): New version.
* libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
__floatundisf): New functions.
* libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
__floatundisf): Declare.
* mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
_floatundixf, and _floatunditf.
* optabs.c (expand_float): If target does not define a pattern for
signed or unsigned conversion, use an unsigned libcall instead of
a signed one.
(init_optabs): Initialize ufloat_optab.
testsuite:
* gcc.c-torture/execute/floatunsisf-1.c: New test.
From-SVN: r107345
Joseph Myers [Tue, 22 Nov 2005 00:35:48 +0000 (00:35 +0000)]
rs6000.opt (mmulhw): New option.
* config/rs6000/rs6000.opt (mmulhw): New option.
* doc/invoke.texi (-mmulhw): Document.
* config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
for 405 and 440.
* config/rs6000/rs6000.md: Add half-word multiply and
multiply-accumulate instructions for 405 and 440.
testsuite:
* gcc.target/powerpc/405-macchw-1.c,
gcc.target/powerpc/405-macchw-2.c,
gcc.target/powerpc/405-macchwu-1.c,
gcc.target/powerpc/405-macchwu-2.c,
gcc.target/powerpc/405-machhw-1.c,
gcc.target/powerpc/405-machhw-2.c,
gcc.target/powerpc/405-machhwu-1.c,
gcc.target/powerpc/405-machhwu-2.c,
gcc.target/powerpc/405-maclhw-1.c,
gcc.target/powerpc/405-maclhw-2.c,
gcc.target/powerpc/405-maclhwu-1.c,
gcc.target/powerpc/405-maclhwu-2.c,
gcc.target/powerpc/405-mulchw-1.c,
gcc.target/powerpc/405-mulchw-2.c,
gcc.target/powerpc/405-mulchwu-1.c,
gcc.target/powerpc/405-mulchwu-2.c,
gcc.target/powerpc/405-mulhhw-1.c,
gcc.target/powerpc/405-mulhhw-2.c,
gcc.target/powerpc/405-mulhhwu-1.c,
gcc.target/powerpc/405-mulhhwu-2.c,
gcc.target/powerpc/405-mullhw-1.c,
gcc.target/powerpc/405-mullhw-2.c,
gcc.target/powerpc/405-mullhwu-1.c,
gcc.target/powerpc/405-mullhwu-2.c,
gcc.target/powerpc/405-nmacchw-1.c,
gcc.target/powerpc/405-nmacchw-2.c,
gcc.target/powerpc/405-nmachhw-1.c,
gcc.target/powerpc/405-nmachhw-2.c,
gcc.target/powerpc/405-nmaclhw-1.c,
gcc.target/powerpc/405-nmaclhw-2.c,
gcc.target/powerpc/440-macchw-1.c,
gcc.target/powerpc/440-macchw-2.c,
gcc.target/powerpc/440-macchwu-1.c,
gcc.target/powerpc/440-macchwu-2.c,
gcc.target/powerpc/440-machhw-1.c,
gcc.target/powerpc/440-machhw-2.c,
gcc.target/powerpc/440-machhwu-1.c,
gcc.target/powerpc/440-machhwu-2.c,
gcc.target/powerpc/440-maclhw-1.c,
gcc.target/powerpc/440-maclhw-2.c,
gcc.target/powerpc/440-maclhwu-1.c,
gcc.target/powerpc/440-maclhwu-2.c,
gcc.target/powerpc/440-mulchw-1.c,
gcc.target/powerpc/440-mulchw-2.c,
gcc.target/powerpc/440-mulchwu-1.c,
gcc.target/powerpc/440-mulchwu-2.c,
gcc.target/powerpc/440-mulhhw-1.c,
gcc.target/powerpc/440-mulhhw-2.c,
gcc.target/powerpc/440-mulhhwu-1.c,
gcc.target/powerpc/440-mulhhwu-2.c,
gcc.target/powerpc/440-mullhw-1.c,
gcc.target/powerpc/440-mullhw-2.c,
gcc.target/powerpc/440-mullhwu-1.c,
gcc.target/powerpc/440-mullhwu-2.c,
gcc.target/powerpc/440-nmacchw-1.c,
gcc.target/powerpc/440-nmacchw-2.c,
gcc.target/powerpc/440-nmachhw-1.c,
gcc.target/powerpc/440-nmachhw-2.c,
gcc.target/powerpc/440-nmaclhw-1.c,
gcc.target/powerpc/440-nmaclhw-2.c: New tests.
From-SVN: r107344
Benjamin Kosnik [Tue, 22 Nov 2005 00:19:07 +0000 (00:19 +0000)]
del_op.cc: Include c++config.h first.
2005-11-21 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/del_op.cc: Include c++config.h first.
* libsupc++/eh_alloc.cc: Same.
* libsupc++/new_opv.cc: Same.
* libsupc++/eh_throw.cc: Same.
* libsupc++/new_op.cc: Same.
* libsupc++/del_opv.cc: Same.
* libsupc++/eh_catch.cc: Same.
* libsupc++/guard.cc: Same.
* libsupc++/del_opnt.cc: Same.
* libsupc++/eh_exception.cc: Same.
* libsupc++/new_opvnt.cc: Same.
* libsupc++/eh_term_handler.cc: Same.
* libsupc++/eh_personality.cc: Same.
* libsupc++/eh_call.cc: Same.
* libsupc++/new_opnt.cc: Same.
* libsupc++/del_opvnt.cc: Same.
2005-11-21 Benjamin Kosnik <bkoz@redhat.com>
* src/Makefile.am (LTCXXCOMPILE): CXXFLAGS last.
* libsupc++/Makefile.am: Same.
* src/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Same.
From-SVN: r107343
GCC Administrator [Tue, 22 Nov 2005 00:17:35 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r107340
Joel Sherrill [Mon, 21 Nov 2005 23:31:50 +0000 (23:31 +0000)]
socket.c: Add extern int h_errno for rtems since networking header files are not...
2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
* socket.c: Add extern int h_errno for rtems since networking header
files are not available at this point in a tool bootstrap. Newlib
only has basic C library header files.
From-SVN: r107331
Joel Sherrill [Mon, 21 Nov 2005 22:56:34 +0000 (22:56 +0000)]
rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC which matches behavior of gcc 4.0...
2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
* config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
which matches behavior of gcc 4.0 and older for RTEMS targets. The
default now includes a linker group which makes the RTEMS one nest.
From-SVN: r107329
Jakub Jelinek [Mon, 21 Nov 2005 22:03:56 +0000 (23:03 +0100)]
re PR fortran/14943 (read/write code generation is not thread safe)
gcc/fortran/
PR fortran/14943
PR fortran/21647
* Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
* dump-parse-tree.c (gfc_show_code_node): Dump c->block for
EXEC_{READ,WRITE,IOLENGTH} nodes.
* io.c (terminate_io, match_io, gfc_match_inquire): Put data
transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
* resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
* trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
ioparm_list_format, ioparm_library_return, ioparm_iostat,
ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
ioparm_position, ioparm_position_len, ioparm_action,
ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
ioparm_advance_len, ioparm_name, ioparm_name_len,
ioparm_internal_unit, ioparm_internal_unit_len,
ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
ioparm_direct, ioparm_direct_len, ioparm_formatted,
ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
ioparm_iomsg_len, ioparm_var): Remove.
(enum ioparam_type, enum iofield_type, enum iofield,
enum iocall): New enums.
(gfc_st_parameter_field, gfc_st_parameter): New typedefs.
(st_parameter, st_parameter_field, iocall): New variables.
(ADD_FIELD, ADD_STRING): Remove.
(dt_parm, dt_post_end_block): New variables.
(gfc_build_st_parameter): New function.
(gfc_build_io_library_fndecls): Use it. Initialize iocall
array rather than ioparm_*, add extra first arguments to
the function types.
(set_parameter_const): New function.
(set_parameter_value): Add type argument, return a bitmask.
Changed to set a field in automatic structure variable rather
than set a field in a global _gfortran_ioparm variable.
(set_parameter_ref): Likewise. If requested var has different
size than what field should point to, call with a temporary and
then copy into the user variable. Add postblock argument.
(set_string): Remove var_len argument, add type argument, return
a bitmask. Changed to set fields in automatic structure variable
rather than set a field in a global _gfortran_ioparm variable.
(set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
add var argument. Return a bitmask. Changed to set fields in
automatic structure variable rather than set a field in a global
_gfortran_ioparm variable.
(set_flag): Removed.
(io_result): Add var argument. Changed to read common.flags field
from automatic structure variable and bitwise AND it with 3.
(set_error_locus): Add var argument. Changed to set fields in
automatic structure variable rather than set a field in a global
_gfortran_{filename,line} variables.
(gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
Create a temporary st_parameter_* structure. Adjust callers of
all above mentioned functions. Pass address of the temporary
variable as first argument to the generated function call.
Use iocall array rather than ioparm_* separate variables.
(gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
(build_dt): Likewise. Change first argument to tree from tree *.
Don't dereference code->ext.dt if last_dt == INQUIRE. Emit
IOLENGTH argument setup here. Set dt_parm/dt_post_end_block
variables and gfc_trans_code the nested data transfer commands
in code->block.
(gfc_trans_iolength): Just set last_dt and call build_dt immediately.
(transfer_namelist_element): Pass address of dt_parm variable
to generated functions. Use iocall array rather than ioparm_*
separate variables.
(gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
rather than ioparm_* separate variables.
(gfc_trans_dt_end): Likewise. Pass address of dt_parm variable
as first argument to generated function. Adjust io_result caller.
Prepend dt_post_end_block before io_result code.
(transfer_expr): Use iocall array rather than ioparm_* separate
variables. Pass address of dt_parm variables as first argument
to generated functions.
* ioparm.def: New file.
gcc/testsuite/
PR fortran/24774
* gfortran.dg/inquire_9.f90: New test.
PR fortran/21647
* gfortran.fortran-torture/execute/inquire_5.f90: New test.
libgfortran/
PR fortran/24774
PR fortran/14943
PR fortran/21647
* Makefile.am (AM_CPPFLAGS): Add gcc directories as -I paths,
add -D_GNU_SOURCE.
* Makefile.in: Regenerated.
* acinclude.m4 (LIBGFOR_CHECK_SYNC_FETCH_AND_ADD,
LIBGFOR_CHECK_GTHR_DEFAULT, LIBGFOR_CHECK_PRAGMA_WEAK): New macros.
* configure.ac: Add them.
* configure: Rebuilt.
* config.h.in: Rebuilt.
* libtool-version: Bump libgfortran.so SONAME to libgfortran.so.1.
* libgfortran.h (library_start, show_locus, internal_error,
generate_error, find_option): Add st_parameter_common * argument.
(library_end): Change into a dummy macro.
* io/io.h: Include gthr.h.
(SUPPORTS_WEAK): Define if HAVE_PRAGMA_WEAK.
(CHARACTER): Remove define.
(st_parameter, global_t): Remove typedef.
(ioparm, g, ionml, current_unit): Remove variables.
(init_error_stream): Remove prototype.
(CHARACTER1, CHARACTER2): Define.
(st_parameter_common, st_parameter_open, st_parameter_close,
st_parameter_filepos, st_parameter_inquire, st_parameter_dt): New
typedefs.
(IOPARM_LIBRETURN_MASK, IOPARM_LIBRETURN_OK, IOPARM_LIBRETURN_ERROR,
IOPARM_LIBRETURN_END, IOPARM_LIBRETURN_EOR, IOPARM_ERR, IOPARM_END,
IOPARM_EOR, IOPARM_HAS_IOSTAT, IOPARM_HAS_IOMSG, IOPARM_COMMON_MASK,
IOPARM_OPEN_HAS_RECL_IN, IOPARM_OPEN_HAS_FILE, IOPARM_OPEN_HAS_STATUS,
IOPARM_OPEN_HAS_ACCESS, IOPARM_OPEN_HAS_FORM, IOPARM_OPEN_HAS_BLANK,
IOPARM_OPEN_HAS_POSITION, IOPARM_OPEN_HAS_ACTION,
IOPARM_OPEN_HAS_DELIM, IOPARM_OPEN_HAS_PAD, IOPARM_CLOSE_HAS_STATUS,
IOPARM_INQUIRE_HAS_EXIST, IOPARM_INQUIRE_HAS_OPENED,
IOPARM_INQUIRE_HAS_NUMBER, IOPARM_INQUIRE_HAS_NAMED,
IOPARM_INQUIRE_HAS_NEXTREC, IOPARM_INQUIRE_HAS_RECL_OUT,
IOPARM_INQUIRE_HAS_FILE, IOPARM_INQUIRE_HAS_ACCESS,
IOPARM_INQUIRE_HAS_FORM, IOPARM_INQUIRE_HAS_BLANK,
IOPARM_INQUIRE_HAS_POSITION, IOPARM_INQUIRE_HAS_ACTION,
IOPARM_INQUIRE_HAS_DELIM, IOPARM_INQUIRE_HAS_PAD,
IOPARM_INQUIRE_HAS_NAME, IOPARM_INQUIRE_HAS_SEQUENTIAL,
IOPARM_INQUIRE_HAS_DIRECT, IOPARM_INQUIRE_HAS_FORMATTED,
IOPARM_INQUIRE_HAS_UNFORMATTED, IOPARM_INQUIRE_HAS_READ,
IOPARM_INQUIRE_HAS_WRITE, IOPARM_INQUIRE_HAS_READWRITE,
IOPARM_DT_LIST_FORMAT, IOPARM_DT_NAMELIST_READ_MODE,
IOPARM_DT_HAS_REC, IOPARM_DT_HAS_SIZE, IOPARM_DT_HAS_IOLENGTH,
IOPARM_DT_HAS_FORMAT, IOPARM_DT_HAS_ADVANCE,
IOPARM_DT_HAS_INTERNAL_UNIT, IOPARM_DT_HAS_NAMELIST_NAME,
IOPARM_DT_IONML_SET): Define.
(gfc_unit): Add lock, waiting and close fields. Change file
from flexible array member into pointer to char.
(open_external): Add st_parameter_open * argument.
(find_file, file_exists): Add file and file_len arguments.
(flush_all_units): New prototype.
(max_offset, unit_root, unit_lock): New variable.
(is_internal_unit, is_array_io, next_array_record,
parse_format, next_format, unget_format, format_error,
read_block, write_block, next_record, convert_real,
read_a, read_f, read_l, read_x, read_radix, read_decimal,
list_formatted_read, finish_list_read, namelist_read,
namelist_write, write_a, write_b, write_d, write_e, write_en,
write_es, write_f, write_i, write_l, write_o, write_x, write_z,
list_formatted_write, get_unit): Add st_parameter_dt * argument.
(insert_unit): Remove prototype.
(find_or_create_unit, unlock_unit): New prototype.
(new_unit): Return gfc_unit *. Add st_parameter_open *
and gfc_unit * arguments.
(free_fnodes): Remove prototype.
(free_format_data): New prototype.
(scratch): Remove.
(init_at_eol): Remove prototype.
(free_ionml): New prototype.
(inc_waiting_locked, predec_waiting_locked, dec_waiting_unlocked):
New inline functions.
* io/unit.c (max_offset, unit_root, unit_lock): New variables.
(insert): Adjust os_error caller.
(insert_unit): Made static. Allocate memory here, initialize
lock and after inserting it return it, locked.
(delete_unit): Adjust for deletion of g.
(find_unit_1): New function.
(find_unit): Use it.
(find_or_create_unit): New function.
(get_unit): Add dtp argument, change meaning of the int argument
as creation request flag. Adjust for different st_* calling
conventions, lock internal unit's lock before returning it
and removal of g. Call find_unit_1 instead of find_unit.
(is_internal_unit, is_array_io): Add dtp argument, adjust for
removal of most of global variables.
(init_units): Initialize unit_lock. Adjust insert_unit callers
and adjust for g removal.
(close_unit_1): New function.
(close_unit): Use it.
(unlock_unit): New function.
(close_units): Lock unit_lock, use close_unit_1 rather than
close_unit.
* io/close.c (st_close): Add clp argument. Adjust for new
st_* calling conventions and internal function API changes.
* io/file_pos.c (st_backspace, st_endfile, st_rewind, st_flush):
Add fpp argument. Adjust for new st_* calling conventions and
internal function API changes.
(formatted_backspace, unformatted_backspace): Likewise. Add
u argument.
* io/open.c (edit_modes, st_open): Add opp argument. Adjust for
new st_* calling conventions and internal function API changes.
(already_open): Likewise. If not HAVE_UNLINK_OPEN_FILE, unlink
scratch file. Instead of calling close_unit just call sclose,
free u->file if any and clear a few u fields before calling
new_unit.
(new_unit): Return gfc_unit *. Add opp and u arguments.
Adjust for new st_* calling conventions and internal function
API changes. Don't allocate unit here, rather than work with
already created unit u already locked on entry. In case
of failure, close_unit it.
* io/unix.c: Include unix.h.
(BUFFER_SIZE, unix_stream): Moved to unix.h.
(unit_to_fd): Add unlock_unit call.
(tempfile): Add opp argument, use its fields rather than ioparm.
(regular_file): Likewise.
(open_external): Likewise. Only unlink file if fd >= 0.
(init_error_stream): Add error argument, set structure it points
to rather than filling static variable and returning its address.
(FIND_FILE0_DECL, FIND_FILE0_ARGS): Define.
(find_file0): Use them. Don't crash if u->s == NULL.
(find_file): Add file and file_len arguments, use them instead
of ioparm. Add locking. Pass either an array of 2 struct stat
or file and file_len pair to find_file0.
(flush_all_units_1, flush_all_units): New functions.
(file_exists): Add file and file_len arguments, use them instead
of ioparm.
* io/unix.h: New file.
* io/lock.c (ioparm, g, ionml): Remove variables.
(library_start): Add cmp argument, adjust for new st_* calling
conventions.
(library_end): Remove.
(free_ionml): New function.
* io/inquire.c (inquire_via_unit, inquire_via_filename,
st_inquire): Add iqp argument, adjust for new st_* calling
conventions and internal function API changes.
* io/format.c (FARRAY_SIZE): Decrease to 64.
(fnode_array, format_data): New typedefs.
(avail, array, format_string, string, error, saved_token, value,
format_string_len, reversion_ok, saved_format): Remove variables.
(colon_node): Add const.
(free_fnode, free_fnodes): Remove.
(free_format_data): New function.
(next_char, unget_char, get_fnode, format_lex, parse_format_list,
format_error, parse_format, revert, unget_format, next_test): Add
fmt or dtp arguments, pass it all around, adjust for internal
function API changes and adjust for removal of global variables.
(next_format): Likewise. Constify return type.
(next_format0): Constify return type.
* io/transfer.c (current_unit, sf_seen_eor, eor_condition, max_pos,
skips, pending_spaces, scratch, line_buffer, advance_status,
transfer): Remove variables.
(transfer_integer, transfer_real, transfer_logical,
transfer_character, transfer_complex, transfer_array, current_mode,
read_sf, read_block, read_block_direct, write_block,
write_block_direct, unformatted_read, unformatted_write,
type_name, write_constant_string, require_type,
formatted_transfer_scalar, us_read, us_write, pre_position,
data_transfer_init, next_record_r, next_record_w, next_record,
finalize_transfer, iolength_transfer, iolength_transfer_init,
st_iolength, st_iolength_done, st_read, st_read_done, st_write,
st_write_done, st_set_nml_var, st_set_nml_var_dim,
next_array_record): Add dtp argument, pass it all around, adjust for
internal function API changes and removal of global variables.
* io/list_read.c (repeat_count, saved_length, saved_used,
input_complete, at_eol, comma_flag, last_char, saved_string,
saved_type, namelist_mode, nml_read_error, value, parse_err_msg,
nml_err_msg, prev_nl): Remove variables.
(push_char, free_saved, next_char, unget_char, eat_spaces,
eat_separator, finish_separator, nml_bad_return, convert_integer,
parse_repeat, read_logical, read_integer, read_character,
parse_real, read_complex, read_real, check_type,
list_formatted_read_scalar, list_formatted_read, finish_list_read,
find_nml_node, nml_untouch_nodes, nml_match_name, nml_query,
namelist_read): Add dtp argument, pass it all around, adjust for
internal function API changes and removal of global variables.
(nml_parse_qualifier): Likewise. Add parse_err_msg argument.
(nml_read_obj): Likewise. Add pprev_nl, nml_err_msg, clow and
chigh arguments.
(nml_get_obj_data): Likewise. Add pprev_nl and nml_err_msg
arguments.
(init_at_eol): Removed.
* io/read.c (convert_real, read_l, read_a, next_char, read_decimal,
read_radix, read_f, read_x): Add dtp argument, pass it all around,
adjust for internal function API changes and removal of global
variables.
(set_integer): Adjust internal_error caller.
* io/write.c (no_leading_blank, nml_delim): Remove variables.
(write_a, calculate_sign, calculate_G_format, output_float,
write_l, write_float, write_int, write_decimal, write_i, write_b,
write_o, write_z, write_d, write_e, write_f, write_en, write_es,
write_x, write_char, write_logical, write_integer, write_character,
write_real, write_complex, write_separator,
list_formatted_write_scalar, list_formatted_write, nml_write_obj,
namelist_write): Add dtp argument, pass it all around, adjust for
internal function API changes and removal of global variables.
(extract_int, extract_uint, extract_real): Adjust internal_error
callers.
* runtime/fpu.c (_GNU_SOURCE): Don't define here.
* runtime/error.c: Include ../io/unix.h.
(filename, line): Remove variables.
(st_printf): Pass address of a local variable to init_error_stream.
(show_locus): Add cmp argument. Use fields it points to rather than
filename and line variables.
(os_error, runtime_error): Remove show_locus calls.
(internal_error): Add cmp argument. Pass it down to show_locus.
(generate_error): Likewise. Use flags bitmask instead of non-NULL
check for iostat and iomsg parameter presence, adjust for st_*
calling convention changes.
* runtime/stop.c (stop_numeric, stop_string): Remove show_locus
calls.
* runtime/pause.c (pause_numeric, pause_string): Likewise.
* runtime/string.c: Include ../io/io.h.
(find_option): Add cmp argument. Pass it down to generate_error.
* intrinsics/flush.c (recursive_flush): Remove.
(flush_i4, flush_i8): Use flush_all_units. Add unlock_unit
call.
* intrinsics/rand.c: Include ../io/io.h.
(rand_seed_lock): New variable.
(srand, irand): Add locking.
(init): New constructor function.
* intrinsics/random.c: Include ../io/io.h.
(random_lock): New variable.
(random_r4, random_r8, arandom_r4, arandom_r8): Add locking.
(random_seed): Likewise. open failed if fd < 0. Set i correctly.
(init): New constructor function.
* intrinsics/system_clock.c (tp0, t0): Remove.
(system_clock_4, system_clock_8): Don't subtract tp0/t0 from current
time, use just integer arithmetics.
* intrinsics/tty.c (isatty_l4, isatty_l8, ttynam_sub): Add
unlock_unit calls.
From-SVN: r107328
Ben Elliston [Mon, 21 Nov 2005 21:29:23 +0000 (21:29 +0000)]
cse.c (fold_rtx): Typo fix.
* cse.c (fold_rtx): Typo fix.
(find_comparison_args): Pass the mode of arg1, not arg1 itself.
From-SVN: r107326
Richard Henderson [Mon, 21 Nov 2005 21:27:29 +0000 (13:27 -0800)]
c-common.c, [...]: Revert 2005-11-18 lookup_name patch.
gcc/
* c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
* c-tree.h (lookup_name): Move declaration ...
* c-common.h (lookup_name): ... here.
* config/darwin-c.c: Include c-common.h.
* config/t-darwin: Update dependencies.
gcc/cp/
* cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
* name-lookup.c (lookup_name): Remove prefer_type argument.
(lookup_name_prefer_type): New.
* decl.c (lookup_and_check_tag): Use them.
* pt.c (tsubst_friend_class): Likewise.
(lookup_template_class): Likewise.
(tsubst_copy_and_build): Likewise.
* name-lookup.h (lookup_name_prefer_type): New.
(lookup_name): Remove declaration.
From-SVN: r107325
Ben Elliston [Mon, 21 Nov 2005 20:53:27 +0000 (20:53 +0000)]
optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of explicitly testing GET_MODE_CLASS (x) ==...
* optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
* genopinit.c (gen_insn): Likewise.
* reload.c (find_equiv_reg): Likewise.
* loop.c (load_mems): Likewise.
* rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
* cse.c (find_comparison_args, fold_rtx): Likewise.
* dwarf2out.c (add_const_value_attribute): Likewise.
* expr.c (convert_move): Likewise.
* recog.c (general_operand, register_operand): Likewise.
* reg-stack.c (replace_reg): Likewise.
* tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
* c-common.c (handle_vector_size_attribute): Likewise.
* simplify-rtx.c (simplify_const_unary_operation): Likewise.
(simplify_binary_operation_1): Likewise.
(simplify_const_binary_operation): Likewise.
(simplify_relational_operation): Likewise.
(simplify_const_relational_operation): Likewise.
(simplify_immed_subreg): Likewise.
* emit-rtl.c (gen_lowpart_common): Likewise.
* expmed.c (expand_mult): Likewise.
* stor-layout.c (layout_type): Likewise.
From-SVN: r107322
Eric Botcazou [Mon, 21 Nov 2005 20:52:25 +0000 (21:52 +0100)]
re PR libfortran/24432 (Missing symbols)
PR libfortran/24432
* lib/target-supports.exp (check_effective_target_fortran_large_real):
Check that 'cos' is supported.
From-SVN: r107321
Paolo Carlini [Mon, 21 Nov 2005 18:38:05 +0000 (18:38 +0000)]
sso_string_base.h: Minor formatting and stylistic fixes.
2005-11-21 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h: Minor formatting and stylistic fixes.
(__sso_string_base<>::_M_get_allocator): Return by const ref.
* include/ext/rc_string_base.h: Likewise.
(__rc_string_base<>::_M_get_allocator): Return by const ref.
(__rc_string_base<>::_M_dispose): Take void, use _M_get_allocator.
(__rc_string_base<>::_M_grab): Take one alloc, use _M_get_allocator.
(__rc_string_base<>::~__rc_string_base,
__rc_string_base(const __rc_string_base&), _M_assign, _M_reserve,
_M_mutate): Adjust.
* include/ext/vstring_util.h: Minor stylistic fixes.
From-SVN: r107317
Paolo Bonzini [Mon, 21 Nov 2005 16:38:13 +0000 (16:38 +0000)]
re PR target/24951 (ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c)
2005-11-21 Paolo Bonzini <bonzini@gnu.org>
PR target/24951
* config/rs6000/rs6000.c (output_vec_const_move): Load cst and
cst2 only for SPE vectors.
From-SVN: r107312
David Edelsohn [Mon, 21 Nov 2005 16:12:32 +0000 (16:12 +0000)]
re PR target/24953 (RTL check: access of elt 1 of vector with last elt 0 in vrsave_operation_1, at config/rs6000/predicates.md:1041)
PR target/24953
* config/rs6000/predicates.md (vrsave_operation): Check
UNSPEC_VOLATILE value.
From-SVN: r107311
Paul Thomas [Mon, 21 Nov 2005 16:05:58 +0000 (16:05 +0000)]
re PR fortran/24223 (Gfortran crashes in two places)
2005-11-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24223
* resolve.c (resolve_contained_fntype) Error if an internal
function is assumed character length.
PR fortran/24705
* trans-decl.c (gfc_create_module_variable) Skip ICE in
when backend decl has been built and the symbol is marked
as being in an equivalence statement.
2005-11-21 Paul Thomas <pault@gcc.gnu.org
PR fortran/24223
* gfortran.dg/substring_equivalence.f90: New test.
PR fortran/24705
* gfortran.dg/auto_internal_assumed.f90: New test.
From-SVN: r107310
Jan Hubicka [Mon, 21 Nov 2005 13:14:02 +0000 (14:14 +0100)]
re PR tree-optimization/24653 (EON regressed seriously on x86-64)
PR tree-optimization/24653
* tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
From-SVN: r107304
Uros Bizjak [Mon, 21 Nov 2005 07:55:31 +0000 (08:55 +0100)]
predicates.md (ax_reg_operand): New predicate.
* config/i386/predicates.md (ax_reg_operand): New predicate.
(memory_displacement_only_operand): New predicate.
* config/i386/i386.md ("modrm" attribute): Return 0 if one
operand is AX register and the other operand is memory operand
with displacement only.
From-SVN: r107283
Uros Bizjak [Mon, 21 Nov 2005 07:49:47 +0000 (08:49 +0100)]
fold-const.c (fold_binary): Optimize A / A to 1.0 if we don't care about NaNs or Infinities.
* fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0
if we don't care about NaNs or Infinities.
testsuite:
* gcc.dg/fold-div-2.c: New test.
From-SVN: r107282
Ian Lance Taylor [Mon, 21 Nov 2005 05:41:36 +0000 (05:41 +0000)]
re PR rtl-optimization/24883 (fatal error: internal consistency failure building xorg-x11)
./: PR rtl-optimization/24883
* combine.c (combinable_i3pat): When checking whether the
destination of i3 is used in i3, consider paradoxical subregs.
testsuite/:
PR rtl-optimization/24883
* gcc.c-torture/compile/pr24883.c: New test.
From-SVN: r107279
Kazu Hirata [Mon, 21 Nov 2005 04:41:38 +0000 (04:41 +0000)]
re PR rtl-optimization/20583 (ICE in output_operand: invalid expression as operand)
gcc/
PR middle-end/20583
* cse.c (cse_insn): Reject invalid forms of CONST earlier.
gcc/testsuite/
PR middle-end/20583
* gcc.c-torture/compile/pr20583.c: New.
From-SVN: r107278
Ben Elliston [Mon, 21 Nov 2005 02:21:37 +0000 (02:21 +0000)]
Import from Autoconf sources:
2005-09-06 Paul Eggert <eggert@cs.ucla.edu>
* config/move-if-change: Don't output "$2 is unchanged";
suggested by Ben Elliston. Handle weird characters correctly.
From-SVN: r107275
Joseph Myers [Mon, 21 Nov 2005 01:19:00 +0000 (01:19 +0000)]
combine.c (try_combine): Do not run subst on i1src and i2src in the case of generating a PARALLEL for a...
* combine.c (try_combine): Do not run subst on i1src and i2src in
the case of generating a PARALLEL for a comparison.
From-SVN: r107273
Richard Henderson [Mon, 21 Nov 2005 00:51:39 +0000 (16:51 -0800)]
re PR tree-optimization/24931 (uninitialized structure member after assignment)
PR 24931
* tree-sra.c (struct sra_elt): Add all_no_warning.
(struct sra_walk_fns) <use>: Add use_all argument.
(sra_walk_expr): Pass it.
(sra_walk_modify_expr): Likewise.
(scalarize_ldst): Likewise.
(scan_use): Update for new argument.
(mark_no_warning): New.
(scalarize_use): Use it.
From-SVN: r107271
GCC Administrator [Mon, 21 Nov 2005 00:17:27 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r107268
Richard Henderson [Sun, 20 Nov 2005 20:35:17 +0000 (12:35 -0800)]
Makefile.am: Revert 2005-11-14 change.
* Makefile.am: Revert 2005-11-14 change. Enable -free-vectorize
via gmake per-target variables.
* Makefile.in, aclocal.m4: Regenerate.
From-SVN: r107261
Bernd Schmidt [Sun, 20 Nov 2005 18:49:18 +0000 (18:49 +0000)]
expr.c (expand_expr_real): Use usmul_optab for widening signed * unsigned multiplies.
* expr.c (expand_expr_real): Use usmul_optab for widening
signed * unsigned multiplies.
* genopinit.c (optabs): Add usmul_widen_optab.
* optabs.c (init_optabs): Likewise.
* optabs.h (enum optab_index): Add OTI_usmul_widen.
(usmul_widen_optab): Define.
* config/bfin/bfin.md (usmulhisi3): New pattern.
* doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
From-SVN: r107258
Bernd Schmidt [Sun, 20 Nov 2005 18:25:59 +0000 (18:25 +0000)]
usmul.c: New test.
* gcc.c-torture/execute/usmul.c: New test.
From-SVN: r107257
Joseph Myers [Sun, 20 Nov 2005 18:08:13 +0000 (18:08 +0000)]
* cpplib.pot: Regenerate.
From-SVN: r107256
Joseph Myers [Sun, 20 Nov 2005 18:07:15 +0000 (18:07 +0000)]
* gcc.pot: Regenerate.
From-SVN: r107255
Graham Stott [Sun, 20 Nov 2005 15:02:13 +0000 (15:02 +0000)]
gensupport.c (std_preds): Fixed extraneous `false` in last change.
* gensupport.c (std_preds): Fixed extraneous `false` in last change.
From-SVN: r107252
David Ayers [Sun, 20 Nov 2005 12:49:41 +0000 (13:49 +0100)]
re PR libobjc/19024 (name collisions libobjc/libmysqlclient)
2005-11-20 David Ayers <d.ayers@inode.at>
PR libobjc/19024
* objc/hash.h: Remove deprecated hash API.
* hash_compat.c: Remove.
* Makefile.in: Remove reference to hash_compat.c.
* configure.ac (VERSION): Bump library version to 2:0:0.
* configure: Regenerate.
From-SVN: r107251
Toon Moene [Sun, 20 Nov 2005 10:58:24 +0000 (11:58 +0100)]
invoke.texi: Remove superfluous @item.
2005-11-20 Toon Moene <toon@moene.indiv.nluug.nl>
* invoke.texi: Remove superfluous @item.
From-SVN: r107249
Andreas Schwab [Sun, 20 Nov 2005 10:43:43 +0000 (10:43 +0000)]
re PR target/24757 (__sync_fetch_and_add on ia64)
PR target/24757
* config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
insn.
From-SVN: r107246
Richard Henderson [Sun, 20 Nov 2005 05:37:08 +0000 (21:37 -0800)]
re PR tree-optimization/24665 (internal compiler error: get_indirect_ref_operands)
PR tree-opt/24665
* tree-gimple.c (is_gimple_id): Export.
* tree-gimple.h (is_gimple_id): Declare.
* tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
(get_default_value): Use it.
(maybe_fold_stmt_indirect): Likewise.
From-SVN: r107244
James A. Morrison [Sun, 20 Nov 2005 05:33:00 +0000 (05:33 +0000)]
tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less than VR1 or vice-versa.
2005-11-19 James A. Morrison <phython@gcc.gnu.org>
* tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
than VR1 or vice-versa.
From-SVN: r107243
GCC Administrator [Sun, 20 Nov 2005 00:17:16 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r107240
Hans-Peter Nilsson [Sat, 19 Nov 2005 21:56:17 +0000 (21:56 +0000)]
re PR middle-end/24912 (m68k build failure: ICE: in reload_cse_simplify_operands)
PR middle-end/24912
PR middle-end/24750
* reload.c (find_reloads_address_1): Mention dependency on
gen_reload.
* reload1.c (gen_reload): For IN with an unary operation, try
moving inner expression to OUT if trivial SET is not valid.
Confirm that the result is valid. Move common code block into...
(emit_insn_if_valid_for_reload): New function.
From-SVN: r107231
Hans-Peter Nilsson [Sat, 19 Nov 2005 21:54:26 +0000 (21:54 +0000)]
re PR middle-end/24912 (m68k build failure: ICE: in reload_cse_simplify_operands)
PR middle-end/24912
* gcc.dg/torture/pr24912-1.c: New test.
From-SVN: r107230
Richard Guenther [Sat, 19 Nov 2005 21:40:28 +0000 (21:40 +0000)]
fold-const.c (fold_indirect_ref_1): Make sure we fold ARRAY_REFs of constant strings.
2005-11-19 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_indirect_ref_1): Make sure we fold
ARRAY_REFs of constant strings.
From-SVN: r107229
Janne Blomqvist [Sat, 19 Nov 2005 21:36:06 +0000 (23:36 +0200)]
fortran ChangeLog:
2005-11-19 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/24862
* trans-io.c (gfc_trans_transfer): Handle arrays of derived type.
testsuite ChangeLog:
2005-11-19 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/24862
* gfortran.dg/arrayio_derived_1.f90: New test.
From-SVN: r107228
Jakub Jelinek [Sat, 19 Nov 2005 20:18:31 +0000 (21:18 +0100)]
gcc.c (version_compare_spec_function): Use '%s' rather than %qs in fatal format string.
* gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
fatal format string.
From-SVN: r107226
Richard Guenther [Sat, 19 Nov 2005 17:24:33 +0000 (17:24 +0000)]
re PR ada/23717 ([Ada] Wrong ICE diagnostic formatting)
2005-11-19 Richard Guenther <rguenther@suse.de>
Roger Sayle <roger@eyesopen.com>
PR ada/23717
* misc.c (internal_error_function): Don't use vsprintf to format
the error message text, instead use pp_format_text and the new
pretty printer APIs. This allows handling of %qs, %w, etc.
Co-Authored-By: Roger Sayle <roger@eyesopen.com>
From-SVN: r107223
Joseph Myers [Sat, 19 Nov 2005 12:32:23 +0000 (12:32 +0000)]
combine.c (make_compound_operation): Swap operands of commutative operation if necessary before returning.
* combine.c (make_compound_operation): Swap operands of
commutative operation if necessary before returning.
From-SVN: r107219
Richard Guenther [Sat, 19 Nov 2005 11:29:10 +0000 (11:29 +0000)]
re PR middle-end/23294 (fold does not fold a*C+a to a*(C+1) or a*C-a to a*(C-1))
2005-11-19 Richard Guenther <rguenther@suse.de>
PR middle-end/23294
* fold-const.c (fold_plusminus_mult_expr): New function.
(fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
cases, remove now unnecessary code.
* gcc.dg/tree-ssa/pr23294.c: New testcase.
From-SVN: r107218
Eric Botcazou [Sat, 19 Nov 2005 10:00:42 +0000 (10:00 +0000)]
Add comment.
From-SVN: r107217