Commit Graph

92248 Commits

Author SHA1 Message Date
Tobias Burnus
dc186969b5 re PR fortran/38432 (Add warning for loops which are never executed)
2009-03-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/38432
        * resolve.c (gfc_resolve_iterator): Add zero-loop warning.

2009-03-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/38432
        * gfortran.dg/do_check_5.f90: New test.
        * gfortran.dg/array_constructor_11.f90: Add dg-warning.
        * gfortran.dg/array_constructor_18.f90: Ditto.
        * gfortran.dg/array_constructor_22.f90: Ditto.
        * gfortran.dg/do_3.F90: Ditto.
        * gfortran.dg/do_1.f90: Ditto.

From-SVN: r145186
2009-03-28 14:06:30 +01:00
Richard Guenther
17021bc8cb re PR tree-optimization/38458 (copy-propagation doesn't handle cycles)
2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38458
	* tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
	argument use the arguments copy-of value.

From-SVN: r145185
2009-03-28 12:54:14 +00:00
Richard Guenther
e8114fbacc re PR tree-optimization/38180 (CCP does not propagate through constant initializers)
2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38180
	* tree-ssa-ccp.c (get_default_value): Simplify.
	(likely_value): Likewise.
	(surely_varying_stmt_p): Properly handle VOP case.
	(ccp_initialize): Likewise.
	(ccp_fold): Handle propagating through *&.
	(fold_const_aggregate_ref): Also handle decls.

	* gcc.dg/tree-ssa/ssa-ccp-24.c: New testcase.

From-SVN: r145184
2009-03-28 12:52:13 +00:00
Francois-Xavier Coudert
d3d3011f93 gfortran.h (gfc_option_t): Add rtcheck.
2009-03-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
            Paul Thomas  <pault@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Add rtcheck.
        * lang.opt: New option -fruntime-check.
        * libgfortran.h: Add GFC_RTCHECK_* constants.
        * invoke.texi: Document -fruntime-check.
        * options.c (gfc_handle_runtime_check_option): New function.
        (gfc_init_options,gfc_post_options,gfc_handle_option):
        Add -fruntime-check option.


Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r145183
2009-03-28 13:52:08 +01:00
Jan Hubicka
257eb6e3ef cgraph.c (dump_cgraph_node): Add replace output flag by process.
* cgraph.c (dump_cgraph_node): Add replace output flag by process.
	* cgraph.h (cgraph_node): Likewise.
	* cgraphunit.c (cgraph_process_new_functions): Set process flag.
	(cgraph_reset_node): Use process flag.
	(cgraph_mark_functions_to_output): Likewise.
	(cgraph_expand_function): Likewise.
	(cgraph_expand_all_functions): Likewise.
	(cgraph_output_in_order): Likewise.
	* dwarf2out.c (reference_to_unused): Likewise.
	* passes.c do_per_function_toporder): Likewise.

