Commit Graph

93949 Commits

Author SHA1 Message Date
Dave Korn 8353cd27a4 configure.ac: Also check if assembler supports pc-relative relocs on X86_WIN32 targets.
* configure.ac:  Also check if assembler supports pc-relative
	relocs on X86_WIN32 targets.
	* configure:  Regenerate.
	* src/x86/win32.S (ffi_prep_args):  Declare extern, not global.
	(_ffi_call_SYSV):  Add missing function type symbol .def and
	add EH markup labels.
	(_ffi_call_STDCALL):  Likewise.
	(_ffi_closure_SYSV):  Likewise.
	(_ffi_closure_raw_SYSV):  Likewise.
	(.eh_frame):  Add hand-crafted EH data.

From-SVN: r147800
2009-05-22 16:22:53 +00:00
Mark Mitchell fe2978fba2 tree.c (handle_dll_attribute): Mark dllexport'd inlines as non-external.
gcc/
	* tree.c (handle_dll_attribute): Mark dllexport'd inlines as
	non-external.

	gcc/cp
	* decl2.c (decl_needed_p): Consider dllexport'd functions needed.
	* semantics.c (expand_or_defer_fn): Similarly.

	gcc/testsuite/
	* gcc.dg/dll-6.c: New test.
	* gcc.dg/dll-6a.c: Likewise.
	* gcc.dg/dll-7.c: Likewise.
	* gcc.dg/dll-7a.c: Likewise.
	* g++.dg/ext/dllexport2.C: Likewise.
	* g++.dg/ext/dllexport2a.cc: Likewise.

From-SVN: r147799
2009-05-22 14:57:15 +00:00
Benjamin Kosnik e4c29fbc9e re PR bootstrap/40221 (Powerpc bootstrap is broken in building libstdc++)
2009-05-21  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/40221
	* include/tr1_impl/functional: Add explicit cast.

From-SVN: r147794
2009-05-22 07:19:37 +00:00
François-Xavier Coudert eebc710d2e re PR fortran/40195 (Cannot unlink existing module file)
PR fortran/40195
	* module.c (read_md5_from_module_file): Close file before returning.

