Commit Graph

96171 Commits

Author SHA1 Message Date
Dennis Wassel c6ec7cc699 trans-array.c (gfc_trans_array_bound_check): Improved bounds checking error messages.
2009-09-30  Dennis Wassel  <dennis.wassel@gmail.com>

	* gcc/fortran/trans-array.c (gfc_trans_array_bound_check): Improved
	bounds checking error messages. (gfc_conv_array_ref): Likewise.
	(gfc_conv_ss_startstride): Likewise.

From-SVN: r152355
2009-10-01 02:32:41 +00:00
Martin Thuresson 4578037eb7 regex.c (byte_re_match_2_internal): Split declaration and assignment to avoid -Wc++-compat warning due to goto.
2009-09-30  Martin Thuresson  <martint@google.com>

	* regex.c (byte_re_match_2_internal): Split declaration and
	assignment to avoid -Wc++-compat warning due to goto.

From-SVN: r152354
2009-10-01 01:20:13 +00:00
GCC Administrator f2f49be3bb Daily bump.
From-SVN: r152353
2009-10-01 00:16:55 +00:00
Dave Korn c4f0333bbc configure.host (libgcj_sublib_ltflags): New variable.
* configure.host (libgcj_sublib_ltflags): New variable.
	* configure.ac (LIBGCJ_SUBLIB_LTFLAGS): AC_SUBST variable for
	the above in makefiles.
	* configure: Regenerate.

	* Makefile.am (libgcj_la_LDFLAGS_NOUNDEF): Rename from this ...
	(LIBJAVA_LDFLAGS_NOUNDEF): ... to this, initialise from
	LIBGCJ_SUBLIB_LTFLAGS (only when building sublibs), and ...
	(libgij_la_LDFLAGS, libgcj_tools_la_LDFLAGS, libjvm_la_LDFLAGS,
	lib_gnu_awt_xlib_la_LDFLAGS, libgcj_bc_la_LDFLAGS): ... use it in
	all these places to replace hard-coded -no-undefined and -bindir
	flags, as well as ...
	(libgcj_la_LDFLAGS): ... updating existing reference here.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Likewise.
	* testsuite/Makefile.in: Likewise.
	* gcj/Makefile.in: Likewise.

From-SVN: r152347
2009-09-30 22:20:54 +00:00
Tobias Burnus e56817dbc6 resolve.c (check_typebound_baseobject): Don't check for abstract types for CLASS.
fortran/
2009-09-30  Janus Weil  <janus@gcc.gnu.org>

        * resolve.c (check_typebound_baseobject): Don't check for
        abstract types for CLASS.
        (resolve_class_assign): Adapt for RHS being a CLASS.
        * trans-intrinsic.c (gfc_conv_associated): Add component ref
        if expr is a CLASS.

testsuite/
2009-09-30  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/select_type_4.f90: New test.

From-SVN: r152346
2009-09-30 22:45:07 +02:00
Tobias Burnus cf2b3c22a2 re PR fortran/40996 ([F03] ALLOCATABLE scalars)
fortran/
2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* check.c (gfc_check_same_type_as): New function for checking
	SAME_TYPE_AS and EXTENDS_TYPE_OF.
	* decl.c (encapsulate_class_symbol): Set ABSTRACT attribute for class
	container, if the contained type has it. Add an initializer for the
	class container.
	(add_init_expr_to_sym): Handle BT_CLASS.
	(vindex_counter): New counter for setting vindices.
	(gfc_match_derived_decl): Set vindex for all derived types, not only
	those which are being extended.
	* expr.c (gfc_check_assign_symbol): Handle NULL initialization of class
	pointers.
	* gfortran.h (gfc_isym_id): New values GFC_ISYM_SAME_TYPE_AS and
	GFC_ISYM_EXTENDS_TYPE_OF.
	(gfc_type_is_extensible): New prototype.
	* intrinsic.h (gfc_check_same_type_as): New prototype.
	* intrinsic.c (add_functions): Add SAME_TYPE_AS and EXTENDS_TYPE_OF.
	* primary.c (gfc_expr_attr): Handle CLASS-valued functions.
	* resolve.c (resolve_structure_cons): Handle BT_CLASS.
	(type_is_extensible): Make non-static and rename to
	'gfc_type_is_extensible.
	(resolve_select_type): Renamed type_is_extensible.
	(resolve_class_assign): Handle NULL pointers.
	(resolve_fl_variable_derived): Renamed type_is_extensible.
	(resolve_fl_derived): Ditto.
	* trans-expr.c (gfc_trans_subcomponent_assign): Handle NULL
	initialization of class pointer components.
	(gfc_conv_structure): Handle BT_CLASS.
	* trans-intrinsic.c (gfc_conv_same_type_as,gfc_conv_extends_type_of):
	New functions.
	(gfc_conv_intrinsic_function): Handle SAME_TYPE_AS and EXTENDS_TYPE_OF.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.h (type_selector, select_type_tmp): New global variables.
	* match.c (type_selector, select_type_tmp): New global variables,
	used for SELECT TYPE statements.
	(gfc_match_select_type): Better error handling. Remember selector.
	(gfc_match_type_is): Create temporary variable.
	* module.c (ab_attribute): New value 'AB_IS_CLASS'.
	(attr_bits): New string.
	(mio_symbol_attribute): Handle 'is_class'.
	* resolve.c (resolve_select_type): Insert pointer assignment statement,
	to assign temporary to selector.
	* symbol.c (gfc_get_ha_sym_tree): Replace selector by a temporary
	in SELECT TYPE statements.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* dump-parse-tree.c (show_code_node): Renamed 'alloc_list'.
	* gfortran.h (gfc_code): Rename 'alloc_list'. Add member 'ts'.
	(gfc_expr_to_initialize): New prototype.
	* match.c (alloc_opt_list): Correctly check type compatibility.
	Renamed 'alloc_list'.
	(dealloc_opt_list): Renamed 'alloc_list'.
	* resolve.c (expr_to_initialize): Rename to 'gfc_expr_to_initialize'
	and make it non-static.
	(resolve_allocate_expr): Set vindex for CLASS variables correctly.
	Move initialization code to gfc_trans_allocate. Renamed 'alloc_list'.
	(resolve_allocate_deallocate): Renamed 'alloc_list'.
	(check_class_pointer_assign): Rename to 'resolve_class_assign'. Change
	argument type. Adjust to work with ordinary assignments.
	(resolve_code): Call 'resolve_class_assign' for ordinary assignments.
	Renamed 'check_class_pointer_assign'.
	* st.c (gfc_free_statement): Renamed 'alloc_list'.
	* trans-stmt.c (gfc_trans_allocate): Renamed 'alloc_list'. Handle
	size determination and initialization of CLASS variables. Bugfix for
	ALLOCATE statements with default initialization and SOURCE block.
	(gfc_trans_deallocate): Renamed 'alloc_list'.

