Commit Graph

72168 Commits

Author SHA1 Message Date
Ben Elliston
94044657e9 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
2005-11-24 13:31:38 +11:00
Gabriel Dos Reis
ff6b664150 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
2005-11-24 02:02:26 +00:00
Paolo Carlini
7fdc03073c 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
2005-11-24 01:29:51 +00:00
GCC Administrator
89de9021fb Daily bump.
From-SVN: r107444
2005-11-24 00:17:11 +00:00
Ian Lance Taylor
073c7169d0 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
2005-11-23 23:08:54 +00:00
Geoffrey Keating
40f4ed784b 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
2005-11-23 20:29:09 +00:00
Mark Mitchell
c0404cf1fa * update_web_docs_svn: Set @srcdir in gcc-vers.texi.
From-SVN: r107427
2005-11-23 18:46:40 +00:00
Mark Mitchell
9d5305381f 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
2005-11-23 18:08:59 +00:00
Diego Novillo
dd97d271a4 passes.c (init_optimization_passes): Document sequencing of passes.
* passes.c (init_optimization_passes): Document
	sequencing of passes.

From-SVN: r107425
2005-11-23 13:05:38 -05:00
Kazu Hirata
4fbe09f9de 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
2005-11-23 13:40:32 +00:00
Laurent GUERBY
f8d15f1474 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
2005-11-23 11:31:25 +00:00
Alan Modra
1ed1c7ce30 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
2005-11-23 20:48:11 +10:30
Uros Bizjak
7d6c1f42b4 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
2005-11-23 09:45:09 +01:00
Gabriel Dos Reis
b8b47f4251 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
2005-11-23 07:07:33 +00:00
Alan Modra
638c5a49da altivec-consts.c (vspltisb): Use int val.
* gcc.target/powerpc/altivec-consts.c (vspltisb): Use int val.
	(vspltish, vspltisw): Likewise.

From-SVN: r107398
2005-11-23 12:59:39 +10:30
Jerry DeLisle
4cc233c411 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
2005-11-23 02:14:26 +00:00
Jerry DeLisle
c4a108fd8e 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
2005-11-23 02:02:31 +00:00
GCC Administrator
79a6d9b7ff Daily bump.
From-SVN: r107390
2005-11-23 00:17:35 +00:00
Ben Elliston
a654d1f0ed * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
From-SVN: r107384
2005-11-23 11:07:23 +11:00
J"orn Rennecke
3c4774e08c 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
2005-11-22 22:57:35 +00:00
David Edelsohn
73e5b024f8 io.h (_LARGE_FILES): Undefine for AIX.
* io/io.h (_LARGE_FILES): Undefine for AIX.
        (_LARGE_FILE_API): Define for AIX.

From-SVN: r107380
2005-11-22 17:45:10 -05:00
Eric Botcazou
0dfe2498f5 Fix bogus date.
From-SVN: r107379
2005-11-22 22:38:13 +00:00
Eric Botcazou
32961db554 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
2005-11-22 22:35:55 +00:00
Ian Lance Taylor
74b146981c 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
2005-11-22 21:25:52 +00:00
Kazu Hirata
04760127ae 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
2005-11-22 20:42:54 +00:00
Kean Johnston
b4623110c4 Sync config.{sub,guess} from upstream sources
From-SVN: r107372
2005-11-22 20:41:02 +00:00
Janis Johnson
68d67107ef 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
2005-11-22 20:35:51 +00:00
Andrew Pinski
d998dd65ec 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
2005-11-22 11:22:21 -08:00
Andrew Pinski
1c99189191 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
2005-11-22 11:05:51 -08:00
Andrew Pinski
174965f52f 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
2005-11-22 10:58:05 -08:00
Gabriel Dos Reis
7f58e7acc1 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
2005-11-22 17:04:12 +00:00
Paolo Carlini
d5e07b79f4 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
2005-11-22 14:53:03 +00:00
Richard Earnshaw
d66437c5fe 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
2005-11-22 14:30:10 +00:00
Alan Modra
8f7bb6d72c 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
2005-11-23 00:53:01 +10:30
Alan Modra
30f37b8d0c 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
2005-11-22 23:46:29 +10:30
Alan Modra
e168899134 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
2005-11-22 23:30:06 +10:30
Benjamin Kosnik
cddfb1c7ac 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
2005-11-22 06:54:08 +00:00
Ben Elliston
ebb109add8 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
2005-11-22 16:19:29 +11:00
Kaveh R. Ghazi
3d119f8fec 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
2005-11-22 03:09:59 +00:00
Joseph Myers
d773588022 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
2005-11-22 00:38:30 +00:00
Joseph Myers
131aeb82d1 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
2005-11-22 00:35:48 +00:00
Benjamin Kosnik
b967bf2560 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
2005-11-22 00:19:07 +00:00
GCC Administrator
6353ea3675 Daily bump.
From-SVN: r107340
2005-11-22 00:17:35 +00:00
Joel Sherrill
04b5d587d0 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
2005-11-21 23:31:50 +00:00
Joel Sherrill
46636d314f 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
2005-11-21 22:56:34 +00:00
Jakub Jelinek
5e805e44c0 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
2005-11-21 23:03:56 +01:00
Ben Elliston
9b92bf04bf 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
2005-11-22 08:29:23 +11:00
Richard Henderson
10e6657a20 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
2005-11-21 13:27:29 -08:00
Ben Elliston
3d8bf70f59 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
2005-11-22 07:53:27 +11:00
Eric Botcazou
9cfda6fa54 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
2005-11-21 20:52:25 +00:00