Commit Graph

72042 Commits

Author SHA1 Message Date
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
Paolo Carlini b6cb8dc2d8 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
2005-11-21 18:38:05 +00:00
Paolo Bonzini e20dcbefa5 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
2005-11-21 16:38:13 +00:00
David Edelsohn 72c164b3f8 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
2005-11-21 11:12:32 -05:00
Paul Thomas b95605fb0c 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
2005-11-21 16:05:58 +00:00
Jan Hubicka 078152a256 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
2005-11-21 13:14:02 +00:00
Uros Bizjak 1c2871213e 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
2005-11-21 08:55:31 +01:00
Uros Bizjak ffbc33cc0f 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
2005-11-21 08:49:47 +01:00
Ian Lance Taylor 083a9e91be 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
2005-11-21 05:41:36 +00:00
Kazu Hirata 1ef6855c51 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
2005-11-21 04:41:38 +00:00
Ben Elliston 67dc1785a5 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
2005-11-21 13:21:37 +11:00
Joseph Myers 7cf3d07976 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
2005-11-21 01:19:00 +00:00
Richard Henderson d116ffa6c2 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
2005-11-20 16:51:39 -08:00
GCC Administrator 6b6c5c5d68 Daily bump.
From-SVN: r107268
2005-11-21 00:17:27 +00:00
Richard Henderson fd9b524973 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
2005-11-20 12:35:17 -08:00
Bernd Schmidt 8b44057d9b 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
2005-11-20 18:49:18 +00:00
Bernd Schmidt 23ffc23579 usmul.c: New test.
* gcc.c-torture/execute/usmul.c: New test.

From-SVN: r107257
2005-11-20 18:25:59 +00:00
Joseph Myers 90d55c93fb * cpplib.pot: Regenerate.
From-SVN: r107256
2005-11-20 18:08:13 +00:00
Joseph Myers f74a57f8b2 * gcc.pot: Regenerate.
From-SVN: r107255
2005-11-20 18:07:15 +00:00
Graham Stott 1815d8d463 gensupport.c (std_preds): Fixed extraneous `false` in last change.
* gensupport.c (std_preds): Fixed extraneous `false` in last change.

From-SVN: r107252
2005-11-20 15:02:13 +00:00
David Ayers 8470034667 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
2005-11-20 12:49:41 +00:00
Toon Moene 033107c3b1 invoke.texi: Remove superfluous @item.
2005-11-20  Toon Moene  <toon@moene.indiv.nluug.nl>

	* invoke.texi: Remove superfluous @item.

From-SVN: r107249
2005-11-20 10:58:24 +00:00
Andreas Schwab 6819a4637b 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
2005-11-20 10:43:43 +00:00
Richard Henderson 688e936d46 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
2005-11-19 21:37:08 -08:00
James A. Morrison 7ab1122a47 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
2005-11-20 05:33:00 +00:00
GCC Administrator b3231ce8af Daily bump.
From-SVN: r107240
2005-11-20 00:17:16 +00:00
Hans-Peter Nilsson ff0d9879ab 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
2005-11-19 21:56:17 +00:00