2009-09-30  Paul Thomas  <pault@gcc.gnu.org>

	* trans-expr.c (gfc_conv_procedure_call): Convert a derived
	type actual to a class object if the formal argument is a
	class.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/40996
	* decl.c (build_struct): Handle allocatable scalar components.
	* expr.c (gfc_add_component_ref): Correctly set typespec of expression,
	after inserting component reference.
	* match.c (gfc_match_type_is,gfc_match_class_is): Make sure that no
	variables are being used uninitialized.
	* primary.c (gfc_match_varspec): Handle CLASS array components.
	* resolve.c (resolve_select_type): Transform EXEC_SELECT_TYPE to
	EXEC_SELECT.
	* trans-array.c (structure_alloc_comps,gfc_trans_deferred_array):
	Handle allocatable scalar components.
	* trans-expr.c (gfc_conv_component_ref): Ditto.
	* trans-types.c (gfc_get_derived_type): Ditto.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* decl.c (encapsulate_class_symbol): Modify names of class container
	components by prefixing with '$'.
	(gfc_match_end): Handle COMP_SELECT_TYPE.
	* expr.c (gfc_add_component_ref): Modify names of class container
	components by prefixing with '$'.
	* gfortran.h (gfc_statement): Add ST_SELECT_TYPE, ST_TYPE_IS and
	ST_CLASS_IS.
	(gfc_case): New field 'ts'.
	(gfc_exec_op): Add EXEC_SELECT_TYPE.
	(gfc_type_is_extension_of): New prototype.
	* match.h (gfc_match_select_type,gfc_match_type_is,gfc_match_class_is):
	New prototypes.
	* match.c (match_derived_type_spec): New function.
	(match_type_spec): Use 'match_derived_type_spec'.
	(match_case_eos): Modify error message.
	(gfc_match_select_type): New function.
	(gfc_match_case): Modify error message.
	(gfc_match_type_is): New function.
	(gfc_match_class_is): Ditto.
	* parse.h (gfc_compile_state): Add COMP_SELECT_TYPE.
	* parse.c (decode_statement): Handle SELECT TYPE, TYPE IS and CLASS IS
	statements.
	(next_statement): Handle ST_SELECT_TYPE.
	(gfc_ascii_statement): Handle ST_SELECT_TYPE, ST_TYPE_IS, ST_CLASS_IS.
	(parse_select_type_block): New function.
	(parse_executable): Handle ST_SELECT_TYPE.
	* resolve.c (resolve_deallocate_expr): Handle BT_CLASS. Modify names of
	class container components by prefixing with '$'.
	(resolve_allocate_expr): Ditto.
	(resolve_select_type): New function.
	(gfc_resolve_blocks): Handle EXEC_SELECT_TYPE.
	(check_class_pointer_assign): Modify names of class container
	components by prefixing with '$'.
	(resolve_code): Ditto.
	* st.c (gfc_free_statement): Ditto.
	* symbol.c (gfc_type_is_extension_of): New function.
	(gfc_type_compatible): Use 'gfc_type_is_extension_of', plus a bugfix.
	* trans.c (gfc_trans_code): Handel EXEC_SELECT_TYPE.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>
	    Paul Thomas <pault@gcc.gnu.org> 

	* check.c (gfc_check_move_alloc): Arguments don't have to be arrays.
	The second argument needs to be type-compatible with the first (not the
	other way around, which makes a difference for CLASS entities).
	* decl.c (encapsulate_class_symbol): New function.
	(build_sym,build_struct): Handle BT_CLASS, call
	'encapsulate_class_symbol'.
	(gfc_match_decl_type_spec): Remove warning, use BT_CLASS.
	(gfc_match_derived_decl): Set vindex;
	* expr.c (gfc_add_component_ref): New function.
	(gfc_copy_expr,gfc_check_pointer_assign,gfc_check_assign_symbol):
	Handle BT_CLASS.
	* dump-parse-tree.c (show_symbol): Print vindex.
	* gfortran.h (bt): New basic type BT_CLASS.
	(symbol_attribute): New field 'is_class'.
	(gfc_typespec): Remove field 'is_class'.
	(gfc_symbol): New field 'vindex'.
	(gfc_get_ultimate_derived_super_type): New prototype.
	(gfc_add_component_ref): Ditto.
	* interface.c (gfc_compare_derived_types): Pointer equality check
	moved here from gfc_compare_types.
	(gfc_compare_types): Handle BT_CLASS and use
	gfc_type_compatible.
	* match.c (gfc_match_allocate,gfc_match_deallocate,gfc_match_call):
	Handle BT_CLASS.
	* misc.c (gfc_clear_ts): Removed is_class.
	(gfc_basic_typename,gfc_typename): Handle BT_CLASS.
	* module.c (bt_types,mio_typespec): Handle BT_CLASS.
	(mio_symbol): Handle vindex.
	* primary.c (gfc_match_varspec,gfc_variable_attr): Handle BT_CLASS.
	* resolve.c (find_array_spec,check_typebound_baseobject):
	Handle BT_CLASS.
	(resolve_ppc_call,resolve_expr_ppc): Don't call 'gfc_is_proc_ptr_comp'
	inside 'gcc_assert'.
	(resolve_deallocate_expr,resolve_allocate_expr): Handle BT_CLASS.
	(check_class_pointer_assign): New function.
	(resolve_code): Handle BT_CLASS, call check_class_pointer_assign.
	(resolve_fl_var_and_proc,type_is_extensible,resolve_fl_variable_derived,
	resolve_fl_variable): Handle BT_CLASS.
	(check_generic_tbp_ambiguity): Add special case.
	(resolve_typebound_procedure,resolve_fl_derived): Handle BT_CLASS.
	* symbol.c (gfc_get_ultimate_derived_super_type): New function.
	(gfc_type_compatible): Handle BT_CLASS.
	* trans-expr.c (conv_parent_component_references): Handle CLASS
	containers.
	(gfc_conv_initializer): Handle BT_CLASS.
	* trans-types.c (gfc_typenode_for_spec,gfc_get_derived_type):
	Handle BT_CLASS.