From-SVN: r147793
2009-05-22 07:04:09 +00:00
Ben Elliston 134ef63846 Makefile.in (bversion.h, s-bversion): New targets.
* Makefile.in (bversion.h, s-bversion): New targets.
	(TOPLEV_H): Add bversion.h.
	* toplev.h: Include "bversion.h".
	(ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
	the __format__ attribute only if compiling with the same version
	of GCC as the sources (the "build version").

From-SVN: r147792
2009-05-22 16:08:04 +10:00
Ben Elliston 52fc669ddf * c-format.c (handle_format_attribute): Fix comment typo.
From-SVN: r147790
2009-05-22 11:51:19 +10:00
Paolo Carlini aaf19a5069 re PR libstdc++/40094 (FAIL: ext/throw_allocator/deallocate_global.cc execution test)
2009-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
	
	PR libstdc++/40094
	Revert:
	2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
	* include/ext/throw_allocator.h (throw_allocator_base): Avoid
	out of line member functions definitions.
	(throw_allocator_base::_S_g, _S_map, _S_throw_prob, _S_label):
	Remove, use static locals instead.
	(throw_allocator_base::do_check_allocated, print_to_string): Declare.
	* src/throw_allocator.cc: New.
	* src/Makefile.am: Add.
	* config/abi/pre/gnu.ver: Add exports.
	* src/Makefile.in: Regenerate.

From-SVN: r147789
2009-05-22 01:32:49 +00:00
Paolo Carlini e2792913bd re PR libstdc++/40094 (FAIL: ext/throw_allocator/deallocate_global.cc execution test)
2009-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
	
	PR libstdc++/40094
	Revert:
	2009-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
	* include/ext/throw_allocator.h (throw_allocator_base): Avoid
	out of line member functions definitions.
	(throw_allocator_base::_S_g, _S_map, _S_throw_prob, _S_label):
	Remove, use static locals instead.
	(throw_allocator_base::do_check_allocated, print_to_string): Declare.
	* src/throw_allocator.cc: New.
	* src/Makefile.am: Add.
	* config/abi/pre/gnu.ver: Add exports.
	* src/Makefile.in: Regenerate.

From-SVN: r147788
2009-05-22 01:28:50 +00:00
GCC Administrator e0d0bf47c9 Daily bump.
From-SVN: r147786
2009-05-22 00:16:57 +00:00
Steve Ellcey 265b3b8dbd re PR target/37846 (Option -mno-fused-madd should be supported on IA-64)
PR target/37846
	* gcc.target/ia64/mfused-madd-vect.c: New test.
	* gcc.target/ia64/mfused-madd.c: New test.
	* gcc.target/ia64/mno-fused-madd-vect.c: New test.
	* gcc.target/ia64/mno-fused-madd.c: New test.

From-SVN: r147783
2009-05-21 23:53:02 +00:00
Steve Ellcey 583ca92110 re PR target/37846 (Option -mno-fused-madd should be supported on IA-64)
PR target/37846
	* config/ia64/ia64.opt (mfused-madd): New.
	* config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
	* config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
	* config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
	madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
	nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
	msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
	nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
	* config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
	instruction if !TARGET_FUSED_MADD.
	(fpma, fpms): Remove colon from name.

From-SVN: r147782
2009-05-21 23:51:22 +00:00
Richard Guenther 150e39291c tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record TMR_ORIGINAL.
2009-05-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
	TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
	TARGET_MEM_REF.
	(create_expression_by_pieces): Only convert if necessary.
	* gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
	* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.

From-SVN: r147779
2009-05-21 22:43:19 +00:00
Adam Nemet 9a2b090ce0 mips.md (*extzv_trunc<mode>_exts): Turn into a regular pattern from a template and rename it ...
* config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
	regular pattern from a template and rename it ...
	(*extzv_truncsi_exts): ... to this.

From-SVN: r147778
2009-05-21 20:22:45 +00:00
Richard Guenther 33b92c9d47 cgraph.h (struct cgraph_node): Remove inline_decl member.
2009-05-21  Richard Guenther  <rguenther@suse.de>

	* cgraph.h (struct cgraph_node): Remove inline_decl member.
	* ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
	(cgraph_default_inline_p): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.

From-SVN: r147776
2009-05-21 18:59:11 +00:00
Denis Chertykov 63487d1151 * MAINTAINERS: Update my e-mail address.
From-SVN: r147775
2009-05-21 22:46:07 +04:00
H.J. Lu cabf85c3a4 cpuid.h (bit_MOVBE): New.
gcc/

2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/cpuid.h (bit_MOVBE): New.

	* config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.

	* config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
	(OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
	(ix86_handle_option): Handle OPT_mmovbe.
	(ix86_target_string): Add -mmovbe.
	(pta_flags): Add PTA_MOVBE.
	(processor_alias_table): Add PTA_MOVBE to "atom".
	(override_options): Handle PTA_MOVBE.

	* config/i386/i386.h (TARGET_MOVBE): New.

	* config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
	(*bswapsi_movbe): New.
	(*bswapdi_movbe): Likewise.
	(bswapdi2): Renamed to ...
	(*bswapdi_1): This.
	(bswapdi2): New expander.

	* config/i386/i386.opt (mmovbe): New.

	* doc/invoke.texi: Document -mmovbe.

gcc/testsuite/

2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.target/i386/movbe-1.c: New.
	* gcc.target/i386/movbe-2.c: Likewise.

From-SVN: r147773
2009-05-21 11:42:20 -07:00
Taras Glek 9fefa0aac2 plugin.c (try_init_one_plugin): Updated to new plugin_init API.
gcc/ChangeLog
	* plugin.c (try_init_one_plugin): Updated to new plugin_init API.
	* gcc-plugin.h (plugin_init): Updated signature.
	* gcc-plugin.h (plugin_name_args): Moved to this header.
	* doc/plugins.texi (plugin_init): Updated documention to reflect API change.
	* doc/plugins.texi (plugin_name_args): Added to documention.
gcc/testsuite/ChangeLog
	* gcc.dg/plugin/selfassign.c (plugin_init): Updated to new plugin_init signature.
	* g++.dg/plugin/selfassign.c (plugin_init): Updated to new plugin_init signature.
	* g++.dg/plugin/dumb_plugin.c (plugin_init): Updated to new plugin_init signature.
	* g++.dg/plugin/attribute_plugin.c (plugin_init): Updated to new plugin_init signature.

From-SVN: r147772
2009-05-21 17:34:43 +00:00
Mark Mitchell 1ea9fe562c neon.md (*mul<mode>3add<mode>_neon): New pattern.
* config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
	(*mul<mode>3neg<mode>add<mode>_neon): Likewise.

	* gcc.dg/target/arm/neon-vmla-1.c: New.
	* gcc.dg/target/arm/neon-vmls-1.c: Likewise.

From-SVN: r147771
2009-05-21 16:53:48 +00:00
Dave Korn 449223affa configure.ac (cygwin noconfigdirs): Remove libgcj.
* configure.ac (cygwin noconfigdirs):  Remove libgcj.
	* configure:  Regenerate.

From-SVN: r147770
2009-05-21 14:42:22 +00:00
Shujing Zhao 52f84254b2 i386.c: Use REG_P...
2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>

	* config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
	JUMP_TABLE_DATA_P predicates where applicable.
	* config/i386/predicates.md: Ditto.
	* config/i386/sse.md: Ditto.

From-SVN: r147769
2009-05-21 14:01:02 +00:00
Jakub Jelinek 93cac287cb i386.md (adddi_4_rex64, [...]): For operand2 -128 override length_immediate attribute to 1.
* config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
	operand2 -128 override length_immediate attribute to 1.
	* config/i386/predicates.md (constm128_operand): New predicate.

From-SVN: r147767
2009-05-21 15:32:47 +02:00
Jakub Jelinek a952487c45 i386.c (memory_address_length): Handle %r12 the same as %rsp and %r13 the same as %rbp.
* config/i386/i386.c (memory_address_length): Handle %r12
	the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
	also check REGNO.
	(ix86_attr_length_address_default): For MODE_SI lea in 64-bit
	mode look through optional ZERO_EXTEND and SUBREG.
	* config/i386/i386.md (R12_REG): New define_constant.
	(prefix_data16): For sse unit set also for MODE_TI insns.
	(prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
	insns set if operand 1 is ext_QIreg_operand.
	(modrm): For TYPE_IMOV clear only if not MODE_DI.  For
	TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
	immediate.
	(*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
	mode from MODE_DI to MODE_SI.
	(movdi_1_rex64): Override modrm and length_immediate attributes
	only for movabs (TYPE_IMOV, alternative 2).
	(zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
	(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
	*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
	*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
	*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
	prefix_rex attribute if DImode.
	(*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
	*addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
	*addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
	*addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
	attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
	(pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
	Likewise.  For TYPE_IMOV clear length_immediate attribute.
	(*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
	*ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
	*ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
	*ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
	*ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
	or one operand TYPE_ISHIFT.
	(*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
	*ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
	*ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
	*ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
	*ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
	*ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
	*ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
	*lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
	*lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
	*lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
	*lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
	*lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
	*lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
	*rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
	*rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
	*rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
	*rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
	set mode attribute, don't override length attribute.
	(*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
	to 1.
	(return_internal_long): Set length attribute to 2 instead of 1.
	(*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
	*cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
	prefix_rex attribute.
	* config/i386/predicates.md (ext_QIreg_operand,
	const128_operand): New predicates.
	(memory_displacement_only_operand): Always return 0 for
	TARGET_64BIT.

From-SVN: r147763
2009-05-21 15:00:30 +02:00
Ramana Radhakrishnan 64af62c2ba thumb2.md (orsi_notsi_si): Fix typo in pattern.
2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.

From-SVN: r147761
2009-05-21 08:46:40 +00:00
Ian Lance Taylor c166b8981f tree.c (build_tree_list_vec_stat): New function.
./:	* tree.c (build_tree_list_vec_stat): New function.
	(ctor_to_vec): New function.
	(build_nt_call_vec): New function.
	(build_call_array): Change args to be a const pointer.
	(build_call_vec): New function.
	* tree.h (build_nt_call_vec): Declare.
	(build_tree_list_vec_stat): Declare.
	(build_tree_list_vec): Define.
	(build_call_array): Update declaration.
	(build_call_vec): Declare.
	(ctor_to_vec): Declare.
	* c-common.c (tree_vector_cache): New static variable.
	(make_tree_vector): New function.
	(release_tree_vector): New function.
	(make_tree_vector_single): New function.
	(make_tree_vector_copy): New function.
	* c-common.h (tree_vector_cache, make_tree_vector): Declare.
	(make_tree_vector_single, make_tree_vector_copy): Declare.
	* c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
	(c_parser_expr_list): Don't manage cache here, instead call
	make_tree_vector.
	(c_parser_release_expr_list): Remove static function.
	(c_parser_vec_to_tree_list): Remove static function.
	(c_parser_attributes): Call build_tree_list_vec instead of
	c_parser_vec_to_tree_list.  Call release_tree_vector instead of
	c_parser_release_expr_list.
	(c_parser_postfix_expression_after_primary): Likewise.
	(c_parser_objc_keywordexpr): Likewise.
cp/:
	* parser.c (cp_parser_postfix_expression): Change args to a vec.
	Release it when done.
	(tree_vector): Define typedef.  Define VEC functions.
	(cp_parser_parenthesized_expression_list): Change return type to
	vec.  Change all callers.
	(cp_parser_new_expression): Change placement and initializer to
	vecs.  Release them when done.
	(cp_parser_new_placement): Change return type to vec.  Change all
	callers.
	(cp_parser_new_initializer): Likewise.
	* typeck.c (build_function_call_vec): Just call
	cp_build_function_call_vec.
	(cp_build_function_call): Just build a vec and call
	cp_build_function_call_vec.
	(cp_build_function_call_vec): New function based on old
	cp_build_function_call.
	(convert_arguments): Remove nargs and argarray parameters.  Change
	values to a vec.  Change caller.
	(build_x_compound_expr_from_vec): New function.
	(cp_build_modify_expr): Build vec to pass to
	build_special_member_call.
	* call.c (struct z_candidate): Add first_arg field.  Change args
	field to vec.
	(convert_class_to_reference): Handle first argument separately.
	(add_candidate): Add first_arg parameter.  Change args parameter
	to vec.  Change all callers.
	(add_function_candidate, add_conv_candidate): Likewise.
	(add_template_candidate_real, add_template_candidate): Likewise.
	(add_template_conv_candidate): Likewise.
	(build_user_type_conversion_1): Handle first argument separately.
	(resolve_args): Change return type and parameter type to vecs.
	Change all callers.
	(perform_overload_resolution): Change args parameter to vec.
	Change all callers.
	(build_new_function_call, build_operator_new_call): Likewise.
	(add_candidates): Likewise.
	(build_op_call): New globally visible function, built from and
	replacing static function build_object_call.
	(build_new_op): Don't handle CALL_EXPR.  Build vec, not tree_list,
	of arguments.
	(build_op_delete_call): Build vec to pass to
	cp_build_function_call_vec.
	(build_temp): Build vec to pass to build_special_member_call.
	(convert_like_real): Likewise.
	(perform_direct_initialization_if_possible): Likewise.
	(build_over_call): Handle first_arg field.  Use build_call_array
	rather than build_call_list.
	(build_special_member_call): Change args parameter to vec.  Change
	all callers.
	(build_new_method_call): Likewise.
	* init.c (expand_default_init): Change parms to vec.
	(build_raw_new_expr): Change placement and init to vecs.  Change
	all callers.
	(build_new_1, build_new): Likewise.
	* class.c (resolve_address_of_overloaded_function): Build array to
	pass to fn_type_unification.
	* pt.c (tsubst_copy_and_build): For NEW_EXPR build vecs to pass to
	build_new.  For CALL_EXPR create a vec rather than a tree_list;
	expand a pack if necessary.
	(fn_type_unification): Change args parameter to const tree *.  Add
	nargs parameter.  Change all callers.
	(type_unification_real): Likewise.
	(unify): Build array to pass to type_unification_real.
	(get_bindings): Build array to pass to fn_type_unification.
	(any_type_dependent_arguments_p): Change args parameter to a vec.
	Change all callers.
	(make_args_non_dependent): Renamed from build_non_dependent_args.
	Change return type to void.  Change parameter type to vec.  Change
	all callers.
	(do_auto_deduction): Pass an array to type_unification_real.
	* semantics.c (perform_koenig_lookup): Change args to vec.  Change
	all callers.
	(finish_call_expr): Change args to vec.  Change all callers.  Call
	build_op_call instead of passing CALL_EXPR to build_new_op.
	(cxx_omp_create_clause_info): Allocate vec to pass to
	build_special_member_call.
	* decl2.c (build_offset_ref_call_from_tree): Change args parameter
	to vec.  Change all callers.
	* name-lookup.c (lookup_function_nonclass): Likewise.
	(struct arg_lookup): Change args to vec.
	(arg_assoc_namespace): Handle args as a vec.
	(arg_assoc_args_vec): New static function.
	(lookup_arg_dependent): Change args parameter to vec.  Change all
	callers.
	* method.c (do_build_assign_ref): Allocate vec to pass to
	build_special_member_call.
	* except.c (build_throw): Likewise.
	* typeck2.c (build_functional_cast): Likewise.
	* cvt.c (ocp_convert): Likewise.
	* tree.c (build_min_non_dep_call_vec): Change last parameter to
	vec.  Change all callers.
	* cp-tree.h: Update declarations.
	* name-lookup.h: Update declarations.
objc/:
	* objc-act.c (objc_generate_cxx_ctor_or_dtor): Pass NULL rather
	than NULL_TREE to build_special_member_call.

From-SVN: r147759
2009-05-21 05:58:39 +00:00
Sandra Loosemore 40449a90d7 tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE...
2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
	TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
	TARGET_CONVERT_TO_TYPE.
	* hooks.c (hook_tree_const_tree_null): Define.
	* hooks.h (hook_tree_const_tree_null): Declare.
	* target.h (struct gcc_target):  Add invalid_parameter_type,
	invalid_return_type, promoted_type, and convert_to_type fields.
	* target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
	(TARGET_INVALID_RETURN_TYPE): Define.
	(TARGET_PROMOTED_TYPE): Define.
	(TARGET_CONVERT_TO_TYPE): Define.
	(TARGET_INITIALIZER): Update for new fields.
	* c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
	(grokparms): Check targetm.invalid_parameter_type.
	* c-typeck.c (default_conversion): Check targetm.promoted_type.
	* c-convert.c (convert): Check targetm.convert_to_type.

	gcc/cp/
	* typeck.c (default_conversion): Check targetm.promoted_type.
	* decl.c (grokdeclarator): Check targetm.invalid_return_type.
	(grokparms): Check targetm.invalid_parameter_type.
	* cvt.c (ocp_convert): Check targetm.convert_to_type.
	(build_expr_type_conversion): Check targetm.promoted_type.

From-SVN: r147758
2009-05-20 23:06:12 -04:00
Benjamin Kosnik d29d4507b2 functional (function): Use explicit operator bool.
2009-05-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/tr1_impl/functional (function): Use explicit operator bool.
	* include/bits/shared_ptr.h (__shared_ptr): Same.
	* include/bits/unique_ptr.h (unique_ptr): Same.
	* include/std/mutex (unique_lock): Same.
	* include/std/system_error (error_code): Same.
	(error_condition): Same.
	* include/std/ostream (sentry): Same.
	* include/std/istream (sentry): Same.
	* testsuite/19_diagnostics/error_condition/operators/bool.cc: Adjust.
	* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/bool.cc: Same.
	* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Same.
	* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Same.
	* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Same.
	* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Same.

From-SVN: r147756
2009-05-21 01:12:00 +00:00
GCC Administrator f256c06431 Daily bump.
From-SVN: r147755
2009-05-21 00:16:48 +00:00
Adam Nemet 642d97ff00 * config/mips/mips.md (*extenddi_truncate<mode>,
*extendsi_truncate<mode>): Emit exts if supported.  Add attribute
	defintions.
	(*extendhi_truncateqi): New define_insn_and_sptit.

testsuite/
	* gcc.target/mips/octeon-exts-6.c: New test.
	* gcc.target/mips/extend-1.c: New test.
	* gcc.target/mips/octeon-exts-2.c: Adjust to not match sign-extension
	EXTS.
	* gcc.target/mips/octeon-exts-5.c: Likewise.

From-SVN: r147751
2009-05-20 21:47:57 +00:00
Jakub Jelinek 776248b87e re PR middle-end/40204 (segfault with bitfields in structs)
PR middle-end/40204
	* fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
	recursion if build_int_cst_type returns the same INTEGER_CST as
	arg1.

	* gcc.c-torture/compile/pr40204.c: New test.

From-SVN: r147749
2009-05-20 23:09:11 +02:00
Jakub Jelinek 6dea8e99a9 re PR libgomp/40174 (Memory leak when using '#pragma omp parallel')
PR libgomp/40174
	* team.c (gomp_thread_start): Destroy thr->release semaphore.
	(gomp_free_pool_helper): Likewise.

From-SVN: r147747
2009-05-20 22:54:45 +02:00
Eric Botcazou 00c5fa1bca Fix formatting
From-SVN: r147740
2009-05-20 16:14:16 +00:00
Eric Botcazou d98e868633 fold-const.c (build_fold_addr_expr_with_type): Take the address of the operand of VIEW_CONVERT_EXPR.
* fold-const.c (build_fold_addr_expr_with_type): Take the address of
	the operand of VIEW_CONVERT_EXPR.

From-SVN: r147739
2009-05-20 16:01:41 +00:00
H.J. Lu 37c5043589 driver-i386.c (host_detect_local_cpu): Check extended family and model for Intel processors.
2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/driver-i386.c (host_detect_local_cpu): Check
	extended family and model for Intel processors.  Support Intel
	Atom.

From-SVN: r147736
2009-05-20 06:32:14 -07:00
Olivier Hainque dbb6088f89 gstab.h (stab_code_type): Define, to be used instead of the __stab_debug_code enum, made anonymous.
* gstab.h (stab_code_type): Define, to be used instead of the
	__stab_debug_code enum, made anonymous.  Add 2009 to the copyright
	notice.
	* dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
	occurrences by stab_code_type.
	* mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.

From-SVN: r147734
2009-05-20 12:44:44 +00:00
Martin Jambor 7ec492570b tree-flow.h (insert_edge_copies_seq): Undeclare.
2009-05-20  Martin Jambor  <mjambor@suse.cz>

	* tree-flow.h (insert_edge_copies_seq): Undeclare.
	(sra_insert_before): Likewise.
	(sra_insert_after): Likewise.
	(sra_init_cache): Likewise.
	(sra_type_can_be_decomposed_p): Likewise.
	* tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
	* tree-sra.c (sra_type_can_be_decomposed_p): Made static.
	(sra_insert_before): Likewise.
	(sra_insert_after): Likewise.
	(sra_init_cache): Likewise.
	(insert_edge_copies_seq): Made static and moved upwards.

	* tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
	case.

	* tree-flow-inline.h (contains_view_convert_expr_p): New function.

	* ipa-prop.c (get_ssa_def_if_simple_copy): New function.
	(determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
	simple copies.

From-SVN: r147733
2009-05-20 12:18:10 +02:00
Eric Botcazou 3f6f0eb2e4 decl.c (gnat_to_gnu_entity): When discriminants affect the shape of the subtype...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: When
	discriminants affect the shape of the subtype, retrieve the GCC type
	directly from the original field if the GNAT types for the field and
	the original field are the same.

From-SVN: r147732
2009-05-20 08:29:05 +00:00
Richard Guenther 0328ae4d56 expr.c (expand_expr_real_1): Avoid calling do_store_flag with mismatched comparison modes.
2009-05-20  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_1): Avoid calling do_store_flag
	with mismatched comparison modes.

	* gcc.c-torture/compile/20090518-1.c: New testcase.

From-SVN: r147731
2009-05-20 08:19:50 +00:00
Ramana Radhakrishnan a7994a57b9 Fix Thumb2 bic orn
2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
    
	* config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
        (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
        * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
        with shifts for Thumb2.
        (orsi_notsi): New for orn.
        (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
        (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
        * config/arm/arm.c (const_ok_for_op): Split case for IOR for
        Thumb2.
        (arm_gen_constant): Set can_invert for IOR and Thumb2, Add
        comments. Don't invert remainder for IOR.

From-SVN: r147729
2009-05-20 05:40:17 +00:00
Benjamin Kosnik 875d0f10a6 14340.cc: Abstract list type.
2009-05-19  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/23_containers/list/14340.cc: Abstract list type.
	* testsuite/23_containers/list/init-list.cc: Same.
	* testsuite/23_containers/list/pthread5.cc: Same.
	* testsuite/23_containers/list/invalidation/1.cc: Same.
	* testsuite/23_containers/list/invalidation/2.cc: Same.
	* testsuite/23_containers/list/invalidation/3.cc: Same.
	* testsuite/23_containers/list/invalidation/4.cc: Same.
	* testsuite/23_containers/list/modifiers/insert/25288.cc: Same.
	* testsuite/23_containers/list/modifiers/1.cc: Same.
	* testsuite/23_containers/list/modifiers/2.cc: Same.
	* testsuite/23_containers/list/modifiers/3.cc: Same.
	* testsuite/23_containers/list/modifiers/swap/1.cc: Same.
	* testsuite/23_containers/list/modifiers/swap/2.cc: Same.
	* testsuite/23_containers/list/modifiers/swap/3.cc: Same.
	* testsuite/23_containers/list/cons/1.cc: Same.
	* testsuite/23_containers/list/cons/2.cc: Same.
	* testsuite/23_containers/list/cons/3.cc: Same.
	* testsuite/23_containers/list/cons/4.cc: Same.
	* testsuite/23_containers/list/cons/5.cc: Same.
	* testsuite/23_containers/list/cons/6.cc: Same.
	* testsuite/23_containers/list/cons/7.cc: Same.
	* testsuite/23_containers/list/cons/clear_allocator.cc: Same.
	* testsuite/23_containers/list/cons/8.cc: Same.
	* testsuite/23_containers/list/cons/9.cc: Same.
	* testsuite/23_containers/list/operations/1.cc: Same.
	* testsuite/23_containers/list/operations/2.cc: Same.
	* testsuite/23_containers/list/operations/3.cc: Same.
	* testsuite/23_containers/list/operations/4.cc: Same.
	* testsuite/23_containers/list/operations/5.cc: Same.
	* testsuite/23_containers/list/requirements/citerators.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Same.
	* testsuite/23_containers/list/requirements/dr438/constructor.cc: Same.
	* testsuite/23_containers/list/requirements/
	partial_specialization/1.cc: Same.
	* testsuite/23_containers/list/23781.cc: Same.
	* testsuite/23_containers/list/pthread1.cc: Same.
	* testsuite/23_containers/list/capacity/1.cc: Same.
	* testsuite/23_containers/list/capacity/29134.cc: Same.
	* testsuite/23_containers/list/check_construct_destroy.cc: Same.
	* testsuite/23_containers/list/moveable.cc: Same.

	* testsuite/util/common_type/assoc/common_type.hpp: Re-break lines.

From-SVN: r147728
2009-05-20 04:05:21 +00:00
Zdenek Dvorak e36dc33956 re PR tree-optimization/40087 (Number of iterations analysis wrong)
PR tree-optimization/40087
	* tree-ssa-loop-niter.c (number_of_iterations_ne_max,
	number_of_iterations_ne): Rename never_infinite argument.
	(number_of_iterations_lt_to_ne, number_of_iterations_lt,
	number_of_iterations_le): Handle pointer-type ivs when
	exit_must_be_taken is false.
	(number_of_iterations_cond):  Do not always assume that
	exit_must_be_taken if the control variable is a pointer.

	* gcc.dg/tree-ssa/pr40087.c: New test.

From-SVN: r147727
2009-05-20 00:33:54 +00:00
GCC Administrator 03d33c2a44 Daily bump.
From-SVN: r147726
2009-05-20 00:16:48 +00:00
Jerry DeLisle 3a546d4d9b re PR libfortran/37754 (READ I/O Performance regression from 4.3 to 4.4/4.5)
2009-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/37754
	* io/write_float.def: Simplify format calculation.

From-SVN: r147725
2009-05-20 00:16:38 +00:00
Andrew Pinski 5cfd5d9b8f c-typeck.c (build_binary_op): Allow % on integal vectors.
2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * c-typeck.c (build_binary_op): Allow % on integal vectors.
        * doc/extend.texi (Vector Extension): Document that % is allowed too.

009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * typeck.c (build_binary_op): Allow % on integal vectors.

2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * gcc.dg/vector-4.c: New testcase.
        * gcc.dg/simd-1b.c: % is now allowed for integer vectors.
        * g++.dg/ext/vector16.C: New testcase.

From-SVN: r147722
2009-05-19 16:14:10 -07:00
H.J. Lu dae279f018 re PR c/40172 (Revision 147596 breaks bootstrap)
2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/40172
	* gcc.dg/pr40172.c: Renamed to ...
	* gcc.dg/pr40172-1.c: This.

	* gcc.dg/pr40172-2.c: New.
	* gcc.dg/pr40172-3.c: Likewise.

From-SVN: r147719
2009-05-19 14:17:00 -07:00
H.J. Lu 2f1c7156ef i386.c (ix86_avoid_jump_mispredicts): Check ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
	ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.

From-SVN: r147718
2009-05-19 13:11:55 -07:00
Manuel López-Ibáñez 7bb2707483 re PR c/40172 (Revision 147596 breaks bootstrap)
2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/40172
gcc/
	* c.opt (Wlogical-op): Disabled by default.
	* c-opt (c_common_post_options): Do not enable Wlogical-op with
	Wextra.
	* doc/invoke.texi (Wlogical-op): Likewise.
testsuite/
	* gcc.dg/pr40172.c: Add -Wlogical-op to dg-options.

From-SVN: r147717
2009-05-19 19:29:27 +00:00
Eric Botcazou 5aefc6a0f0 tree-scalar-evolution.c (follow_ssa_edge_expr): Turn into CASE_CONVERT.
* tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
	into CASE_CONVERT.
	<PLUS_EXPR>: Strip useless type conversions instead of type nops.
	Propagate the type of the first operand.
	<ASSERT_EXPR>: Simplify.
	(follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
	Rewrite using the RHS code as discriminant.
	<NOP_EXPR>: Turn into CASE_CONVERT.
	<PLUS_EXPR>: Propagate the type of the first operand.

From-SVN: r147716
2009-05-19 19:14:42 +00:00
Paolo Carlini c8036448d1 re PR libstdc++/40184 (locale(const char* std_name) can create invalid facets for nonuniform locale)
2009-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/40184
	* include/bits/locale_classes.h (locale::facet::_S_lc_ctype_c_locale):
	Declare...
	* config/locale/gnu/c_locale.cc: ... and define.
	* config/locale/generic/c_locale.cc: Define.
	* src/localename.cc (locale::_Impl::_Impl(const char*, size_t)):
	Use it.
	* testsuite/22_locale/locale/cons/40184.cc: New.

From-SVN: r147714
2009-05-19 18:20:47 +00:00
Steve Ellcey f3a8311127 ia64-protos.h (ia64_dconst_0_5): New.
* config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
	(ia64_dconst_0_375): New.
	* config/ia64/ia64.c (ia64_override_options): Remove
	-minline-sqrt-min-latency warning.
	(ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
	(ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
	* config/ia64/ia64.md (*sqrt_approx): Remove.
	(sqrtsf2): Remove #if 0.
	(sqrtsf2_internal_thr): Rewrite and move to div.md.
	(sqrtdf): Remove assert.
	(sqrtdf2_internal_thr): Rewrite and move to div.md.
	(sqrtxf2): Remove #if 0.
	(sqrtxf2_internal_thr): Rewrite and move to div.md.
	* div.md (sqrt_approx_rf): New.
	(sqrtsf2_internal_thr): New implementation.
	(sqrtsf2_internal_lat): New.
	(sqrtdf2_internal_thr: New implementation.
	(sqrtxf2_internal): New implementation.

From-SVN: r147713
2009-05-19 18:18:08 +00:00
Francois-Xavier Coudert 1ffc7157ef * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
(WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
	(INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
	(INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
	(UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
	(INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
	(UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
	(INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
	(UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
	(SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
	* c-common.c: ...from here.

Co-Authored-By: Hans-Peter Nilsson <hp@axis.com>

From-SVN: r147712
2009-05-19 18:12:57 +00:00