From-SVN: r145178
2009-03-28 12:04:38 +00:00
Doug Kwan
b755167663 Bring from lto-branch:
2008-09-03  Doug Kwan  <dougkwan@google.com>

	* cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
	enums instead of reason strings.
	* cgraph.c (cgraph_create_edge): Same.
	(cgraph_inline_failed_string): New function.
	* cgraph.h (cgraph_inline_failed_t): New enum type.
	(cgraph_inline_failed_string): New prototype.
	(struct cgraph_edge): Change type of INLINED_FAILED from constant
	char pointer to cgraph_inline_failed_t.
	(cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
	(cgraph_default_inline_p): Ditto.
	* gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
	to cgraph_inline_failed_t pointer.
	* cif-code.def: New file.
	* ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
	reason string.
	(cgraph_check_inline_limits): Change type of REASON to pointer to
	cgraph_inline_failed_t.  Replace reason strings with enums.
	(cgraph_default_inline_p): Ditto.
	(cgraph_recursive_inlining_p): Ditto.
	(update_caller_keys): Change type of FAILED_REASON to
	cgraph_inline_failed_t.
	(cgraph_set_inline_failed): Change type of REASON to pointer to
	cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
	convert enums to strings for text output.
	(cgraph_decide_inlining_of_small_function): Change FAILED_REASON
	to be of type cgraph_inline_failed_t.  Replace reason strings with
	enums.  Call cgraph_inline_failed_string to covert enums
	to strings for text output.
	(cgraph_decide_inlining): Replace reason strings with enums.
	(cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
	to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
	for text output.
	* tree-inline.c (expand_call_inline): Change type of REASON
	to cgraph_inline_failed_t.  Replace reason strings with enums.
	Call cgraph_inline_failed_string for text output.
	* Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
	(cgraph.o): Ditto.

From-SVN: r145177
2009-03-28 11:10:06 +00:00
Jan Hubicka
61a05df17c Bring from lto-branch:
2008-09-03  Doug Kwan  <dougkwan@google.com>

	* cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
	enums instead of reason strings.
	* cgraph.c (cgraph_create_edge): Same.
	(cgraph_inline_failed_string): New function.
	* cgraph.h (cgraph_inline_failed_t): New enum type.
	(cgraph_inline_failed_string): New prototype.
	(struct cgraph_edge): Change type of INLINED_FAILED from constant
	char pointer to cgraph_inline_failed_t.
	(cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
	(cgraph_default_inline_p): Ditto.
	* gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
	to cgraph_inline_failed_t pointer.
	* cif-code.def: New file.
	* ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
	reason string.
	(cgraph_check_inline_limits): Change type of REASON to pointer to
	cgraph_inline_failed_t.  Replace reason strings with enums.
	(cgraph_default_inline_p): Ditto.
	(cgraph_recursive_inlining_p): Ditto.
	(update_caller_keys): Change type of FAILED_REASON to
	cgraph_inline_failed_t.
	(cgraph_set_inline_failed): Change type of REASON to pointer to
	cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
	convert enums to strings for text output.
	(cgraph_decide_inlining_of_small_function): Change FAILED_REASON
	to be of type cgraph_inline_failed_t.  Replace reason strings with
	enums.  Call cgraph_inline_failed_string to covert enums
	to strings for text output.
	(cgraph_decide_inlining): Replace reason strings with enums.
	(cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
	to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
	for text output.
	* tree-inline.c (expand_call_inline): Change type of REASON
	to cgraph_inline_failed_t.  Replace reason strings with enums.
	Call cgraph_inline_failed_string for text output.
	* Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
	(cgraph.o): Ditto.

From-SVN: r145176
2009-03-28 11:08:16 +00:00
Jan Hubicka
144e8aac3d cgraph.c (cgraph_node, [...]): Remove master clone handling.
* cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
	cgraph_clone_node): Remove master clone handling.
	(cgraph_is_master_clone, cgraph_master_clone): Remove.
	* cgraph.h (master_clone): Remove.
	(cgraph_is_master_clone, cgraph_master_clone): Remove.
	* ipa-type-escape.c (type_escape_execute): Remove use of master clone.
	(tree-ssa-structalias.c (ipa_pta_execute): Likewise.

From-SVN: r145175
2009-03-28 11:00:07 +00:00
Jan Hubicka
4a371c8d8f cgraph.c (cgraph_function_body_availability): Functions declared inline are always safe to assume that it is not going to be...
* cgraph.c (cgraph_function_body_availability): Functions declared
	inline are always safe to assume that it is not going to be replaced.

From-SVN: r145174
2009-03-28 10:48:04 +00:00
Richard Guenther
6cdb0ee365 re PR tree-optimization/38513 (Only postreload will remove a no-op store)
2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38513
	* tree-ssa-pre.c (eliminate): Remove redundant stores.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
	EXC_PTR_EXPR and FILTER_EXPR.
	(get_ref_from_reference_ops): Likewise.

	* gcc.dg/tree-ssa/ssa-fre-21.c: New testcase.
	* gcc.dg/tree-ssa/ssa-dse-11.c: Adjust.
	* gcc.dg/vect/vect-reduc-dot-u8a.c: Likewise.
	* gcc.dg/vect/vect-reduc-dot-u8b.c: Likewise.
	* gcc.dg/vect/slp-widen-mult-u8.c: Likewise.
	* gcc.dg/vect/vect-multitypes-16.c: Likewise.
	* gcc.dg/vect/vect-35.c: Likewise.
	* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Likewise.
	* gcc.dg/vect/vect-multitypes-17.c: Likewise.
	* gcc.dg/vect/slp-widen-mult-s16.c: Likewise.

From-SVN: r145172
2009-03-28 10:11:14 +00:00
Richard Guenther
8ca1fd7674 re PR tree-optimization/38968 (Complex matrix product is not vectorized)
2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38968
	* tree-vect-analyze.c (vect_compute_data_ref_alignment):
	Use FLOOR_MOD_EXPR to compute misalignment.

	* gfortran.dg/vect/fast-math-pr38968.f90: New testcase.

From-SVN: r145171
2009-03-28 10:05:24 +00:00
Richard Guenther
a254e44de7 re PR tree-optimization/37795 (if-combine doesn't optimize != after >= test)
2009-03-28  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/37795
	* tree.h (combine_comparisons): Declare.
	* fold-const.c (combine_comparisons): Export.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
	comparisons.
	(ifcombine_iforif): Use combine_comparisons.

	* gcc.dg/tree-ssa/ssa-ifcombine-7.c: New testcase.

From-SVN: r145170
2009-03-28 10:01:56 +00:00
Jan Hubicka
a8ee227c04 tree-eh.c (inlinable_call_p): New function.
* tree-eh.c (inlinable_call_p): New function.
	(make_eh_edges): Use it.
	(verify_eh_edges): Use it.
	(stmt_can_throw_external, stmt_can_throw_internal): Use it.
	* except.c (reachable_next_level): Add inlinable_function argument
	(sjlj_find_directly_reachable_regions): Update.
	(add_reachable_handler): Do not set saw_any_handlers.
	(reachable_next_level): Handle MUST_NOT_THROW more curefully.
	(foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
	Add new inlinable call parameter.
	(can_throw_internal, can_throw_external): Update.
	* except.h (can_throw_internal_1, can_throw_external_1,
	foreach_reachable_handler): Update declaration.

From-SVN: r145166
2009-03-28 09:08:52 +00:00
Joseph Myers
aa2785717f * gcc.pot: Regenerate.
From-SVN: r145162
2009-03-28 07:04:15 +00:00
Joseph Myers
f145021137 Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not mkinstalldirs.
* Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
	mkinstalldirs.

From-SVN: r145160
2009-03-28 06:57:44 +00:00
Joseph Myers
f5b9c3604e * cpplib.pot: Regenerate.
From-SVN: r145159
2009-03-28 06:57:06 +00:00
Joseph Myers
52c0e446f3 inclhack.def (aix_syswait, [...]): Remove.
fixincludes:
	* inclhack.def (aix_syswait, exception_structure,
	pthread_page_size): Remove.
	(math_exception): Remove mention of fixproto in comment.
	* fixincl.x: Regenerate.
	* mkheaders.in: Do not handle STMP_FIXPROTO.

gcc:
	* config/arm/t-arm-coff, config/h8300/coff.h,
	config/i386/i386-aout.h, config/i386/i386-coff.h,
	config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
	config/pdp11/2bsd.h, config/rs6000/aix41.h,
	config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
	fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
	scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
	sys-types.h: Remove.
	* Makefile.in: Remove protoize and fixproto support and references
	in comments.
	(SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
	PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
	Remove.
	(ALL_HOST_OBJS): Remove $(PROTO_OBJS).
	(MOSTLYCLEANFILES): Remove protoize$(exeext) and
	unprotoize$(exeext).
	(rest.encap): Don't depend on $(STMP_FIXPROTO)
	(.PHONY): Don't depend on proto.
	(libgcc-support): Don't depend on $(STMP_FIXPROTO).
	(proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
	protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
	deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
	build/gen-protos.o, build/scan.o, xsys-protos.h,
	build/fix-header$(build_exeext), build/fix-header.o,
	build/scan-decls.o, fixhdr.ready, stmp-fixproto,
	stmp-install-fixproto): Remove.
	(mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
	SYSCALLS.c or fixproto files.
	(install-common): Don't install protoize.
	(install-headers-tar, install-headers-cpio, install-headers-cp):
	Don't depend on $(STMP_FIXPROTO).
	(install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
	install fixproto files or write out fixproto settings.
	(uninstall): Don't uninstall protoize.
	* config.gcc (use_fixproto): Remove.
	(arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
	i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
	rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
	* config/m32r/t-linux (STMP_FIXPROTO): Remove.
	* config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
	* config/mips/t-iris (FIXPROTO_DEFINES): Remove.
	* config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
	* config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
	* config/t-svr4 (FIXPROTO_DEFINES): Remove.
	* config/t-vxworks (STMP_FIXPROTO): Remove.
	* configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
	STMP_FIXPROTO): Remove.
	* config.in, configure: Regenerate.
	* crtstuff.c (gid_t, uid_t): Don't undefine.
	* doc/install.texi: Change m68k-coff to m68k-elf in example.
	(arm-*-coff, arm-*-aout: Remove target entries.
	(*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
	Remove mention of AIX 4.1.
	(m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
	* doc/invoke.texi (Running Protoize): Remove.
	* doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
	(Protoize Caveats): Remove.
	* tsystem.h: Update comments on headers assumed to exist.

gcc/po:
	* EXCLUDES (fix-header.c, gen-protos.c, scan-decls.c, scan.c,
	scan.h): Remove.

gcc/testsuite:
	* g++.old-deja/g++.ext/attrib5.C, g++.old-deja/g++.jason/thunk3.C,
	gcc.c-torture/compile/981006-1.c: Don't XFAIL or add special
	options for removed targets.

libgcc:
	* config.host (arm-*-coff*, armel-*-coff*, arm-semi-aof,
	armel-semi-aof, h8300-*-*, i[34567]86-*-aout*, i[34567]86-*-coff*,
	m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd, rs6000-ibm-aix4.[12]*,
	powerpc-ibm-aix4.[12]*, sh-*-*): Remove.

From-SVN: r145158
2009-03-28 06:51:09 +00:00
Vladimir Makarov
20a07f4467 genautomata.c: Add a new year to the copyright.
2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>

	* genautomata.c: Add a new year to the copyright.  Add a new
	reference.
	(struct insn_reserv_decl): Add comments for member bypass_list.
	(find_bypass): Remove.
	(insert_bypass): New.
	(process_decls): Use insert_bypass.
	(output_internal_insn_latency_func): Output all bypasses with the
	same input insn in one switch case.

	* rtl.def (define_bypass): Describe bypass choice.
	* doc/md.texi (define_bypass): Ditto.

From-SVN: r145152
2009-03-27 17:43:26 -07:00
GCC Administrator
b9605c6cd4 Daily bump.
From-SVN: r145150
2009-03-28 00:17:00 +00:00
Richard Biener
3a0d06c195 gimplify.c (mark_addressable): Export.
2009-03-27  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (mark_addressable): Export.
	* tree-flow.h (mark_addressable): Declare.
	* tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
	* tree-ssa.c (verify_phi_args): Verify that address taken
	variables have TREE_ADDRESSABLE set.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
	(build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
	Do not mark decls TREE_ADDRESSABLE.
	(build_fold_addr_expr): Adjust.
	(fold_addr_expr): Remove.
	(fold_unary): Use build_fold_addr_expr.
	(fold_comparison): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* coverage.c (tree_coverage_counter_addr): Mark the array decl
	TREE_ADDRESSABLE.
	* gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
	(gimplify_modify_expr_to_memcpy): Mark source and destination
	addressable.
	* omp-low.c (create_omp_child_function): Mark the object decl
	TREE_ADDRESSABLE.
	(lower_rec_input_clauses): Mark the var we take the address of
	TREE_ADDRESSABLE.
	(lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.

	fortran/
	* trans-array.c (gfc_conv_descriptor_data_addr): Use
	gfc_build_addr_expr instead of build_fold_addr_expr.
	(gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
	gfc_trans_constant_array_constructor, gfc_conv_array_data,
	gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
	* trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
	gfc_conv_function_val, gfc_conv_operator_assign,
	gfc_conv_subref_array_arg, gfc_conv_function_call,
	gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_exponent,
	gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
	gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
	gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
	gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
	gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
	* trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
	gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
	build_filepos, gfc_trans_inquire, gfc_trans_wait,
	nml_get_addr_expr, transfer_namelist_element, build_dt,
	gfc_trans_dt_end, transfer_array_component, transfer_expr,
	transfer_array_desc, gfc_trans_transfer): Likewise.
	* trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
	* trans.c (gfc_build_addr_expr): Mark the base of the address
	TREE_ADDRESSABLE.

From-SVN: r145143
2009-03-27 23:03:02 +00:00
Richard Guenther
628c189edb gimplify.c (mark_addressable): Export.
2009-03-27  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (mark_addressable): Export.
	* tree-flow.h (mark_addressable): Declare.
	* tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
	* tree-ssa.c (verify_phi_args): Verify that address taken
	variables have TREE_ADDRESSABLE set.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
	(build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
	Do not mark decls TREE_ADDRESSABLE.
	(build_fold_addr_expr): Adjust.
	(fold_addr_expr): Remove.
	(fold_unary): Use build_fold_addr_expr.
	(fold_comparison): Likewise.
	(split_address_to_core_and_offset): Likewise.
	* coverage.c (tree_coverage_counter_addr): Mark the array decl
	TREE_ADDRESSABLE.
	* gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
	(gimplify_modify_expr_to_memcpy): Mark source and destination
	addressable.
	* omp-low.c (create_omp_child_function): Mark the object decl
	TREE_ADDRESSABLE.
	(lower_rec_input_clauses): Mark the var we take the address of
	TREE_ADDRESSABLE.
	(lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.

	fortran/
	* trans-array.c (gfc_conv_descriptor_data_addr): Use
	gfc_build_addr_expr instead of build_fold_addr_expr.
	(gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
	gfc_trans_constant_array_constructor, gfc_conv_array_data,
	gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
	* trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
	gfc_conv_function_val, gfc_conv_operator_assign,
	gfc_conv_subref_array_arg, gfc_conv_function_call,
	gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_exponent,
	gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
	gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
	gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
	gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
	gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
	* trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
	gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
	build_filepos, gfc_trans_inquire, gfc_trans_wait,
	nml_get_addr_expr, transfer_namelist_element, build_dt,
	gfc_trans_dt_end, transfer_array_component, transfer_expr,
	transfer_array_desc, gfc_trans_transfer): Likewise.
	* trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
	* trans.c (gfc_build_addr_expr): Mark the base of the address
	TREE_ADDRESSABLE.

From-SVN: r145142
2009-03-27 23:00:22 +00:00
Jan Hubicka
0387122d05 except.c (choose_personality_routine): Set terminate_node to abort for java exceptions.
* except.c (choose_personality_routine): Set terminate_node to abort
	for java exceptions.

From-SVN: r145140
2009-03-27 22:47:27 +00:00
Ian Lance Taylor
5fbd944721 memmem.c: New file, from gnulib.
* memmem.c: New file, from gnulib.
	* configure.ac: Add memmem to list of functions provided if they
	are not available on the host.
	* Makefile.in: Rebuild dependencies.
	(CFILES): Add memmem.c.
	(CONFIGURED_OFILES): Add memmem.o.
	* configure, config.in, functions.texi: Rebuild.

From-SVN: r145139
2009-03-27 22:38:23 +00:00
H.J. Lu
2ac26e152e re PR middle-end/39315 (Unaligned move used on aligned stack variable)
gcc/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/39315
	* cfgexpand.c (expand_one_stack_var_at): Change alignment
	limit to MAX_SUPPORTED_STACK_ALIGNMENT.

gcc/testsuite/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/39315
	* gcc.target/i386/pr39315-1.c: New.
	* gcc.target/i386/pr39315-2.c: Likewise.
	* gcc.target/i386/pr39315-3.c: Likewise.
	* gcc.target/i386/pr39315-4.c: Likewise.
	* gcc.target/i386/pr39315-check.c: Likewise.

From-SVN: r145138
2009-03-27 15:37:39 -07:00
Richard Guenther
472c7fbd09 re PR tree-optimization/39120 (Missed escape constraints for call results)
2009-03-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39120
	* tree-ssa-structalias.c (handle_rhs_call): Fill out return
	constraints.
	(handle_lhs_call): Process return constraints.  Add escape
	constraints if necessary.
	(handle_const_call): Fill out return constraints.  Make nested
	case more precise.  Avoid consttmp if possible.
	(handle_pure_call): Fill out return constraints.  Avoid
	callused if possible.
	(find_func_aliases): Simplify call handling.

	* gcc.c-torture/execute/pr39120.c: New testcase.

2009-03-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/39120
	* tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
	as a representative.
	(solve_graph): Do propagate CALLUSED.
	(handle_pure_call): Use a scalar constraint from CALLUSED for
	the return value.
	(find_what_p_points_to): CALLUSED shall not appear in poins-to
	solutions.

	* gcc.dg/torture/pta-callused-1.c: New testcase.

From-SVN: r145137
2009-03-27 22:36:33 +00:00
H.J. Lu
d9223014f9 re PR target/39323 (MAX_OFILE_ALIGNMENT in elfos.h is too big)
gcc/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* c-common.c (handle_aligned_attribute): Properly check alignment
	overflow.  Use (1U << i) instead of (1 << i).

	* emit-rtl.c (get_mem_align_offset): Use "unsigned int" for
	align.

	* expr.h (get_mem_align_offset): Updated.

	* tree.h (tree_decl_common): Change align to "unsigned int" and
	move it before pointer_alias_set.

gcc/ada/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* gcc-interface/utils.c (create_field_decl): Use "unsigned int"
	on bit_align.

gcc/testsuite/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR c/39323
	* gcc.dg/pr39323-1.c: New.
	* gcc.dg/pr39323-2.c: Likewise.
	* gcc.dg/pr39323-3.c: Likewise.

From-SVN: r145136
2009-03-27 15:33:16 -07:00
H.J. Lu
689b689c17 re PR rtl-optimization/38034 (Unnecessary register move)
gcc/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/38034
	* config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
	gr_register_operand with gr_reg_or_0_operand.
	(cmpxchg_rel_di): Likewise.
	(sync_lock_test_and_set<mode>): Likewise.

gcc/testsuite/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/38034
	* gcc.target/ia64/sync-1.c: New.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r145135
2009-03-27 15:28:20 -07:00
H.J. Lu
c619e9823e jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
	(true_regnum): Likewise.

	* rtlanal.c (subreg_info): Moved to ...
	* rtl.h (subreg_info): Here.  New.
	(subreg_get_info): New.

	* rtlanal.c (subreg_get_info): Make it extern.

From-SVN: r145134
2009-03-27 15:25:36 -07:00
H.J. Lu
51212b321b re PR target/39472 (Add -mabi=[ms|sysv])
gcc/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39472
	* config/i386/i386.c (ix86_abi): New.
	(override_options): Handle -mabi=.
	(ix86_function_arg_regno_p): Replace DEFAULT_ABI with
	ix86_abi.
	(ix86_call_abi_override): Likewise.
	(init_cumulative_args): Likewise.
	(function_arg_advance): Likewise.
	(function_arg_64): Likewise.
	(function_arg): Likewise.
	(ix86_pass_by_reference): Likewise.
	(ix86_function_value_regno_p): Likewise.
	(ix86_build_builtin_va_list_abi): Likewise.
	(setup_incoming_varargs_64): Likewise.
	(is_va_list_char_pointer): Likewise.
	(ix86_init_machine_status): Likewise.
	(ix86_reg_parm_stack_space): Use enum calling_abi on
	call_abi.
	(ix86_function_type_abi): Return enum calling_abi.  Rewrite
	for 64bit.  Replace DEFAULT_ABI with ix86_abi.
	(ix86_function_abi): Make it static and return enum
	calling_abi.
	(ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
	with ix86_abi.
	(ix86_fn_abi_va_list): Updated.

	* config/i386/i386.h (ix86_abi): New.
	(STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
	(CONDITIONAL_REGISTER_USAGE): Likewise.
	(CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
	(machine_function): Likewise.

	* config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
	with ix86_abi.
	* config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
	(STACK_BOUNDARY): Likewise.
	* config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.

	* config/i386/i386.opt (mabi=): New.

	* config/i386/i386-protos.h (ix86_cfun_abi): Changed to
	return enum calling_abi.
	(ix86_function_type_abi): Likewise.
	(ix86_function_abi): Removed.

	* doc/invoke.texi: Document -mabi= option for x86.

gcc/testsuite/

2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/39472
	* gcc.target/x86_64/abi/callabi/func-2a.c: New.
	* gcc.target/x86_64/abi/callabi/func-2b.c: Likewise.
	* gcc.target/x86_64/abi/callabi/func-indirect-2a.c: Likewise.
	* gcc.target/x86_64/abi/callabi/func-indirect-2b.c: Likewise.
	* gcc.target/x86_64/abi/callabi/vaarg-4a.c: Likewise.
	* gcc.target/x86_64/abi/callabi/vaarg-4b.c: Likewise.
	* gcc.target/x86_64/abi/callabi/vaarg-5a.c: Likewise.
	* gcc.target/x86_64/abi/callabi/vaarg-5b.c: Likewise.

From-SVN: r145133
2009-03-27 15:22:30 -07:00
Ian Lance Taylor
9027c95aba hashtable.h (_S_num_primes): Change to 29.
* include/backward/hashtable.h (_S_num_primes): Change to 29.
	(__stl_prime_list): Add 5 at the start of the list.

From-SVN: r145132
2009-03-27 22:01:15 +00:00
Sandra Loosemore
ea7557f04b server.c (run_shell): Quote directory name passed to cd.
2009-03-27  Sandra Loosemore  <sandra@codesourcery.com>

	fixincludes/
	* server.c (run_shell): Quote directory name passed to cd.

From-SVN: r145131
2009-03-27 17:56:01 -04:00
Kaveh R. Ghazi
7338ea632b builtins.c (real_dconstp): Delete.
* builtins.c (real_dconstp): Delete.
	(fold_builtin_logarithm): Remove inaccurate log(e) special case.

testsuite:
	* gcc.dg/torture/builtin-explog-1.c: Remove tests that aren't true
	for low precision (i.e. float).

From-SVN: r145130
2009-03-27 21:55:20 +00:00
Tobias Burnus
346a77d1d8 gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
2009-03-27  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
        (gfc_expr): Add is_snan.
        * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
        (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
        * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
        * resolve.c (build_default_init_expr): Update call.
        * target-memory.c (encode_float): Ditto.
        * trans-intrinsic.c
        * (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,

From-SVN: r145129
2009-03-27 22:55:13 +01:00
Dodji Seketeli
68599f330b re PR debug/37959 (g++ does not emit DW_AT_explicit)
PR debug/37959
	* dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
	(gen_subprogram_die): When a function is explicit, generate the
	DW_AT_explicit attribute.
	* langhooks.h (struct lang_hooks_for_decls): Add
	function_decl_explicit_p langhook.
	* langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
	(LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.

	* cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
	(cp_function_decl_explicit_p): New prototype.
	* cp-objcp-common.c (cp_function_decl_explicit_p): New function.

	* g++.dg/debug/dwarf2/explicit-constructor.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r145128
2009-03-27 22:44:21 +01:00
Jakub Jelinek
64d7685c6f builtins.c (fold_builtin_memory_op): Optimize memmove into memcpy if we can prove source and destination don't overlap.
* builtins.c (fold_builtin_memory_op): Optimize memmove
	into memcpy if we can prove source and destination don't overlap.

	* gcc.dg/memmove-2.c: New test.
	* gcc.dg/memmove-3.c: New test.

From-SVN: r145127
2009-03-27 22:40:08 +01:00
Jakub Jelinek
9f5e9983d9 tree-inline.c: Include gt-tree-inline.h.
* tree-inline.c: Include gt-tree-inline.h.
	(clone_fn_id_num): New variable.
	(clone_function_name): New function.
	(tree_function_versioning): Use it.
	* Makefile.in (GTFILES): Add tree-inline.c.

	* gcc.dg/ipa/ipacost-1.c: Adjust match pattern for change
	in clone naming.

From-SVN: r145126
2009-03-27 22:36:53 +01:00
Mark Mitchell
a143dc135e * crontab: Add 4.4 branch snapshots.
From-SVN: r145125
2009-03-27 21:00:28 +00:00
Mark Mitchell
e54d52a8fb * BASE-VER: Change to 4.5.0.
From-SVN: r145124
2009-03-27 20:56:48 +00:00
Xinliang David Li
e9d51dc6a3 Fix for PR39557
From-SVN: r145119
2009-03-27 17:20:51 +00:00
Xinliang David Li
4577cea1cd Fix for PR39548
From-SVN: r145118
2009-03-27 17:18:58 +00:00
H.J. Lu
0f7464f403 c-common.c (pointer_int_sum): Use %wd on return from tree_low_cst.
2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* c-common.c (pointer_int_sum): Use %wd on return from
	tree_low_cst.

From-SVN: r145112
2009-03-27 08:38:25 -07:00
H.J. Lu
a8847a7f30 c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC on return from tree_low_cst.
2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>

	* c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
	on return from tree_low_cst.

From-SVN: r145109
2009-03-27 07:44:13 -07:00
Andrew Pinski
8ec0d73b34 re PR c++/38638 (ICE superfluous 'typename')
gcc/cp/

2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c++/38638
	* parser.c (cp_parser_elaborated_type_specifier): If we have a
	typename tag and don't have either a TYPE_DECL or a
	TEMPLATE_ID_EXPR, set the type to NULL.

gcc/testsuite/

2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c++/38638
	* g++.dg/template/typename17.C: New testcase.
	* g++.dg/template/typename18.C: New testcase.

From-SVN: r145107
2009-03-27 06:36:33 -07:00
Andrew Pinski
b0957daf07 re PR c++/36799 ([c++0x] error on va_copy in -std=c++0x mode)
gcc/

2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c++/36799
	* ginclude/stdarg.h (va_copy): Define also for __GXX_EXPERIMENTAL_CXX0X__.

gcc/testsuite/

2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	PR c++/36799
	* g++.dg/other/var_copy-1.C: New test.

From-SVN: r145106
2009-03-27 06:28:44 -07:00
Simon Martin
48b6cd9d20 re PR c++/37647 (ICE with invalid use of constructor)
gcc/cp/

2009-03-27  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/37647
	* decl.c (grokdeclarator): Reject [con|de]stuctors in a non-class
	scope.

gcc/testsuite/

2009-03-27  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/37647
	* g++.dg/parse/ctor9.C: New test.

From-SVN: r145105
2009-03-27 06:17:37 -07:00
Simon Martin
6a837908f9 re PR c++/29727 (ICE on invalid initializer for template member)
gcc/cp/

2009-03-27  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/29727
	* decl.c (check_array_designated_initializer): Handle error_mark_node.

gcc/testsuite/

2009-03-27  Simon Martin  <simartin@users.sourceforge.net>

	PR c++/29727
	* g++.dg/init/error2.C: New test.

From-SVN: r145104
2009-03-27 06:11:29 -07:00
Manuel López-Ibáñez
a5f805df58 re PR c++/35652 (offset warning should be given in the front-end)
gcc/

2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/35652
	* builtins.h (c_strlen): Do not warn here.
	* c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
	* c-common.c (pointer_int_sum): Take an explicit location.
	Warn about offsets out of bounds.
	* c-common.h (pointer_int_sum): Adjust declaration.

gcc/cp/

2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/35652
	* typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum.

gcc/testsuite/

2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c++/35652
	* gcc.dg/pr35652.C: New.
	* g++.dg/warn/pr35652.C: New.
	* gcc.dg/format/plus-1.c: Adjust message.

From-SVN: r145102
2009-03-27 05:52:52 -07:00
GCC Administrator
9fd1d85489 Daily bump.
From-SVN: r145100
2009-03-27 00:16:39 +00:00
Ralf Wildenhues
6f401211af invoke.texi (i386 and x86-64 Windows Options): Fix texinfo markup glitch.
gcc/
        * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
        markup glitch.

From-SVN: r145095
2009-03-26 21:20:00 +00:00
Jakub Jelinek
5a59b39e8a re PR c++/39554 (-Wdisallowed-function-list fails when #including <algorithm>)
PR c++/39554
	* opts.c (warn_if_disallowed_function_p): Don't assume
	get_callee_fndecl must return non-NULL.

	* gcc.dg/wdisallowed-functions-3.c: New test.
	* g++.dg/warn/Wdisallowed-functions-3.C: New test.

From-SVN: r145094
2009-03-26 20:27:17 +01:00