testsuite/
2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.dg/same_type_as_1.f03: New test.
	* gfortran.dg/same_type_as_2.f03: Ditto.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.dg/select_type_1.f03: Extended.
	* gfortran.dg/select_type_3.f03: New test.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.dg/class_allocate_1.f03: New test.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/40996
	* gfortran.dg/allocatable_scalar_3.f90: New test.
	* gfortran.dg/select_type_2.f03: Ditto.
	* gfortran.dg/typebound_proc_5.f03: Changed error messages.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.dg/block_name_2.f90: Modified error message.
	* gfortran.dg/select_6.f90: Ditto.
	* gfortran.dg/select_type_1.f03: New test.

2009-09-30  Janus Weil  <janus@gcc.gnu.org>

	* gfortran.dg/allocate_derived_1.f90: Remove -w option.
	* gfortran.dg/class_1.f03: Ditto.
	* gfortran.dg/class_2.f03: Ditto.
	* gfortran.dg/proc_ptr_comp_pass_1.f90: Ditto.
	* gfortran.dg/proc_ptr_comp_pass_2.f90: Ditto.
	* gfortran.dg/proc_ptr_comp_pass_3.f90: Ditto.
	* gfortran.dg/typebound_call_10.f03: Ditto.
	* gfortran.dg/typebound_call_2.f03: Ditto.
	* gfortran.dg/typebound_call_3.f03: Ditto.
	* gfortran.dg/typebound_call_4.f03: Ditto.
	* gfortran.dg/typebound_call_9.f03: Ditto.
	* gfortran.dg/typebound_generic_3.f03: Ditto.
	* gfortran.dg/typebound_generic_4.f03: Ditto.
	* gfortran.dg/typebound_operator_1.f03: Ditto.
	* gfortran.dg/typebound_operator_2.f03: Ditto.
	* gfortran.dg/typebound_operator_3.f03: Ditto.
	* gfortran.dg/typebound_operator_4.f03: Ditto.
	* gfortran.dg/typebound_proc_1.f08: Ditto.
	* gfortran.dg/typebound_proc_5.f03: Ditto.
	* gfortran.dg/typebound_proc_6.f03: Ditto.

From-SVN: r152345
2009-09-30 21:55:45 +02:00
Jason Merrill c39b74e132 remove duplicate changelog entry
From-SVN: r152342
2009-09-30 13:57:55 -04:00
Jason Merrill 79efe0b322 * g++.dg/eh/init-temp1.C: Improve test.
From-SVN: r152341
2009-09-30 13:56:00 -04:00
Jason Merrill c28a9eac6d semantics.c (lambda_expr_this_capture): Fix default capture of explicit capture of 'this'.
* semantics.c (lambda_expr_this_capture): Fix default capture
	of explicit capture of 'this'.

From-SVN: r152340
2009-09-30 13:55:54 -04:00
Jason Merrill 71d16049ff semantics.c (lambda_expr_this_capture): Fix default capture of explicit capture of 'this'.
* semantics.c (lambda_expr_this_capture): Fix default capture
	of explicit capture of 'this'.

From-SVN: r152339
2009-09-30 13:54:37 -04:00
Uros Bizjak 1f063d1016 alpha.c (alpha_gimplify_va_arg_1): Use ref-all pointers.
* config/alpha/alpha.c (alpha_gimplify_va_arg_1):
	Use ref-all pointers.
	(alpha_gimplify_va_arg): Ditto.

