1. 11 Aug, 2009 11 commits
    • alpha.c (alpha_init_builtins): Nullify FWRITE and FWRITE_UNLOCKED. · b0d0a8a7
      
      	* config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
      	FWRITE_UNLOCKED.
      
      From-SVN: r150653
      Douglas B Rupp committed
    • alpha.c (alpha_return_in_memory): On VMS... · 050d3f9d
      
      	* config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
      	that records that fit in 64 bits are returned by immediate value,
      	as required by OpenVMS Calling Standard.
      	(function_value): Adjust for above modification.
      	(alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
      	virtual_incoming_args_rtx as base object, not next_arg.
      	* config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
      
      
      Co-Authored-By: Douglas B Rupp <rupp@gnat.com>
      Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
      
      From-SVN: r150652
      Vasiliy Fofanov committed
    • reload.c (find_reloads_subreg_address): Check the original req_equiv_mem address… · 2fa8205d
      reload.c (find_reloads_subreg_address): Check the original req_equiv_mem address to detect the case where an address is...
      
      	* reload.c (find_reloads_subreg_address): Check the original
      	req_equiv_mem address to detect the case where an address is
      	not valid in the outer mode.
      
      From-SVN: r150649
      Ulrich Weigand committed
    • re PR bootstrap/40788 (ICE on sparc: tree check: expected class 'expression',… · ac8f7e42
      re PR bootstrap/40788 (ICE on sparc: tree check: expected class 'expression', have 'declaration' (var_decl) in gimplify_va_arg_expr, at builtins.c:5107)
      
      2009-08-11  Richard Guenther  <rguenther@suse.de>
              
              PR bootstrap/40788
              * builtins.c (gimplify_va_arg_expr): Do not call 
              SET_EXPR_LOCATION.
      
      From-SVN: r150648
      Richard Guenther committed
    • vms.h (OPTIMIZATION_OPTIONS): Remove · fddeba6d
      
      	* config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
      	(OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
      
      From-SVN: r150647
      Douglas B Rupp committed
    • alpha.c (alpha_sa_size): Force procedure type to PT_STACK when frame_pointer_needed on OpenVMS. · 1d3499d8
      
      	* config/alpha/alpha.c (alpha_sa_size): Force procedure type to
      	PT_STACK when frame_pointer_needed on OpenVMS.
      	(alpha_pv_save_size, alpha_using_fp): Remove.
      	(alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
      	with proper processing for PT_NULL.
      	(alpha_vms_initial_elimination_offset): New function. Support for
      	INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
      	(alpha_sa_size): Force procedure type to PT_STACK when
      	frame_pointer_needed on OpenVMS.
      	* config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
      	(alpha_using_fp): Likewise.
      	(alpha_vms_can_eliminate): Add prototype.
      	(alpha_vms_initial_elimination_offset): Likewise.
      	* config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
      	Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
      
      
      Co-Authored-By: Douglas B Rupp <rupp@gnat.com>
      
      From-SVN: r150646
      Olivier Hainque committed
    • alpha.c (common_object_handler): New function. · 18fd5621
      
      	* config/alpha/alpha.c (common_object_handler): New function.
      	(vms_attribute_table): Declare a single attribute "common_object".
      	(vms_output_aligned_decl_common): New global function.
      	(SECTION_VMS_OVERLAY): Delete.
      	(SECTION_VMS_GLOBAL): Likewise.
      	(SECTION_VMS_INITIALIZE): Likewise.
      	(vms_asm_named_section): Remove support for above flags.
      	(vms_section_type_flags): Delete.
      	(TARGET_SECTION_TYPE_FLAGS): Likewise.
      	* config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
      	* config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
      	(ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
      
      
      Co-Authored-By: Douglas B Rupp <rupp@gnat.com>
      
      From-SVN: r150645
      Eric Botcazou committed
    • future: Move error handling bits outside macro guard. · 41ca4246
      2009-08-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/std/future: Move error handling bits outside macro guard.
      	* src/future.cc: Adjust.
      
      	* include/precompiled/stdc++.h: Add future.
      	* doc/xml/manual/using.xml: Same.
      
      From-SVN: r150642
      Benjamin Kosnik committed
    • hashtable.cc: Just definitions. · a00e3769
      2009-08-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* src/hashtable.cc: Just definitions.
      	* src/hashtable_c++0x.cc: Compile C++0x versions.
      	* src/hash.cc: Same.
      	* src/hash_c++0x.cc: Same.
      	src/hash_tr1.cc: Compile TR1 versions.
      	src/hashtable_tr1.cc: Same.
      
      	* src/limits_c++0x.cc: Sync build error handling.
      
      	* src/Makefile.am (sources): Change hash.cc to hash_tr1.cc,
      	hashtable.cc to hashtable_tr1.cc.
      	* src/Makefile.in: Regenerate.
      
      From-SVN: r150641
      Benjamin Kosnik committed
    • functional: Doxygen markup. · 53020026
      2009-08-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/tr1_impl/functional: Doxygen markup.
      
      	* doc/html/*: Regenerate.
      
      From-SVN: r150640
      Benjamin Kosnik committed
    • Daily bump. · 56cd0445
      From-SVN: r150639
      GCC Administrator committed
  2. 10 Aug, 2009 22 commits
    • re PR target/41015 (SH: miscompilation for sh4-linux) · 092f3f97
      	PR target/41015
      	* longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
      	(sub_ddmmss): Likewise.
      
      From-SVN: r150635
      SUGIOKA Toshinobu committed
    • Implement DR 757... · e8f43da6
      	Implement DR 757: It's OK for a decl to use a type without linkage
      	so long as the decl is defined in the current translation unit.
      	* decl2.c (no_linkage_decls): New vector.
      	(mark_used): Add decls that use types with no linkage.
      	(cp_write_global_declarations): Check that they are defined.
      	(decl_defined_p, no_linkage_error): New fns.
      	* cp-tree.h (DECL_NO_LINKAGE_CHECKED): New macro.
      	(struct lang_decl_base): Add flag.
      	* decl.c (grokfndecl): Don't check type linkage.
      	(grokvardecl): If the type has no linkage, just make sure
      	DECL_LANG_SPECIFIC is set.
      	* pt.c (check_instantiated_arg): Don't check type linkage.
      	* name-lookup.c (is_local_extern): New fn.
      	* name-lookup.h: Declare it.
      
      From-SVN: r150634
      Jason Merrill committed
    • future: Fixes for -fno-exceptions. · 8d1b99e2
      2009-08-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/std/future: Fixes for -fno-exceptions.
      	* include/bits/functexcept.h: Same.
      	* libsupc++/exception_ptr.h: Same.
      	* src/pool_allocator.cc: Same.
      	* src/future.cc: Same.
      	* src/functexcept.cc: Same.
      	* config/abi/pre/gnu.ver: New exports.
      	* testsuite/30_threads/packaged_task/cons/assign_neg.cc: Adjust.
      	* testsuite/30_threads/packaged_task/cons/copy_neg.cc: Same.
      	* testsuite/30_threads/unique_future/cons/assign_neg.cc: Same.
      	* testsuite/30_threads/unique_future/cons/copy_neg.cc: Same.
      	* testsuite/30_threads/shared_future/cons/assign_neg.cc: Same.
      	* testsuite/30_threads/promise/cons/assign_neg.cc: Same.
      	* testsuite/30_threads/promise/cons/copy_neg.cc: Same.
      
      	* testsuite/23_containers/deque/operators/1.cc: Separate in two...
      	* testsuite/23_containers/deque/operators/2.cc: New.
      
      From-SVN: r150633
      Benjamin Kosnik committed
    • re PR bootstrap/41018 (bootstrap broken on FreeBSD powerpc) · 35076532
      2009-08-10  Andreas Tobler  <a.tobler@schweiz.org>
      
      	PR bootstrap/41018
      	* config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
      	year.
      
      From-SVN: r150632
      Andreas Tobler committed
    • dg.exp: Test also c-c++-common dir. · 812a5d4b
      2009-08-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      testsuite/
             * gcc.dg/dg.exp: Test also c-c++-common dir.
             * g++.dg/dg.exp: Likewise.
             * g++.dg/warn/Wconversion-real.C: Delete.
             * gcc.dg/Wconversion-real.c: Move to ...
             * c-c++-common/Wconversion-real.c: ... here.
             * lib/target-supports.exp
             (check_effective_target_c,check_effective_target_c++): New.
      
      From-SVN: r150627
      Manuel López-Ibáñez committed
    • re PR middle-end/37053 (ICE in reload_cse_simplify_operands, at postreload.c:395) · 0159ec79
      	PR target/37053
      	* reload1.c (reload_as_needed): Use cancel_changes to completely
      	undo a failed replacement attempt.
      
      From-SVN: r150626
      Ulrich Weigand committed
    • * Moved ChangeLog entry to the correct ChangeLog · ee26a76d
      From-SVN: r150625
      Neil Vachharajani committed
    • make.adb: Handle multilib · 305418c8
      2009-08-10  Laurent GUERBY  <laurent@guerby.net>
      
              * make.adb: Handle multilib
      
      From-SVN: r150623
      Laurent GUERBY committed
    • re PR fortran/37425 (Fortran 2003: GENERIC bindings as operators) · 94747289
      2009-08-10  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/37425
      	* gfortran.dg/typebound_operator_1.f03: New test.
      	* gfortran.dg/typebound_operator_2.f03: New test.
      
      2009-08-10  Daniel Kraft  <d@domob.eu>
      
      	PR fortran/37425
      	* gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op.
      	(gfc_find_typebound_user_op): New routine.
      	(gfc_find_typebound_intrinsic_op): Ditto.
      	(gfc_check_operator_interface): Now public routine.
      	* decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=).
      	* interface.c (check_operator_interface): Made public, renamed to
      	`gfc_check_operator_interface' accordingly and hand in the interface
      	as gfc_symbol rather than gfc_interface so it is useful for type-bound
      	operators, too.  Return boolean result.
      	(gfc_check_interfaces): Adapt call to `check_operator_interface'.
      	* symbol.c (gfc_get_namespace): Initialize new field `tb_op'.
      	(gfc_free_namespace): Free `tb_uop_root'-based tree.
      	(find_typebound_proc_uop): New helper function.
      	(gfc_find_typebound_proc): Use it.
      	(gfc_find_typebound_user_op): New method.
      	(gfc_find_typebound_intrinsic_op): Ditto.
      	* resolve.c (resolve_tb_generic_targets): New helper function.
      	(resolve_typebound_generic): Use it.
      	(resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New.
      	(resolve_typebound_procedures): Resolve operators, too.
      	(check_uop_procedure): New, code from gfc_resolve_uops.
      	(gfc_resolve_uops): Moved main code to new `check_uop_procedure'.
      
      From-SVN: r150622
      Daniel Kraft committed
    • re PR middle-end/41006 (verify_stmts failed: error: non-trivial conversion at assignment) · 4f4e722e
      2009-08-10  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/41006
      	* tree-ssa.c (useless_type_conversion_p_1): Fold into ...
      	(useless_type_conversion_p): ... here.  Require pointer targets
      	to be compatible.
      
      	* gcc.c-torture/compile/pr41006-1.c: New testcase.
      	* gcc.c-torture/compile/pr41006-2.c: Likewise.
      
      From-SVN: r150621
      Richard Guenther committed
    • re PR fortran/40940 ([F03] CLASS statement) · 727e8544
      2009-08-10  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40940
      	* decl.c (gfc_match_type_spec): Match CLASS statement and warn about
      	missing polymorphism.
      	* gfortran.h (gfc_typespec): Add field 'is_class'.
      	* misc.c (gfc_clear_ts): Initialize 'is_class' to zero.
      	* resolve.c (type_is_extensible): New function to check if a derived
      	type is extensible.
      	(resolve_fl_variable_derived): Add error checks for CLASS variables.
      	(resolve_typebound_procedure): Disallow non-polymorphic passed-object
      	dummy arguments, turning warning into error.
      	(resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic
      	passed-object dummy arguments for procedure pointer components,
      	turning warning into error. Add error check for CLASS components.
      
      2009-08-10  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/40940
      	* gfortran.dg/class_1.f03: New.
      	* gfortran.dg/class_2.f03: New.
      	* gfortran.dg/proc_ptr_comp_pass_1.f90: Use CLASS instead of TYPE.
      	* 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_generic_3.f03: Ditto.
      	* gfortran.dg/typebound_generic_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: r150620
      Janus Weil committed
    • [multiple changes] · 477eca00
      2009-08-10  Vincent Celier  <celier@adacore.com>
      
      	* prj-env.adb (Create_Config_Pragmas_File.Write_Temp_File): Do not use
      	the temporary file name in the error message when the temporary file
      	cannot be created.
      
      2009-08-10  Yannick Moy  <moy@adacore.com>
      
      	* gnat_ugn.texi: Fix typo
      
      From-SVN: r150619
      Arnaud Charlet committed
    • [multiple changes] · 68716ad5
      2009-08-10  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch7.adb: Add ??? comment for last change
      
      2009-08-10  Vincent Celier  <celier@adacore.com>
      
      	* prj-env.adb (Add_To_Buffer): New procedure
      	(Create_Config_Pragmas_File): Write to temporary file in one shot
      	(Create_Mapping_File): Ditto
      	(Set_Ada_Paths): Ditto
      
      From-SVN: r150618
      Arnaud Charlet committed
    • re PR ada/17566 (Gnatxref formatting) · 6d93ae14
      2009-08-10  Vincent Celier  <celier@adacore.com>
      
      	PR ada/17566
      	* xref_lib.adb (Print_Xref): Make sure that there is at least one space
      	between a declaration name and its type.
      
      From-SVN: r150617
      Vincent Celier committed
    • re PR c++/40866 (ICE in create_tmp_var, at gimplify.c:504) · b1d82db0
      2009-08-10  Dodji Seketeli  <dodji@redhat.com>
      
      gcc/ChangeLog:
      	PR c++/40866
      	* tree-inline.c (copy_statement_list): The resulting copy shouldn't
      	loose the original type of the statement list.
      
      gcc/testsuite/ChangeLog:
      	PR c++/40866
      	* g++.dg/expr/stmt-expr-1.C: New test.
      
      From-SVN: r150615
      Dodji Seketeli committed
    • alpha.c: Include libfuncs.h · 5e3fef6c
      
      	* config/alpha/alpha.c: Include libfuncs.h
      	(avms_asm_output_extern): New function.
      	(alpha_init_libfuncs): Init some decc libfuncs.
      	* config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
      	* config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
      	(DO_CRTL_NAMES): Define.
      	(LIB_SPEC): Remove.
      	* config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
      	(LONG_TYPE_SIZE): Define.
      	(TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
      	(SUBTARGET_SWITCHES): Define malloc64 switch.
      	(TARGET_DEFAULT): Default MASK_MALLOC64 set.
      	(MASK_RETURN_ADDR): Define.
      	doc/invoke.texi (mmalloc64): Document switch.
      
      From-SVN: r150614
      Douglas B Rupp committed
    • alpha.c (struct machine_function): New flag for VMS, uses_condition_handler. · 221cf9ab
      
      	* config/alpha/alpha.c (struct machine_function): New flag for VMS,
      	uses_condition_handler.
      	(alpha_expand_builtin_establish_vms_condition_handler): New expander.
      	(alpha_expand_builtin_revert_vms_condition_handler): New expander.
      	(enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
      	and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
      	(code_for_builtin): New insn codes for the new alpha_builtins.
      	(alpha_init_builtins): Register the new functions as BUILT_IN_MD.
      	(alpha_sa_size): Account for uses_condition_handler.
      	(alpha_expand_prologue): Likewise.
      	(alpha_start_function): Likewise.
      	(alpha_expand_epilogue): Likewise.
      	* config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
      	establish/revert expanders.
      	* config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
      	* config/alpha/alpha.md	(builtin_establish_vms_condition_handler):
      	New expander, resorting to the alpha.c associated function.
      	(builtin_revert_vms_condition_handler): Likewise.
      	* config/alpha/vms-gcc_shell_handler.c: New file. Implements
      	__gcc_shell_handler, the static VMS condition handler used as
      	an indirection wrapper to the current dynamically established
      	handler.
      	* config/alpha/vms-unwind.h: Complete rewrite.
      	* config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
      	* config/alpha/vms.h (MD_UNWIND_SUPPORT):
      	
      
      Co-Authored-By: Douglas B Rupp <rupp@gnat.com>
      
      From-SVN: r150612
      Olivier Hainque committed
    • alpha.c (alpha_links): Add 'target' field. · b714133e
      
      	* config/alpha/alpha.c (alpha_links): Add 'target' field.
      	(alpha_need_linkage): Handle aliases.  Return function symbol.
      	(alpha_use_linkage): Rename 'linkage' argument to 'func'.
      	Use ultimate alias target for the linkage name.
      	* config/alpha/alpha.md (movmemdi): Use the symbol returned
      	by alpha_need_linkage for the function symbol.
      	(setmemdi): Likewise.
      
      
      Co-Authored-By: Douglas B Rupp <rupp@gnat.com>
      
      From-SVN: r150611
      Eric Botcazou committed
    • alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS. · 3bd1b109
      
      	* config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
      	* config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
      	(ASM_WEAKEN_LABEL): Define.
      	(CRT_CALL_STATIC_FUNCTION): Define.
      	(STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
      	(ENDFILE_SPEC): Define.
      	(INIT_SECTION_ASM_OP): Define.
      	* config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
      	* config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
      	crtend.o crtendS.o.
      	(MULTILIB_OSDIRNAMES): Define.
      	(shlib_version): Define.
      	(SHLIB_EXT): Define.
      	(SHLIB_OBJS): Define.
      	(SHLIB_NAME): Define.
      	(SHLIB_MULTILIB): Define.
      	(SHLIB_INSTALL): Define.
      	(SHLIB_SYMVEC): Define.
      	(SHLIB_SYMVECX2): Define.
      	(SHLIB_LINK): Define.
      
      From-SVN: r150610
      Douglas B Rupp committed
    • alpha.c (alpha_initialize_trampoline): Initialize VMS trampoline IAW ABI for… · fe2786f5
      alpha.c (alpha_initialize_trampoline): Initialize VMS trampoline IAW ABI for bounded procedure calls.
      
      
      	* config/alpha/alpha.c (alpha_initialize_trampoline):
      	Initialize VMS trampoline IAW ABI for bounded procedure calls.
      	(alpha_start_function): Emit transfer address on nested functions
      	for VMS trampoline call.
      	* config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
      	since no longer used.
      	* config/alpha/vms-tramp.asm: Remove.
      	* config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
      	since now only data initialized at runtime.
      
      From-SVN: r150609
      Douglas B Rupp committed
    • vms.h (HANDLE_SYSV_PRAGMA): Define. · c889a16f
      
      	* config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
      	(LINK_GCC_C_SEQUENCE_SPEC): Define.
      	(MD_EXEC_PREFIX): Remove, no longer used.
      	(MD_STARTFILE_PREFIX): Likewise.
      	(INCLUDE_DEFAULTS): Likewise.
      	* config/alpha/t-vms:
      	(vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
      
      From-SVN: r150608
      Douglas B Rupp committed
    • Daily bump. · ed5655ce
      From-SVN: r150603
      GCC Administrator committed
  3. 09 Aug, 2009 7 commits
    • re PR tree-optimization/41016 (ICE in build_int_cst_wide with -O1) · a6450905
      2009-08-09  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/41016
      	* tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification
      	bug.
      	(operand_precision): Remove.
      	(integral_operand_p): Likewise.
      	(recognize_single_bit_test): Adjust.
      
      	* gcc.c-torture/compile/pr41016.c: New testcase.
      
      From-SVN: r150595
      Richard Guenther committed
    • c-common.c (c_fully_fold_internal): Issue a warning if a binary operation overflows. · f5178456
      gcc/
      	* c-common.c (c_fully_fold_internal): Issue a warning if a binary
      	operation overflows.  Likewise non-cast unary arithmetic.
      	If one arm of a conditional expression is always taken,
      	inhibit evaluation warnings for the other arm.  Likewise inhibit
      	evaluation warnings for the second && or || operand if the first
      	operand is enough to determine the result.
      	* c-typeck.c (build_conditional_expr): Apply the same inhibition
      	rules here.
      	(build_binary_op): Prevent duplicate evaluation warnings.
      
      gcc/testsuite/
      	* gcc.dg/overflow-warn-8.c: New test.
      
      From-SVN: r150594
      Richard Sandiford committed
    • tree-out-of-ssa.c (insert_value_copy_on_edge): If the source and destination… · 8f048d2f
      tree-out-of-ssa.c (insert_value_copy_on_edge): If the source and destination have different modes...
      
      gcc/
      	* tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
      	and destination have different modes, Use promote_mode to
      	determine the signedness of the conversion.  Assert that the
      	promoted source mode matches the destination mode.  Don't pass
      	the destination and destination mode to expand_expr if the source
      	mode is different.  Simplify conversion logic.
      
      From-SVN: r150592
      Richard Sandiford committed
    • re PR tree-optimization/41008 (ICE in vect_is_simple_reduction, at tree-vect-loop.c:1708) · 6f4454fc
      
      	PR tree-optimization/41008
      	* tree-vect-loop.c (vect_is_simple_reduction): Get operands
      	from condition only in case it's a comparison. Adjust checks.
      
      From-SVN: r150591
      Ira Rosen committed
    • re PR libfortran/40549 (Building libgfortran as a DLL) · 0a940ddd
      	PR libfortran/40549
      	* Makefile.in (LTLDFLAGS): Add -no-undefined.
      	* Makefile.am: Regenerate.
      	* libgfortran.h: Remove unused block of code.
      
      From-SVN: r150590
      Francois-Xavier Coudert committed
    • re PR fortran/40955 (STDCALL attributes are not saved in the .MOD files) · 2b374f55
      2009-08-05  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/40955
              * gfortran.h (ext_attr_id_t): Add typedef for this enum.
              (gfc_add_ext_attribute): Use it.
              * decl.c (gfc_match_gcc_attributes): Ditto.
              * expr.c (gfc_check_pointer_assign): Ditto.
              * symbol.c (gfc_add_ext_attribute): Ditto.
              (gfc_copy_attr): Copy also ext_attr.
              * resolve.c (resolve_fl_derived,resolve_symbol): Ditto.
              * module.c (mio_symbol_attribute): Save ext_attr in the mod
              * file.
      
      2009-08-05  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/40955
              * gfortran.dg/module_md5_1.f90: Update MD5 check sum.
      
      From-SVN: r150589
      Tobias Burnus committed
    • tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function. · 2c08497a
      	* tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
      	* tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
      	* tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
      	(enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
      	(dump_cand): Handle them.
      	(struct iv_cand): New members COST_STEP and AINC_USE.
      	(stmt_after_increment): Likewise.
      	(stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
      	callers changed.  Use gimple_uid comparison instead of scanning.
      	(add_candidate_1): When looking for identical candidates, take
      	AINC_USE into account.  Set it for new candidates.
      	(force_expr_to_var_cost): Cast target_spill_cost to int.
      	(get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
      	All callers changed.  Check for availability of autoinc addressing
      	modes, both in general for a given mode, and in the specific use
      	case.
      	(get_computation_cost_at): New argument CAN_AUTOINC.  All callers
      	changed.
      	(get_computation_cost): Likewise.
      	(autoinc_possible_for_pair, set_autoinc_for_original_candidates,
      	add_autoinc_candidates): New static functions.
      	(add_candidate): Call add_autoinc_candidates for candidates based on
      	a USE_ADDRESS use.
      	(find_iv_candidates): Call set_autoinc_for_original_candidates.
      	(determine_use_iv_cost_address): If we have an autoinc candidate at
      	the matching use, verify autoinc is possible and subtract the cost
      	of the candidate's step from the cost.
      	(determine_iv_cost): Record the cost of the increment in the COST_STEP
      	member of the candidate.
      	(tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
      	determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.
      
      testsuite/
      	* gcc.target/bfin/loop-autoinc.c: New file.
      
      From-SVN: r150588
      Bernd Schmidt committed