Commit Graph

116896 Commits

Author SHA1 Message Date
Uros Bizjak
69f088a73a re PR target/53227 (FAIL: gcc.target/i386/movbe-2.c scan-assembler-times movbe[ \t] 4)
PR target/53227
	* config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
	(bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
	predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
	(bswapsi2): Ditto.
	(*bswapdi2_doubleword): New insn pattern.
	(*bswap<mode>2): Rename from *bswap<mode>2_1.

From-SVN: r187215
2012-05-06 22:47:59 +02:00
Tobias Burnus
ea59b186fb re PR fortran/41587 ([OOP] ICE with ALLOCATABLE CLASS components)
2012-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41587
        * decl.c (build_struct): Don't ignore FAILED status.

2012-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41587
        * gfortran.dg/class_array_13.f90: New.

From-SVN: r187214
2012-05-06 22:30:05 +02:00
Richard Sandiford
91000c66b9 mips.c (mips_set_reg_reg_piece_cost): New function.
gcc/
	* config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
	(mips_set_reg_reg_cost): Likewise.
	(mips_rtx_costs): Handle SET.

From-SVN: r187213
2012-05-06 19:12:51 +00:00
Richard Sandiford
69523a7c89 lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
gcc/
	* lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
	(compute_costs): Likewise for the zero extension.  Use set_rtx_cost
	to compute the cost of moves.  Set the mode of the target register.

From-SVN: r187212
2012-05-06 18:55:20 +00:00
Paolo Carlini
4fe977f2d6 re PR c++/53152 (In "no match for operatorXX" error message gives the wrong column info)
2012-05-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53152
	* call.c (op_error, build_new_op_1, build_new_op): Add location_t
	parameter.
	(build_conditional_expr_1): Adjust.
	* typeck.c (build_x_indirect_ref, build_x_binary_op,
	build_x_unary_op): Add location_t parameter.
	(rationalize_conditional_expr, build_x_array_ref,
	build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
	Adjust.
	* typeck2.c (build_x_arrow): Add location_t parameter.
	* semantics.c (finish_unary_op_expr): Likewise.
	(finish_increment_expr, handle_omp_for_class_iterator): Adjust.
	* decl2.c (grok_array_decl): Add location_t parameter.
	* parser.c (cp_parser_postfix_open_square_expression,
	cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
	cp_parser_binary_expression, cp_parser_builtin_offsetof,
	do_range_for_auto_deduction, cp_convert_range_for,
	cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
	location, adjust.
	* pt.c (tsubst_copy_and_build): Adjust.
	* tree.c (maybe_dummy_object): Likewise.
	* cp-tree.h: Update declarations.

From-SVN: r187211
2012-05-06 15:06:31 +00:00
Tristan Gingold
630dfc9c51 * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
From-SVN: r187210
2012-05-06 11:28:20 +00:00
Eric Botcazou
9422c886e9 decl.c (gnat_to_gnu_entity): In the renaming case...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
	case, use the padded type if the renamed object has an unconstrained
	type with default discriminant.

From-SVN: r187209
2012-05-06 11:13:32 +00:00
Eric Botcazou
8009661301 trans.c (Loop_Statement_to_gnu): Also handle invariant conditions with only one bound.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
	conditions with only one bound.
	(Raise_Error_to_gnu): Likewise.  New function extracted from...
	(gnat_to_gnu) <N_Raise_Constraint_Error>: ...here.  Call above function
	in regular mode only.

From-SVN: r187208
2012-05-06 10:51:37 +00:00
Eric Botcazou
1a5b6cd2af * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
From-SVN: r187207
2012-05-06 10:46:17 +00:00
Eric Botcazou
842d4ee2ad gigi.h (make_packable_type): Declare.
* gcc-interface/gigi.h (make_packable_type): Declare.
	(make_type_from_size): Likewise.
	(relate_alias_sets): Likewise.
	(maybe_pad_type): Adjust.
	(init_gnat_to_gnu): Delete.
	(destroy_gnat_to_gnu): Likewise.
	(init_dummy_type): Likewise.
	(destroy_dummy_type): Likewise.
	(init_gnat_utils): Declare.
	(destroy_gnat_utils): Likewise.
	(ceil_pow2): New inline function.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
	<object>: Pass True for the final processing of alignment and size.
	<E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
	type if necessary.
	(round_up_to_align): Delete.
	(ceil_alignment): Likewise.
	(relate_alias_sets): Move to...
	(make_aligning_type): Likewise.
	(make_packable_type): Likewise.
	(maybe_pad_type): Likewise.
	(make_type_from_size): Likewise.
	* gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
	(struct pad_type_hash): New type.
	(pad_type_hash_table): New static variable.
	(init_gnat_to_gnu): Merge into...
	(init_dummy_type): Likewise.
	(init_gnat_utils): ...this.  New function.
	(destroy_gnat_to_gnu): Merge into...
	(destroy_dummy_type): Likewise.
	(destroy_gnat_utils): ...this.  New function.
	(pad_type_hash_marked_p): New function.
	(pad_type_hash_hash): Likewise.
	(pad_type_hash_eq): Likewise.
	(relate_alias_sets): ...here.
	(make_aligning_type): Likewise.
	(make_packable_type): Likewise.
	(maybe_pad_type): Likewise.  Change same_rm_size parameter into
	set_rm_size; do not set TYPE_ADA_SIZE if it is false.  Do not set
	null as Ada size.  Do not set TYPE_VOLATILE on the padded type.  If it
	is complete and has constant size, canonicalize it.  Bail out earlier
	if a warning need not be issued.
	(make_type_from_size): Likewise.
	<INTEGER_TYPE>: Bail out if size is too large
	(gnat_types_compatible_p): Do not deal with padded types.
	(convert): Compare main variants for padded types.
	* gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
	(gnat_to_gnu): Do not convert at the end for a call to a function that
	returns an unconstrained type with default discriminant.
	(Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
	Do not use the padded type if it is BLKmode and the inner type is
	non-BLKmode.

From-SVN: r187206
2012-05-06 10:41:03 +00:00
Eric Botcazou
6295740973 Adjust.
From-SVN: r187204
2012-05-06 09:24:21 +00:00
GCC Administrator
c4971bbedc Daily bump.
From-SVN: r187203
2012-05-06 00:18:08 +00:00
Richard Sandiford
0a81f074cf rtl.h (plus_constant, [...]): Merge into a single plus_constant function.
gcc/
	* rtl.h (plus_constant, plus_constant_mode): Merge into a single
	plus_constant function.
	* explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
	that the mode is sensible.
	(use_anchored_address, round_push, allocate_dynamic_stack_space)
	(probe_stack_range, anti_adjust_stack_and_probe): Update calls to
	plus_constant.

	* alias.c (canon_rtx): Likewise.
	(init_alias_analysis): Likewise.
	* builtins.c (expand_builtin_return_addr)
	(expand_builtin_setjmp_setup, expand_builtin_longjmp)
	(expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
	(expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
	(expand_builtin_stpcpy): Likewise.
	* calls.c (save_fixed_argument_area, restore_fixed_argument_area)
	(compute_argument_addresses, internal_arg_pointer_based_exp)
	(expand_call, emit_library_call_value_1): Likewise.
	* cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
	* combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
	* combine.c (combine_simplify_rtx, force_to_mode): Likewise.
	* cse.c (insert_const_anchor, find_reg_offset_for_const)
	(use_related_value, fold_rtx): Likewise.
	* cselib.c (cselib_subst_to_values): Likewise.
	* dse.c (record_store, check_mem_read_rtx): Likewise.
	* dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
	* emit-rtl.c (adjust_address_1): Likewise.
	* except.c (sjlj_emit_function_enter)
	(expand_builtin_extract_return_addr)
	(expand_builtin_frob_return_addr): Likewise.
	* expmed.c (expand_divmod): Likewise.
	* expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
	(emit_move_resolve_push, push_block, emit_push_insn, store_expr)
	(expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
	* function.c (assign_stack_local_1)
	(instantiate_virtual_regs_in_rtx): Likewise.
	* optabs.c (prepare_cmp_insn): Likewise.
	* recog.c (offsettable_address_addr_space_p): Likewise.
	* reload.c (find_reloads_address, form_sum)
	(find_reloads_subreg_address): Likewise.
	* reload1.c (init_reload, eliminate_regs_1)
	(eliminate_regs_in_insn): Likewise.
	* simplify-rtx.c (simplify_unary_operation_1)
	(simplify_binary_operation_1, simplify_plus_minus): Likewise.
	* var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
	(vt_add_function_parameter): Likewise.

	* config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/alpha/alpha.c (alpha_legitimize_address_1)
	(get_unaligned_address, alpha_expand_unaligned_load)
	(alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
	(alpha_expand_unaligned_store_words, alpha_expand_block_clear)
	(alpha_expand_builtin_establish_vms_condition_handler)
	(alpha_setup_incoming_varargs, emit_frame_store_1)
	(alpha_expand_prologue, alpha_expand_epilogue)
	(alpha_use_linkage): Likewise.
	* config/alpha/alpha.md: Likewise.

	* config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
	(arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
	(thumb_legitimize_address, arm_gen_load_multiple_1)
	(arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
	(gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
	(arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
	(arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
	(emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
	(thumb1_emit_multi_reg_push, thumb1_expand_prologue)
	(thumb_expand_movmemqi, arm_set_return_address)
	(thumb_set_return_address): Likewise.
	* config/arm/arm.md: Likewise.

	* config/avr/avr.c (avr_incoming_return_addr_rtx)
	(avr_prologue_setup_frame, expand_epilogue)
	(avr_const_address_lo16): Likewise.

	* config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
	(bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
	(bfin_output_mi_thunk): Likewise.

	* config/c6x/c6x.c (c6x_initialize_trampoline)
	(c6x_output_mi_thunk): Likewise.

	* config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
	* config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.

	* config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
	(cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
	(cris_emit_movem_store, cris_trampoline_init): Likewise.
	* config/cris/cris.md: Likewise.

	* config/darwin.c (machopic_indirect_data_reference)
	(machopic_legitimize_pic_address): Likewise.

	* config/epiphany/epiphany.c (epiphany_emit_save_restore)
	(epiphany_expand_prologue, epiphany_expand_epilogue)
	(epiphany_trampoline_init): Likewise.
	* config/epiphany/epiphany.md: Likewise.

	* config/fr30/fr30.c (fr30_move_double): Likewise.

	* config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
	(frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
	(frv_index_memory, unspec_got_name, frv_find_base_term)
	(frv_output_dwarf_dtprel): Likewise.

	* config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
	(h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.

	* config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
	* config/i386/i386.c (setup_incoming_varargs_64)
	(setup_incoming_varargs_ms_64, choose_baseaddr)
	(ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
	(ix86_emit_probe_stack_range, ix86_expand_prologue)
	(ix86_emit_restore_reg_using_pop, ix86_emit_leave)
	(ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
	(ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
	(ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
	(x86_output_mi_thunk): Likewise.
	* config/i386/i386.md: Likewise.

	* config/ia64/ia64.c (ia64_expand_load_address)
	(ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
	(do_spill, ia64_trampoline_init): Likewise.

	* config/iq2000/iq2000.c (iq2000_va_start)
	(iq2000_emit_frame_related_store, iq2000_expand_prologue)
	(iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
	(iq2000_print_operand, iq2000_legitimize_address): Likewise.

	* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.

	* config/m32c/m32c.c (m32c_return_addr_rtx)
	(m32c_expand_insv): Likewise.

	* config/m32r/m32r.c (m32r_setup_incoming_varargs)
	(m32r_legitimize_pic_address, m32r_print_operand)
	(m32r_print_operand_address): Likewise.

	* config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
	* config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
	(m68k_expand_epilogue, legitimize_pic_address)
	(m68k_output_mi_thunk): Likewise.
	* config/m68k/m68k.md: Likewise.

	* config/mcore/mcore.c (mcore_expand_prolog): Likewise.
	(mcore_expand_epilog): Likewise.
	* config/mcore/mcore.md: Likewise.

	* config/mep/mep.c (mep_allocate_initial_value)
	(mep_expand_prologue, mep_expand_epilogue): Likewise.

	* config/microblaze/microblaze.c (double_memory_operand)
	(microblaze_block_move_loop): Likewise.

	* config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
	(mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
	(mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
	(mips_expand_prologue, mips_epilogue_set_cfa)
	(mips_expand_epilogue): Likewise.
	* config/mips/mips.md: Likewise.

	* config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
	(mmix_expand_prologue, mmix_expand_epilogue): Likewise.

	* config/mn10300/mn10300.c (mn10300_gen_multiple_store)
	(mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.

	* config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/moxie/moxie.c (moxie_static_chain): Likewise.

	* config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
	(store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
	(pa_return_addr_rtx, hppa_builtin_saveregs)
	(pa_trampoline_init): Likewise.
	* config/pa/pa.md: Likewise.

	* config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.

	* config/picochip/picochip.c (picochip_static_chain): Likewise.

	* config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
	* config/rs6000/rs6000.c (rs6000_legitimize_address)
	(setup_incoming_varargs, print_operand, rs6000_return_addr)
	(rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
	(rs6000_emit_epilogue)
	(rs6000_machopic_legitimize_pic_address): Likewise.

	* config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.

	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
	(DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
	(s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
	(replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
	(save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
	(s390_emit_epilogue, s390_function_profiler): Likewise.
	* config/s390/s390.md: Likewise.

	* config/score/score.c (score_add_offset, score_prologue): Likewise.

	* config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
	(sh_output_mi_thunk): Likewise.
	* config/sh/sh.md: Likewise.

	* config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
	(RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
	* config/sparc/sparc.c (sparc_legitimize_pic_address)
	(sparc_emit_probe_stack_range, emit_save_or_restore_regs)
	(emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
	(emit_and_preserve): Likewise.
	* config/sparc/sparc.md: Likewise.

	* config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
	(spu_setup_incoming_varargs, ea_load_store_inline)
	(spu_expand_load): Likewise.

	* config/stormy16/stormy16.c (xstormy16_expand_prologue)
	(combine_bnp): Likewise.

	* config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
	(tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.

	* config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
	* config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
	(tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.

	* config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
	* config/v850/v850.md: Likewise.

	* config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
	(EH_RETURN_HANDLER_RTX): Likewise.
	* config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
	* config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
	(print_operand_address, vax_trampoline_init): Likewise.

	* config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
	(xtensa_function_value_regno_p): Likewise.

From-SVN: r187199
2012-05-05 17:41:49 +00:00
Manuel López-Ibáñez
8b5e75a5c6 re PR c/43772 (Errant -Wlogical-op warning when testing limits)
2012-05-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/43772
testsuite/
	* c-c++-common/pr43772.c: New.

From-SVN: r187195
2012-05-05 11:32:26 +00:00
Manuel López-Ibáñez
f2c4a78515 re PR c/43772 (Errant -Wlogical-op warning when testing limits)
2012-05-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/43772
c-family/
	* c-common.c (warn_logical_operator): Do not warn if either side
	is already true or false.
testsuite/
	* c-c++-common/pr43772.c: New.

From-SVN: r187194
2012-05-05 11:30:57 +00:00
Paul Thomas
8f75db9fd3 re PR fortran/41600 ([OOP] SELECT TYPE with associate-name => exp: Arrays not supported)
2012-05-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41600
	* trans-array.c (build_array_ref): New static function.
	(gfc_conv_array_ref, gfc_get_dataptr_offset): Call it.
	* trans-expr.c (gfc_get_vptr_from_expr): New function.
	(gfc_conv_derived_to_class): Add a new argument for a caller
	supplied vptr and use it if it is not NULL.
	(gfc_conv_procedure_call): Add NULL to call to above.
	symbol.c (gfc_is_associate_pointer): Return true if symbol is
	a class object.
	* trans-stmt.c (trans_associate_var): Handle class associate-
	names.
	* expr.c (gfc_get_variable_expr): Supply the array-spec if
	possible.
	* trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P
	for class types.
	* trans.h : Add prototypes for gfc_get_vptr_from_expr and
	gfc_conv_derived_to_class. Define GFC_CLASS_TYPE_P.
	* resolve.c (resolve_variable): For class arrays, ensure that
	the target expression has all the necessary _data references.
	(resolve_assoc_var): Throw a "not yet implemented" error for
	class array selectors that need a temporary.
	* match.c (copy_ts_from_selector_to_associate,
	select_derived_set_tmp, select_class_set_tmp): New functions.
	(select_type_set_tmp): Call one of last two new functions.
	(gfc_match_select_type): Copy_ts_from_selector_to_associate is
	called if associate-name is typed.

	PR fortran/53191
	* resolve.c (resolve_ref): C614 applied to class expressions.


2012-05-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41600
	* gfortran.dg/select_type_26.f03 : New test.
	* gfortran.dg/select_type_27.f03 : New test.

	PR fortran/53191
	* gfortran.dg/select_type_28.f03 : New test.

From-SVN: r187192
2012-05-05 08:49:43 +00:00
Janne Blomqvist
4ecad771dd PR 49010,24518 MOD/MODULO fixes.
gcc/fortran:

2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/49010
	PR fortran/24518
	* intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result.
	* simplify.c (gfc_simplify_mod): Use mpfr_fmod.
	(gfc_simplify_modulo): Likewise, use copysign to fix the result if
	zero.
	* trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as
	builtin_fmod is always available. For modulo, call copysign to fix
	the result when signed zeros are enabled.


testsuite:

2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/49010
	PR fortran/24518
	* gfortran.dg/mod_sign0_1.f90: New test.
	* gfortran.dg/mod_large_1.f90: New test.

From-SVN: r187191
2012-05-05 10:59:22 +03:00
Janne Blomqvist
68ee9c0807 Fix handling of temporary files.
2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
        algorithm for choosing temp directory.


2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>

        * config.h.in: Regenerated.
        * configure: Regenerated.
        * configure.ac: Add checks for getegid and __secure_getenv.
        * io/unix.c (P_tmpdir): Fallback definition for macro.
        (tempfile_open): New function.
        (tempfile): Use secure_getenv, call tempfile_open to try each
        directory in turn.
        * libgfortran.h (DEFAULT_TMPDIR): Remove macro.
        (secure_getenv): New macro/prototype.
        * runtime/environ.c (secure_getenv): New function.
        (variable_table): Rename GFORTRAN_TMPDIR to TMPDIR.
        * runtime/main.c (find_addr2line): Use secure_getenv.

From-SVN: r187190
2012-05-05 09:30:51 +03:00
GCC Administrator
9154c66213 Daily bump.
From-SVN: r187188
2012-05-05 00:18:18 +00:00
Paolo Carlini
db327b6469 semantics.c (cxx_eval_constant_expression, [...]): Tidy.
2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>

    	* semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.

From-SVN: r187184
2012-05-04 22:43:33 +00:00
Andrew Pinski
683c600b1f expr.c (get_def_for_expr_class): New function.
2012-05-04  Andrew Pinski  <apinski@cavium.com>

	* expr.c (get_def_for_expr_class): New function.
	(convert_tree_comp_to_rtx): New function.
	(expand_cond_expr_using_cmove): New function.
	(expand_expr_real_2 <case COND_EXPR>): Call
	expand_cond_expr_using_cmove first and return if it succeeds.
	Remove the check for HAVE_conditional_move since we should have
	already converted it to a conditional move.
	* config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
	modes of DImode for 32bits and TImode.

From-SVN: r187183
2012-05-04 14:03:27 -07:00
Steven Bosscher
417232534c re PR other/29442 (insn-attrtab has grown too large)
PR other/29442
	* read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
	(print_md_ptr_loc, print_c_condition): Use them.
	* read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
	* genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
	attr_file, dfa_file, latency_file): New global variables.
	(write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
	write_upcase, write_indent, write_length_unit_log, write_test_expr,
	write_attr_get, write_insn_cases, write_eligible_delay,
	write_const_num_delay_slots): Accept FILE pointer and toss it around.
	Update all callers.
	(write_header, open_outfile, handle_arg): New funcions.
	(make_automaton_attrs): Write prototypes as extern to the output
	files.
	(main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
	names from the command line.  Open the output files and write out
	internal functions for DFA functions to dfa_file_name, insn latency
	functions to latency_file_name, and everything else to attr_file.
	* Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
	(BACKEND): Build libbackend first.
	(MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
	(.PRECIOUS): Likewise.
	(insn-dfatab.o): New rule.
	(insn-latencytab.o): New rule.
	(simple_rtl_generated_c): Do not include insn-attrtab.c.
	(s-attrtab): New rule.

From-SVN: r187181
2012-05-04 20:04:47 +00:00
Steven Bosscher
81e7aa8e7a * doc/md.texi (attr_flag): Update for changes of previous revision.
From-SVN: r187179
2012-05-04 19:40:02 +00:00
Steven Bosscher
593dbe1191 rtl.def (ATTR_FLAG): Remove probability indicating flags.
* rtl.def (ATTR_FLAG): Remove probability indicating flags.
	* genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
	ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
	* reorg.c (get_jump_flags): Do not set the removed flags.

From-SVN: r187178
2012-05-04 19:37:59 +00:00
Ian Lance Taylor
780140d3af compiler: Correct parse of for with possible composite literal.
Fixes, e.g., "for first := true; first; first = false {".

From-SVN: r187176
2012-05-04 19:33:18 +00:00
Tobias Burnus
ed4639a996 re PR fortran/53175 (link failure for private module variables used in function specification)
2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53175
        * resolve.c (resolve_variable): Set public_used
        if a private module variable is used in a (public)
        specification expression.
        * trans-decl.c (gfc_finish_var_decl): Mark those
        TREE_PUBLIC.

2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53175
        gfortran.dg/public_private_module_5.f90: New.

From-SVN: r187175
2012-05-04 20:54:25 +02:00
Tobias Burnus
6ba84c3143 re PR fortran/53111 (Derived types cannot be USE-associated again with -std=f95)
2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53111
        * resolve.c (resolve_fl_derived): Fix -std=f95
        diagnostic for generic vs. DT names.

2012-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53111
        * gfortran.dg/constructor_7.f90: New.
        * gfortran.dg/constructor_8.f90: New.

From-SVN: r187174
2012-05-04 20:53:17 +02:00
Uros Bizjak
cef31f9c56 re PR target/53228 (target attributes in libcpp/lex.c cause illegal instructions to be used elsewhere)
PR target/53228
	* config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
	(TARGET_CMOV): Rename from TARGET_CMOVE.
	(TARGET_CMOVE): New define.
	* config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
	Do not set TARGET_CMOVE here.

From-SVN: r187168
2012-05-04 18:42:23 +02:00
Dodji Seketeli
33d11b9745 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
Now that the libstdc++ testsuite is run with -ftrack-macro-location by
default, this patch triggers the -Wunused-local-typedefs warning when
-Wunused (and -Wall) is turned on.

The patch has been reviewed and accepted[1] a while ago, but was waiting
for the -ftrack-macro-expansion work to go in first.

Bootstrapped and tested again on x86_64-unknown-linux-gnu against
trunk.

Applied to the mainline.

[1]: http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00605.html

gcc/

	* opts.c (finish_options): Activate -Wunused-local-typedefs if
	-Wunused is activated.
	* doc/invoke.texi: Update blurb of -Wunused-local-typedefs.

From-SVN: r187167
2012-05-04 18:38:27 +02:00
Paolo Carlini
fb4bcc8d65 re PR c++/53166 (static_assert produces bogus warning)
/cp
2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53166
	* pt.c (instantiate_class_template_1): Increase / decrease
	c_inhibit_evaluation_warnings around the tsubst_expr call
	for STATIC_ASSERT_CONDITION.
	(tsubst_expr, case STATIC_ASSERT): Likewise.
	* typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
	c_inhibit_evaluation_warnings in the OPT_Waddress warnings.

/testsuite
2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53166
	* g++.dg/cpp0x/static_assert7.C: New.

From-SVN: r187165
2012-05-04 15:02:05 +00:00
Ian Lance Taylor
33e337e34d libgo: Update to Go 1.0.1 release.
From-SVN: r187163
2012-05-04 15:01:11 +00:00
Andreas Krebbel
1eae36f08c 2012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md (*movmem_short, *clrmem_short)
	(*cmpmem_short): Move the mode check from the insn condition to
	the match_scratch.

From-SVN: r187159
2012-05-04 14:44:59 +00:00
Ulrich Weigand
33018845eb re PR tree-optimization/52633 (Compiler ICE in vect_is_simple_use_1 (ARM))
gcc/
	PR tree-optimization/52633
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
	vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
	(vect_recog_over_widening_pattern): Remove handling of code that was
	already detected as over-widening pattern.  Remove special handling
	of "unsigned" cases.  Instead, support general case of conversion
	of the shift result to another type.

	gcc/testsuite/
	PR tree-optimization/52633
	* gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be
	recognized as widening shifts instead of over-widening.
	* gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4.c: Likewise.
	* gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise.
	* gcc.target/arm/pr52633.c: New test.

From-SVN: r187158
2012-05-04 12:46:04 +00:00
Ulrich Weigand
9a7a4398d3 tree-vect-patterns.c (vect_single_imm_use): New function.
* tree-vect-patterns.c (vect_single_imm_use): New function.
	(vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Likewise.

From-SVN: r187157
2012-05-04 12:27:04 +00:00
Ulrich Weigand
f71cf56a38 tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
* tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
	(vect_handle_widen_op_by_const): Use it instead of open-coding test.
	(vect_recog_widen_mult_pattern): Likewise.
	(vect_operation_fits_smaller_type): Likewise.
	(vect_recog_over_widening_pattern): Likewise.
	(vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.

From-SVN: r187156
2012-05-04 12:26:03 +00:00
Richard Guenther
8bb50e5ce0 re PR lto/50602 (ICE in tree_nrv, at tree-nrv.c:155 during large LTO build)
2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR lto/50602
	* lto-wrapper.c (merge_and_complain): Complain about mismatches
	of -freg-struct-return and -fpcc-struct-return.
	(run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
	from the input file options and ignore those from the link
	command line.

From-SVN: r187155
2012-05-04 11:47:06 +00:00
Richard Guenther
efe7068bc9 re PR tree-optimization/53168 (ICE in find_or_generate_expression, at tree-ssa-pre.c:3053)
2012-05-04  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53168
	* tree-ssa-pre.c (phi_translate_1): Only handle type-punned
	memory reads when the result is a constant we can pun.

	* gcc.dg/torture/pr53168.c: New testcase.
	* gcc.dg/tree-ssa/ssa-pre-30.c: Likewise.

From-SVN: r187153
2012-05-04 11:30:35 +00:00
Richard Biener
1d67dde883 common.opt (flto-report): Do not mark as Optimization.
2012-05-04  Richard Guenther  <rguenther@suse.de>

	* common.opt (flto-report): Do not mark as Optimization.

	lto/
	* lang.opt (fwpa): Do not mark as Optimization.
	(fltrans): Likewise.

	* gcc.dg/lto/pr53214_0.c: New testcase.

From-SVN: r187151
2012-05-04 11:08:42 +00:00
Eric Botcazou
a2f2d218dd re PR target/48496 ('asm' operand requires impossible reload)
PR target/48496
	* recog.c (constrain_operands): If extra constraints are present, also
	accept pseudo-registers with equivalent memory locations during reload.

From-SVN: r187150
2012-05-04 11:01:34 +00:00
Olivier Hainque
9178a34585 collect2.c (may_unlink_output_file): New global.
* collect2.c (may_unlink_output_file): New global.
        (maybe_unlink): Honor it.
        * collect2.h: Add extern for it.
        * tlink.c (do_tlink): Set it to true if the link succeeded.

From-SVN: r187148
2012-05-04 08:05:52 +00:00
Olivier Hainque
b50ff8bbb3 gcc.c (eval_spec_function): Finalize/restore the current string obstack state as part of the context...
* gcc.c (eval_spec_function): Finalize/restore the current string
        obstack state as part of the context push/pop operations.

From-SVN: r187146
2012-05-04 08:03:54 +00:00
Ian Lance Taylor
b075f09963 compiler: Error if importing same package twice with same name.
From-SVN: r187142
2012-05-04 05:24:02 +00:00
Bin Cheng
73292fcf29 re PR rtl-optimization/52804 (IRA/RELOAD allocate wrong register on ARM for cortex-m0)
PR rtl-optimization/52804
	* reload1.c (reload_reg_reaches_end_p): Check whether successor
	reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
	of current one with type RELOAD_FOR_INPADDR_ADDRESS.
	Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
	RELOAD_FOR_OUTADDR_ADDRESS.

From-SVN: r187139
2012-05-04 02:52:27 +00:00
Manuel López-Ibáñez
2445414102 re PR c++/24985 (caret diagnostics)
2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c++/24985
gcc/
	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
	for macro expansion.

From-SVN: r187134
2012-05-04 00:31:55 +00:00
GCC Administrator
07c49ed5a6 Daily bump.
From-SVN: r187131
2012-05-04 00:18:01 +00:00
Manuel López-Ibáñez
50f305cacf re PR c/51712 (-Wtype-limits should not trigger for types of implementation-defined signedness)
2012-05-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR c/51712
c-family/
	* c-common.c (expr_original_type): New.
	(shorten_compare): Do not warn for enumeration types.
testsuite/
	* c-c++-common/pr51712.c: New.

From-SVN: r187125
2012-05-03 22:37:01 +00:00
Manuel López-Ibáñez
0c3641b0ea flags.h (flag_permissive): Do not declare.
2012-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>

gcc/
	* flags.h (flag_permissive): Do not declare.
	* diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
	option specially.
	* toplev.c (flag_permissive): Do not define.
	* c-tree.h (system_header_p): Delete unused.
c-family/
	* c.opt (fpermissive): Add Var(flag_permissive).

From-SVN: r187123
2012-05-03 22:28:21 +00:00
David S. Miller
d333c3ebce Fix long double float miscompilations on sparc 64-bit.
PR target/52684
	* config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
	MEM directly into a libcall, mark it's MEM_EXPR as addressable.
	(sparc_emit_float_lib_cmp): Likewise.

From-SVN: r187120
2012-05-03 15:19:35 -07:00
Michael Meissner
65d512d10e re PR target/53199 (__builtin_bswap64 and __builtin_bswap32 generate errors if -mcpu=power6)
[gcc]
2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/53199
	* config/rs6000/rs6000.md (bswapdi splitters): If
	-mavoid-indexed-addresses (or -mcpu=power6 which sets it by
	default) is used, generate an alternate sequence that does not
	depend on using indexed addressing.

[gcc/testsuite]
2012-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/53199
	* gcc.target/powwerpc/pr53199.c: New file.

From-SVN: r187119
2012-05-03 21:47:45 +00:00
Jason Merrill
88f4f86ff0 gengtype.c (write_types): Fix warning message.
* gengtype.c (write_types): Fix warning message.
	(write_local): Likewise.

From-SVN: r187118
2012-05-03 17:29:07 -04:00