From-SVN: r152333
2009-09-30 18:09:53 +02:00
Jason Merrill f09666518d remove utf8
From-SVN: r152331
2009-09-30 11:49:31 -04:00
Jason Merrill 23823e0a4e * parser.c (cp_parser_lambda_expression): Don't add __ to __this.
From-SVN: r152330
2009-09-30 11:49:24 -04:00
Jason Merrill bfd6b23c4f * cp-tree.h (LANG_DECL_U2_CHECK): Check LANG_DECL_HAS_MIN.
From-SVN: r152329
2009-09-30 11:49:17 -04:00
Jakub Jelinek 53a51cef4c re PR target/41279 (252.eon performance regression)
PR target/41279
	* cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
	before insn counting loop now that BB_END (bb) is counted.  Ensure
	the return value isn't zero.

From-SVN: r152324
2009-09-30 11:57:56 +02:00
Nick Clifton 3c8348d376 config.gcc (sh-symbianelf): Replace definition of extra_objs with separate definitions of c_target_objs and...
* config.gcc (sh-symbianelf): Replace definition of extra_objs
        with separate definitions of c_target_objs and cxx_target_objs.
        * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
        and symbian-base.o.
        * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
        sh_symbian_import_export_class.
        * config/sh/sh-protos.h: Fix names of exported symbian functions.
        * config/sh/symbian.c: Delete, moving code into...
        * config/sh/symbian-base.c: ... here
        * config/sh/symbian-c.c: ... and here
        * config/sh/symbian-cxx.c: ... and here.

From-SVN: r152323
2009-09-30 07:27:28 +00:00
Uros Bizjak 08a4a761eb re PR target/22093 (Unaligned access to HI values causes unrecognizable insn error)
PR target/22093
	* config/alpha/alpha.md (unaligned_storehi_be): Force operand
	of plus RTX into register.

testsuite/ChangeLog:

	PR target/22093
	* gcc.target/alpha/pr22093.c: New test.

From-SVN: r152322
2009-09-30 09:13:20 +02:00
Jason Merrill c03c52480a properly merge include/ChangeLog
From-SVN: r152319
2009-09-29 23:03:31 -04:00
Jason Merrill d5f4edddeb merge in cxx0x-lambdas-branch@152308
From-SVN: r152318
2009-09-29 23:01:30 -04:00
Paolo Carlini 300ea2831b random.tcc: Define static const data members.
2009-09-29  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.tcc: Define static const data members.
	* include/tr1/random.tcc: Likewise.
	* testsuite/26_numerics/random/subtract_with_carry_engine/
	requirements/constants.cc: New.
	* testsuite/26_numerics/random/mersenne_twister_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/
	requirements/constants.cc: Likewise.
	* testsuite/26_numerics/random/shuffle_order_engine/requirements/
	constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/subtract_with_carry/
	requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/
	subtract_with_carry_01/requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/discard_block/
	requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/linear_congruential/
	requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/mersenne_twister/
	requirements/constants.cc: Likewise.
	* testsuite/tr1/5_numerical_facilities/random/xor_combine/
	requirements/constants.cc: Likewise.

From-SVN: r152317
2009-09-30 00:50:24 +00:00
Ralf Wildenhues 0b70519f01 install.texi cleanups.
gcc/:
	* doc/install.texi: Linguistic and markup fixes.
	(Configuration) <--disable-cpp>: Remove description.
	<--enable-maintainer-mode>: Autotools files are affected, too.
	<--with-sysroot>: Improve description.
	(Building): Bump required GNU make version.

From-SVN: r152316
2009-09-30 00:47:38 +00:00
Ralf Wildenhues c82852f706 sed and head portability fixes in ld version check.
libstdc++-v3/:
	PR libstdc++/38923
	* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Avoid 'head',
	use sed script portable to Solaris /bin/sed for extracting ld
	version.
	* configure: Regenerate.

libgomp/:
	* acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
	use sed script portable to Solaris /bin/sed for extracting ld
	version.
	* configure: Regenerate.

From-SVN: r152315
2009-09-30 00:43:28 +00:00
GCC Administrator d3666db42f Daily bump.
From-SVN: r152314
2009-09-30 00:16:51 +00:00
Harsha Jagasia cbf2e4d4f1 config.gcc (i[34567]86-*-*): Include fma4intrin.h.
2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config.gcc (i[34567]86-*-*): Include fma4intrin.h.
	(x86_64-*-*): Ditto.	

	* config/i386/fma4intrin.h: New file, provide common x86 compiler
	intrinisics for FMA4.
	* config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
	* config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
	Add FMA4 check and fma4intrin.h.
	* config/i386/i386-c.c(ix86_target_macros_internal): Check
	ISA_FLAG for FMA4. 
	* config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
	* config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
	constant for FMA4 support.
	(UNSPEC_FMA4_FMADDSUB): Ditto.
	(UNSPEC_FMA4_FMSUBADD): Ditto.
	* config/i386/i386.opt (-mfma4): New switch for FMA4 support.
	* config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add
	declaration.
	(ix86_expand_fma4_multiple_memory): Ditto.
	* config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
	(OPTION_MASK_ISA_FMA4_UNSET): New.	
	(OPTION_MASK_ISA_SSE4A_UNSET): Change definition to
	depend on FMA4.
	(OPTION_MASK_ISA_AVX_UNSET): Change definition to
	depend on FMA4.
	(ix86_handle_option): Handle -mfma4.
	(isa_opts): Handle -mfma4.
	(enum pta_flags): Add PTA_FMA4.
	(override_options): Add FMA4 support.	
	(IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
	(IX86_BUILTIN_VFMADDSD): Ditto.
	(IX86_BUILTIN_VFMADDPS): Ditto.
	(IX86_BUILTIN_VFMADDPD): Ditto.
	(IX86_BUILTIN_VFMSUBSS): Ditto.
	(IX86_BUILTIN_VFMSUBSD): Ditto.
	(IX86_BUILTIN_VFMSUBPS): Ditto.
	(IX86_BUILTIN_VFMSUBPD): Ditto.
	(IX86_BUILTIN_VFMADDSUBPS): Ditto.
	(IX86_BUILTIN_VFMADDSUBPD): Ditto.
	(IX86_BUILTIN_VFMSUBADDPS): Ditto.
	(IX86_BUILTIN_VFMSUBADDPD): Ditto.
	(IX86_BUILTIN_VFNMADDSS): Ditto.
	(IX86_BUILTIN_VFNMADDSD): Ditto.
	(IX86_BUILTIN_VFNMADDPS): Ditto.
	(IX86_BUILTIN_VFNMADDPD): Ditto.
	(IX86_BUILTIN_VFNMSUBSS): Ditto.
	(IX86_BUILTIN_VFNMSUBSD): Ditto.
	(IX86_BUILTIN_VFNMSUBPS): Ditto.
	(IX86_BUILTIN_VFNMSUBPD): Ditto.
	(IX86_BUILTIN_VFMADDPS256): Ditto.
	(IX86_BUILTIN_VFMADDPD256): Ditto.
	(IX86_BUILTIN_VFMSUBPS256): Ditto.
	(IX86_BUILTIN_VFMSUBPD256): Ditto.
	(IX86_BUILTIN_VFMADDSUBPS256): Ditto.
	(IX86_BUILTIN_VFMADDSUBPD256): Ditto.
	(IX86_BUILTIN_VFMSUBADDPS256): Ditto.
	(IX86_BUILTIN_VFMSUBADDPD256): Ditto.
	(IX86_BUILTIN_VFNMADDPS256): Ditto.
	(IX86_BUILTIN_VFNMADDPD256): Ditto.
	(IX86_BUILTIN_VFNMSUBPS256): Ditto.
	(IX86_BUILTIN_VFNMSUBPD256): Ditto.
	(enum multi_arg_type): New enum for describing the various FMA4
	intrinsic argument types.
	(bdesc_multi_arg): New table for FMA4 intrinsics.
	(ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
	(ix86_expand_multi_arg_builtin): New function for creating FMA4
	intrinsics.
	(ix86_expand_builtin): Add FMA4 intrinsic support.
	(ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
	operand instructions.
	(ix86_expand_fma4_multiple_memory): New function to split the
	second memory reference from FMA4 instructions.
	* config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
	(ssemodesuffixf2s): Ditto.
	(fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
	instructions.
	(fma4_fmsub<mode>4): Ditto.
	(fma4_fnmadd<mode>4): Ditto.
	(fma4_fnmsub<mode>4): Ditto.
	(fma4_vmfmadd<mode>4): Ditto.
	(fma4_vmfmsub<mode>4): Ditto.
	(fma4_vmfnmadd<mode>4): Ditto.
	(fma4_vmfnmsub<mode>4): Ditto.
	(fma4_fmadd<mode>4256): Ditto.
	(fma4_fmsub<mode>4256): Ditto.
	(fma4_fnmadd<mode>4256): Ditto.
	(fma4_fnmsub<mode>4256): Ditto.
	(fma4_fmaddsubv8sf4): Ditto.
	(fma4_fmaddsubv4sf4): Ditto.
	(fma4_fmaddsubv4df4): Ditto.
	(fma4_fmaddsubv2df4): Ditto.
	(fma4_fmsubaddv8sf4): Ditto.
	(fma4_fmsubaddv4sf4): Ditto.
	(fma4_fmsubaddv4df4): Ditto.
	(fma4_fmsubaddv2df4): Ditto.
	(fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
	instructions for intrinsics.
	(fma4i_fmsub<mode>4): Ditto.
	(fma4i_fnmadd<mode>4): Ditto.
	(fma4i_fnmsub<mode>4): Ditto.
	(fma4i_vmfmadd<mode>4): Ditto.
	(fma4i_vmfmsub<mode>4): Ditto.
	(fma4i_vmfnmadd<mode>4): Ditto.
	(fma4i_vmfnmsub<mode>4): Ditto.
	(fma4i_fmadd<mode>4256): Ditto.
	(fma4i_fmsub<mode>4256): Ditto.
	(fma4i_fnmadd<mode>4256): Ditto.
	(fma4i_fnmsub<mode>4256): Ditto.
	(fma4i_fmaddsubv8sf4): Ditto.
	(fma4i_fmaddsubv4sf4): Ditto.
	(fma4i_fmaddsubv4df4): Ditto.
	(fma4i_fmaddsubv2df4): Ditto.
	(fma4i_fmsubaddv8sf4): Ditto.
	(fma4i_fmsubaddv4sf4): Ditto.
	(fma4i_fmsubaddv4df4): Ditto.
	(fma4i_fmsubaddv2df4): Ditto.

	* doc/invoke.texi (-mfma4): Add documentation.
	* doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.

	* gcc.target/i386/fma4-check.h
	* gcc.target/i386/fma4-fma.c
	* gcc.target/i386/fma4-maccXX.c
	* gcc.target/i386/fma4-msubXX.c
	* gcc.target/i386/fma4-nmaccXX.c
	* gcc.target/i386/fma4-nmsubXX.c
	* gcc.target/i386/fma4-vector.c
	* gcc.target/i386/fma4-256-maccXX.c
	* gcc.target/i386/fma4-256-msubXX.c
	* gcc.target/i386/fma4-256-nmaccXX.c
	* gcc.target/i386/fma4-256-nmsubXX.c
	* gcc.target/i386/fma4-256-vector.c
	* gcc.target/i386/funcspec-2.c: New file.
	* gcc.target/i386/funcspec-4.c: Test error conditions
	related to FMA4.
	* gcc.target/i386/funcspec-5.c
	* gcc.target/i386/funcspec-6.c
	* gcc.target/i386/funcspec-8.c: Add FMA4.
	* gcc.target/i386/funcspec-9.c: New file.
	* gcc.target/i386/i386.exp: Add check_effective_target_fma4.
	* gcc.target/i386/isa-10.c
	* gcc.target/i386/isa-11.c
	* gcc.target/i386/isa-12.c
	* gcc.target/i386/isa-13.c
	* gcc.target/i386/isa-2.c
	* gcc.target/i386/isa-3.c
	* gcc.target/i386/isa-4.c
	* gcc.target/i386/isa-7.c
	* gcc.target/i386/isa-8.c
	* gcc.target/i386/isa-9.c: New file.
	* gcc.target/i386/isa-14.c
	* gcc.target/i386/isa-1.c
	* gcc.target/i386/isa-5.c
	* gcc.target/i386/isa-6.c: Add FMA4.
	* gcc.target/i386/sse-12.c
	* gcc.target/i386/sse-13.c
	* gcc.target/i386/sse-14.c
	* gcc.target/i386/sse-22.c: New file.
	* g++.dg/other/i386-2.C
	* g++.dg/other/i386-3.C
	* g++.dg/other/i386-5.C
	* g++.dg/other/i386-6.C: Add -mfma4 in dg-options.

From-SVN: r152311
2009-09-30 00:00:45 +00:00
Richard Henderson f8fd49b549 tree-eh.c (unsplit_eh): Do not unsplit if there's already an edge to the new destination block.
* tree-eh.c (unsplit_eh): Do not unsplit if there's already
        an edge to the new destination block.

From-SVN: r152310
2009-09-29 16:46:02 -07:00
John David Anglin 062a5fd1c0 re PR target/41393 (ICE in get_eh_region_and_lp_from_rtx at except.c:1692)
PR target/41393
	* pa.c (hppa_profile_hook): Use
	make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.

From-SVN: r152309
2009-09-29 23:04:46 +00:00
Steve Ellcey cd17b213b0 re PR target/41365 (gcc.dg/vect/vect-cond-[123].c abort due to bad code generation at -O1 and above)
2009-09-29  Steve Ellcey  <sje@cup.hp.com>
	    Alexander Monakov  <amonakov@ispras.ru>

	PR target/41365 
	* config/ia64/predicates.md (not_postinc_destination_operand): New.
	(not_postinc_memory_operand): New.
	(not_postinc_move_operand): New.
	* config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
	(*cmovsi_internal): Ditto.

Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>

From-SVN: r152306
2009-09-29 22:21:27 +00:00
Pat Haugen e7ada00d33 rs6000.c (rs6000_issue_rate): Don't artificially restrict issue_rate in first pass when...
* config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
        restrict issue_rate in first pass when scheduling for register
        pressure.

From-SVN: r152291
2009-09-29 18:58:56 +00:00
H.J. Lu 1c1a5fd8f8 re PR middle-end/41496 (Many regressions on trunk)
2009-09-29  H.J. Lu  <hongjiu.lu@intel.com>

	PR testsuite/41496
	* g++.dg/dfp/dfp.exp: Unset DEFAULT_CXXFLAGS if it didn't exist
	before.

From-SVN: r152287
2009-09-29 11:29:24 -07:00
Basile Starynkevitch 9b39cba9ab gengtype.c (plugin_output): New.
2009-09-29  Basile Starynkevitch  <basile@starynkevitch.net>
            Rafael Avila de Espindola  <espindola@google.com>

	* gengtype.c (plugin_output): New.
	(get_output_file_with_visibility): Return plugin_output for plugins.
	(main): Parse and use the -P option.
	* gty.texi: Update the command line format.


Co-Authored-By: Rafael Avila de Espindola <espindola@google.com>

From-SVN: r152286
2009-09-29 18:26:33 +00:00
H.J. Lu 4a0ce41d05 Fix a typo in ChangeLog.
From-SVN: r152285
2009-09-29 10:42:33 -07:00
Janis Johnson 66dfffa291 dg-bogus-exp-XF.c: Move dg-bogus directive.
* gcc.test-framework/dg-bogus-exp-XF.c: Move dg-bogus directive.
	* gcc.test-framework/dg-warning-exp-P.c: Move dg-warning directives.

From-SVN: r152284
2009-09-29 17:40:28 +00:00
Jakub Jelinek 08cc1e7fb7 re PR debug/41438 (VTA: libgomp build fails due to inconsistent debug info)
PR debug/41438
	* dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
	functions.
	(mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
	out if !const_ok_for_output.

	PR debug/41474
	* dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
	case VAR_LOCATION>: Remove gcc_unreachable ().

	* gcc.dg/debug/dwarf2/const-1.c: Add dg-require-visibility, make x
	hidden.
	* g++.dg/debug/dwarf2/const-1.C: Likewise.

From-SVN: r152282
2009-09-29 19:33:58 +02:00
Harsha Jagasia a795ca6e59 config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>

	* config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
	(x86_64-*-*): Ditto.
	* config/i386/smmintrin.h: Move instructions in mmintrin-common.h
	back to smmintrin.h.
	* config/i386/cpuid.h: (bit_SSE5): Remove SSE5 bit.
	* config/i386/x86intrin.h: Remove SSE5.
	* config/i386/mmintrin-common.h: Delete file.	
	* doc/extend.texi (x86 intrinsics): Remove SSE5 flags
	and builtins.
	
	* gcc.target/i386/i386.exp: Remove check_effective_target_sse5.
	* gcc.target/i386/isa-1.c
	* gcc.target/i386/isa-5.c
	* gcc.target/i386/isa-6.c: Remove SSE5.
	* gcc.target/i386/funcspec-4.c: Remove error conditions related to SSE5.
	* gcc.target/i386/avx-1.c
	* gcc.target/i386/avx-2.c
	* gcc.target/i386/sse-23.c: Remove comments to mmintrin-common.h.
	* gcc.target/i386/funcspec-9.c: Delete.

From-SVN: r152280
2009-09-29 17:15:32 +00:00
Richard Guenther b0e96404c1 alias.c (ao_ref_from_mem): Properly deal with off decl accesses resulting from stack temporaries on...
2009-09-29  Richard Guenther  <rguenther@suse.de>

	* alias.c (ao_ref_from_mem): Properly deal with off decl accesses
	resulting from stack temporaries on STRICT_ALIGNMENT targets.

From-SVN: r152278
2009-09-29 14:29:10 +00:00
Jakub Jelinek 4b653ed5a4 re PR testsuite/41444 (Typo in gcc/testsuite/gcc.dg/guality/guality.h)
PR testsuite/41444
	* gcc.dg/guality/guality.h (GUALITY_GDB_REDIRECT): Fix a typo
	in macro name definition for non-unix/win32/msdos.

From-SVN: r152275
2009-09-29 14:56:46 +02:00
Eric Botcazou 2cac601721 decl.c (gnat_to_gnu_entity): Factor out common code processing the component type into...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Factor out
	common code processing the component type into...
	<E_Array_Subtype>: Likewise.
	(gnat_to_gnu_component_type): ...this new static function.
	(maybe_pad_type): Minor cleanup.

From-SVN: r152273
2009-09-29 11:13:29 +00:00
Eric Botcazou 95c1c4bb9a decl.c (gnat_to_gnu_entity): Rewrite the handling of constrained discriminated record subtypes.
* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Rewrite the handling
	of constrained discriminated record subtypes.
	(components_to_record): Declare the type of the variants and of the
	qualified union.
	(build_subst_list): Move around.
	(compute_field_positions): Rename into...
	(build_position_list): ...this.  Return a TREE_VEC.
	(annotate_rep): Adjust for above renaming.
	(build_variant_list): New static function.
	(create_field_decl_from): Likewise.
	(get_rep_part): Likewise.
	(get_variant_part): Likewise.
	(create_variant_part_from): Likewise.
	(copy_and_substitute_in_size): Likewise.

From-SVN: r152272
2009-09-29 10:54:12 +00:00
Jakub Jelinek 1dd61ee507 guality.exp (gdb-test): New proc for use in dg-final.
* gcc.dg/guality/guality.exp (gdb-test): New proc for use in dg-final.
	* gcc.dg/guality/pr41353-1.c: New test.

From-SVN: r152271
2009-09-29 12:38:19 +02:00
Nick Clifton c7ac4fb53d function.c (current_function_name): If there is no current function just return "<none>".
* function.c (current_function_name): If there is no current
        function just return "<none>".

From-SVN: r152269
2009-09-29 09:31:41 +00:00
Daniel Kraft 9abe5e56e2 re PR fortran/39626 (Correctly implement details of Fortran 2008 BLOCK construct)
2009-09-29  Daniel Kraft  <d@domob.eu>

	PR fortran/39626
	* gfortran.h (enum gfc_statement): Add ST_BLOCK and ST_END_BLOCK.
	(struct gfc_namespace): Convert flags to bit-fields and add flag
	`construct_entities' for use with BLOCK constructs.
	(enum gfc_exec_code): Add EXEC_BLOCK.
	(struct gfc_code): Add namespace field to union for EXEC_BLOCK.
	* match.h (gfc_match_block): New prototype.
	* parse.h (enum gfc_compile_state): Add COMP_BLOCK.
	* trans.h (gfc_process_block_locals): New prototype.
	(gfc_trans_deferred_vars): Made public, new prototype.
	* trans-stmt.h (gfc_trans_block_construct): New prototype.
	* decl.c (gfc_match_end): Handle END BLOCK correctly.
	(gfc_match_intent): Error if inside of BLOCK.
	(gfc_match_optional), (gfc_match_value): Ditto.
	* match.c (gfc_match_block): New routine.
	* parse.c (decode_statement): Handle BLOCK statement.
	(case_exec_markers): Add ST_BLOCK.
	(case_end): Add ST_END_BLOCK.
	(gfc_ascii_statement): Handle ST_BLOCK and ST_END_BLOCK.
	(parse_spec): Check for statements not allowed inside of BLOCK.
	(parse_block_construct): New routine.
	(parse_executable): Parse BLOCKs.
	(parse_progunit): Disallow CONTAINS in BLOCK constructs.
	* resolve.c (is_illegal_recursion): Find real container procedure and
	don't get confused by BLOCK constructs.
	(resolve_block_construct): New routine.
	(gfc_resolve_blocks), (resolve_code): Handle EXEC_BLOCK.
	* st.c (gfc_free_statement): Handle EXEC_BLOCK statements.
	* trans-decl.c (saved_local_decls): New static variable.
	(add_decl_as_local): New routine.
	(gfc_finish_var_decl): Add variable as local if inside BLOCK.
	(gfc_trans_deferred_vars): Make public.
	(gfc_process_block_locals): New routine.
	* trans-stmt.c (gfc_trans_block_construct): New routine.
	* trans.c (gfc_trans_code): Handle EXEC_BLOCK statements.

2009-09-29  Daniel Kraft  <d@domob.eu>

	PR fortran/39626
	* gfortran.dg/block_1.f08: New test.
	* gfortran.dg/block_2.f08: New test.
	* gfortran.dg/block_3.f90: New test.
	* gfortran.dg/block_4.f08: New test.
	* gfortran.dg/block_5.f08: New test.
	* gfortran.dg/block_6.f08: New test.
	* gfortran.dg/block_7.f08: New test.
	* gfortran.dg/block_8.f08: New test.

From-SVN: r152266
2009-09-29 09:42:42 +02:00
Jerry DeLisle 9b13eb8457 re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/35862
	* gfortran.dg/round_1.f03: New test.
	* gfortran.dg/f2003_io_3.f03: Update test.

From-SVN: r152264
2009-09-29 02:50:48 +00:00
Jerry DeLisle 379924dd59 re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/35862
	* io.h (gfc_unit): Add round_status.
	(format_token): Add enumerators for rounding format specifiers.
	* transfer.c (round_opt): New options table.
	(formatted_transfer_scalar_read): Add set round_status for each rounding
	format token. (formatted_transfer_scalar_write): Likewise.
	* format.c (format_lex): Tokenize the rounding format specifiers.
	(parse_format_list): Parse the rounding format specifiers.
	* write_float.def (outout_float): Modify rounding code to use new
	variable rchar to set the appropriate rounding. Fix some whitespace.
	* unit.c (get_internal_unit): Initialize rounding mode for internal
	units. (init_units): Likewise.

From-SVN: r152263
2009-09-29 02:47:54 +00:00
Jerry DeLisle f2a71504e0 re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35862
	* io.c (format_token): Add enumerators for rounding format specifiers.
	(format_lex): Tokenize the rounding format specifiers.
	(gfc_match_open): Enable rounding modes in OPEN statement.

From-SVN: r152262
2009-09-29 02:44:38 +00:00
GCC Administrator cb1049f9c1 Daily bump.
From-SVN: r152261
2009-09-29 00:16:47 +00:00
Benjamin Kosnik bbcfe54a2d eh_terminate.cc: Fixes for -fno-exceptions.
2009-09-28  Benjamin Kosnik  <bkoz@redhat.com>

	*  libsupc++/eh_terminate.cc: Fixes for -fno-exceptions.
	*  libsupc++/vec.cc: Same.
	*  libsupc++/vterminate.cc: Same.
	*  libsupc++/new_opnt.cc: Same.

From-SVN: r152258
2009-09-29 00:15:30 +00:00
Sriraman Tallam b80b0fd9c7 tree-pass.h (register_pass_info): New structure.
* tree-pass.h (register_pass_info): New structure.	
	(pass_positioning_ops): Move enum from gcc-plugin.h.
	(register_pass): New function.
	* gcc-plugin.h (plugin_pass): Delete structure.
	(pass_positioning_ops): Delete enum.
	* plugin.c (regsiter_pass): Delete function.
	(position_pass): Delete function.
	(added_pass_nodes): Delete variable.
	(prev_added_pass_nodes): Delete variable.
	(pass_list_node): Delete structure.
	* passes.c (make_pass_instance): New function.
	(next_pass_1): Change to call make_pass_instance.
	(pass_list_node): Move structure from gcc-plugin.h.
	(added_pass_nodes): Move variable from plugin.c.
	(prev_added_pass_nodes): Move variable from plugin.c.
	(position_pass): New function.
	(register_pass): New function.

From-SVN: r152257
2009-09-28 23:15:35 +00:00
Kai Tietz ef6ed66d16 win64.S (_ffi_call_win64 stack): Remove for gnu assembly version use of ___chkstk.
2009-09-28  Kai Tietz  <kai.tietz@onevision.com>

        * src/x86/win64.S (_ffi_call_win64 stack): Remove for gnu
        assembly version use of ___chkstk.

From-SVN: r152256
2009-09-29 00:26:25 +02:00
Olivier Hainque 8244fa3974 Add PR reference to ChangeLog entry.
From-SVN: r152254
2009-09-28 21:53:28 +00:00
Easwaran Raman 650260479a ifcvt.c (noce_try_abs): Recognize pattern and call expand_one_cmpl_abs_nojump.
./:	* ifcvt.c (noce_try_abs): Recognize pattern and call
	expand_one_cmpl_abs_nojump.
	* optabs.c (expand_one_cmpl_abs_nojump): New function.
	* optabs.h (expand_one_cmpl_abs_nojump): Declare.
testsuite/:
	* gcc.target/i386/ifcvt-onecmpl-abs-1.c: New file.
	* gcc.c-torture/execute/ifcvt-onecmpl-abs-1.c: New file.

From-SVN: r152253
2009-09-28 21:26:31 +00:00