Commit Graph

99466 Commits

Author SHA1 Message Date
Richard Guenther bc9c331d43 tree.h (struct tree_decl_minimal): Move pt_uid ...
2010-04-16  Richard Guenther  <rguenther@suse.de>

	* tree.h (struct tree_decl_minimal): Move pt_uid ...
	(struct tree_decl_common): ... here.
	(DECL_PT_UID): Adjust.
	(SET_DECL_PT_UID): Likewise.
	(DECL_PT_UID_SET_P): Likewise.

From-SVN: r158421
2010-04-16 13:33:31 +00:00
Richard Guenther 12de635528 re PR tree-optimization/43572 (FAIL: gfortran.dg/PR19872.f execution test; formatted read - wrong numbers)
2010-04-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43572
	* tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
	* tree-ssa-alias.c (call_may_clobber_ref_p): Export.
	* tree-flow.h (is_call_clobbered): Remove.
	* tree-flow-inline.h (is_call_clobbered): Likewise.
	* tree-dfa.c (dump_variable): Do not dump call clobber state.
	* tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
	(execute_return_slot_opt): Adjust.
	* tree-tailcall.c (suitable_for_tail_opt_p): Remove
	check for call clobbered vars here.
	(find_tail_calls): Move tailcall verification to the
	proper place.

	* gcc.dg/tree-ssa/tailcall-5.c: New testcase.

From-SVN: r158418
2010-04-16 13:21:38 +00:00
Diego Novillo 6ab643b5a4 Fixed ChangeLog entry.
From-SVN: r158416
2010-04-16 08:38:22 -04:00
Diego Novillo b836060309 typo fix
From-SVN: r158415
2010-04-16 08:38:14 -04:00
Diego Novillo 5074f57630 rephrase text
From-SVN: r158414
2010-04-16 08:38:04 -04:00
Diego Novillo e54655a20e Clarify what happens with an unrecognized -Wno- option
From-SVN: r158413
2010-04-16 08:37:55 -04:00
Eric Botcazou 68a3eb69b1 trans.c (unchecked_conversion_nop): Handle function calls.
* gcc-interface/trans.c (unchecked_conversion_nop): Handle function
	calls.  Return true for conversion from a record subtype to its type.

From-SVN: r158412
2010-04-16 12:23:39 +00:00
Eric Botcazou 1139f2e89d decl.c (gnat_to_gnu_entity): Use boolean_type_node in lieu of integer_type_node for boolean operations.
* gcc-interface/decl.c (gnat_to_gnu_entity): Use boolean_type_node in
	lieu of integer_type_node for boolean operations.
	(choices_to_gnu): Likewise.
	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
	(Loop_Statement_to_gnu): Likewise.
	(establish_gnat_vms_condition_handler): Likewise.
	(Exception_Handler_to_gnu_sjlj): Likewise.
	(gnat_to_gnu): Likewise.
	(build_unary_op_trapv): Likewise.
	(build_binary_op_trapv): Likewise.
	(emit_range_check): Likewise.
	(emit_index_check): Likewise.
	(convert_with_check): Likewise.
	* gcc-interface/utils.c (convert_vms_descriptor64): Likewise.
	(convert_vms_descriptor32): Likewise.
	(convert_vms_descriptor): Likewise.
	* gcc-interface/utils2.c (nonbinary_modular_operation): Likewise.
	(compare_arrays): Use boolean instead of integer constants.
	(build_binary_op) <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR,
	TRUTH_OR_EXPR, TRUTH_XOR_EXPR>: New case.  Check that the result type
	is a boolean type.
	<GE_EXPR, LE_EXPR, GT_EXPR, LT_EXPR>: Remove obsolete assertion.
	<EQ_EXPR, NE_EXPR>: Check that the result type is a boolean type.
	<PREINC/PREDECREMENT_EXPR, POSTINC/POSTDECREMENT_EXPR>: Delete.
	<TRUTH_NOT_EXPR>: Check that the result type is a boolean type.
	(build_unary_op): Use boolean_type_node in lieu of integer_type_node
	for boolean operations.
	(fill_vms_descriptor): Likewise.  Fix formatting nits.

From-SVN: r158411
2010-04-16 12:07:02 +00:00
Eric Botcazou d88bbbb943 ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
* gcc-interface/ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
	* gcc-interface/ada-tree.h (LOOP_STMT_TOP_COND, LOOP_STMT_BOT_COND):
	Merge into...
	(LOOP_STMT_COND): ...this.
	(LOOP_STMT_BOTTOM_COND_P): New flag.
	(LOOP_STMT_TOP_UPDATE_P): Likewise.
	* gcc-interface/trans.c (can_equal_min_or_max_val_p): New function.
	(can_equal_min_val_p): New static inline function.
	(can_equal_max_val_p): Likewise.
	(Loop_Statement_to_gnu): Use build4 in lieu of build5 and adjust to
	new LOOP_STMT semantics.  Use two different strategies depending on
	whether optimization is enabled to translate the loop.
	(gnat_gimplify_stmt) <LOOP_STMT>: Adjust to new LOOP_STMT semantics.

From-SVN: r158410
2010-04-16 11:54:51 +00:00
Eric Botcazou 586388fd72 uintp.adb (UI_From_Dint): Remove useless code.
* uintp.adb (UI_From_Dint): Remove useless code.
	(UI_From_Int): Likewise.
	* uintp.h: Reorder declarations.
	(UI_From_gnu): Declare.
	(UI_Base): Likewise.
	(Vector_Template): Likewise.
	(Vector_To_Uint): Likewise.
	(Uint_0): Remove.
	(Uint_1): Likewise.
	* gcc-interface/gigi.h: Tweak comments.
	* gcc-interface/cuintp.c (UI_From_gnu): New global function.
	* gcc-interface/decl.c (maybe_pad_type): Do not warn if either size
	overflows.
	(annotate_value) <INTEGER_CST>: Call UI_From_gnu.
	* gcc-interface/trans.c (post_error_ne_num): Call post_error_ne.
	(post_error_ne_tree): Call UI_From_gnu and post_error_ne.
	* gcc-interface/utils.c (max_size) <tcc_binary>: Do not special-case
	TYPE_MAX_VALUE.

From-SVN: r158408
2010-04-16 10:16:52 +00:00
Bernd Schmidt f0c6475aea re PR target/40603 (unnecessary conversion from unsigned byte load to signed byte load)
PR target/40603
	* config/arm/arm.md (cbranchqi4): New pattern.
	* config/arm/predicates.md (const0_operand,
	cbranchqi4_comparison_operator): New predicates.

	PR target/40603
	* gcc.target/arm/thumb-cbranchqi.c: New test.

From-SVN: r158407
2010-04-16 10:04:15 +00:00
Richard Guenther f010714542 gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2010-04-16  Richard Guenther  <rguenther@suse.de>

	* gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
	(dump_gimple_stmt): Likewise.

From-SVN: r158406
2010-04-16 09:49:20 +00:00
Bernd Schmidt 3302cfa12a arm.md (addsi3_cbranch): If destination is a high register...
* config/arm/arm.md (addsi3_cbranch): If destination is a high
	register, inputs must be low registers and we need a low register
	scratch.  Handle alternative 2 like alternative 3.

From-SVN: r158405
2010-04-16 09:47:17 +00:00
Bernd Schmidt 6ea007e447 re PR target/41514 (redundant compare instruction of consecutive conditional branches)
PR target/41514
	* config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
	If the previous insn is a cbranchsi4_insn with the same arguments,
	omit the compare instruction.

	PR target/41514
	gcc.target/arm/thumb-comparisons.c: New test.

From-SVN: r158404
2010-04-16 09:42:32 +00:00
Bernd Schmidt 6ddfdb0f7e recog.h (struct recog_data): New field is_operator.
* recog.h (struct recog_data): New field is_operator.
	(struct insn_operand_data): New field is_operator.
	* recog.c (extract_insn): Set recog_data.is_operator.
	* genoutput.c (output_operand_data): Emit code to set the
	is_operator field.
	* reload.c (find_reloads): Use it rather than testing for an
	empty constraint string.

From-SVN: r158403
2010-04-16 09:32:21 +00:00
Jakub Jelinek 5312b0660e alias.c (memrefs_conflict_p): If x and y are the same VALUE, don't call get_addr on both.
* alias.c (memrefs_conflict_p): If x and y are the same VALUE,
	don't call get_addr on both.  If one expression is a VALUE and
	the other a REG, check VALUE's locs if the REG isn't among them.

From-SVN: r158401
2010-04-16 11:26:43 +02:00
Kevin Williams d5cc2ee390 * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r158400
2010-04-16 09:15:59 +00:00
Christian Bruel 7a296495eb add accumulate-outgoing-args and omit-frame-pointer for SH
From-SVN: r158399
2010-04-16 10:04:05 +02:00
Eric Botcazou 169afcb99f decl.c (make_type_from_size): Just copy TYPE_NAME.
* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Just copy
	TYPE_NAME.
	* gcc-interface/trans.c (smaller_packable_type_p): Rename into...
	(smaller_form_type_p): ...this.  Change parameter and variable names.
	(call_to_gnu): Use the nominal type of the parameter to create the
	temporary if it's a smaller form of the actual type.
	(addressable_p): Return false if the actual type is integral and its
	size is greater than that of the expected type.

From-SVN: r158398
2010-04-16 06:58:43 +00:00
GCC Administrator 1f24872b63 Daily bump.
From-SVN: r158397
2010-04-16 00:17:47 +00:00
Kaz Kojima 7140f0f90e re PR target/43741 (sh-elf ICEs for libstdc++-v3/src/ios_init.cc with -m2a)
PR target/43471
	* config/sh/sh.c (sh_legitimize_reload_address): Use
	MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
	Remove a unneeded check for offset_base.

From-SVN: r158393
2010-04-15 21:51:14 +00:00
Steven G. Kargl e3e529d14c re PR fortran/30073 (Array out of bounds gives name of RHS array not LHS array)
PR fortran/30073
    * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
    block of code.  Set name to the variable associated with the descriptor.

From-SVN: r158392
2010-04-15 21:32:21 +00:00
Eric Botcazou 58c8f7700a cuintp.c (UI_To_gnu): Fix long line.
* gcc-interface/cuintp.c (UI_To_gnu): Fix long line.
	* gcc-interface/gigi.h (MARK_VISITED): Skip objects of constant class.
	(process_attributes): Delete.
	(post_error_ne_num): Change parameter name.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force debug info
	with -g3.  Remove a couple of obsolete lines.  Minor tweaks.
	If type annotating mode, operate on trees to compute the adjustment to
	the sizes of tagged types.  Fix long line.
	(cannot_be_superflat_p): Tweak head comment.
	(annotate_value): Fold local constant.
	(set_rm_size): Fix long line.
	* gcc-interface/trans.c (Identifier_to_gnu): Rework comments.
	(Attribute_to_gnu): Fix long line.
	<Attr_Size>: Remove useless assertion.
	Reorder statements.  Use size_binop routine.
	(Loop_Statement_to_gnu): Use build5 in lieu of build_nt.
	Create local variables for the label and the test.  Tweak comments.
	(Subprogram_Body_to_gnu): Reset cfun to NULL.
	(Compilation_Unit_to_gnu): Use the Sloc of the Unit node.
	(process_inlined_subprograms): Integrate into...
	(Compilation_Unit_to_gnu): ...this.
	(gnat_to_gnu): Fix long line.
	(post_error_ne_num): Change parameter name.
	* gcc-interface/utils.c (process_attributes): Static-ify.
	<ATTR_MACHINE_ATTRIBUTE>: Set input_location before proceeding.
	(create_type_decl): Add comment.
	(create_var_decl_1): Process the attributes after adding the VAR_DECL
	to the current binding level.
	(create_subprog_decl): Likewise for the FUNCTION_DECL.
	(end_subprog_body): Do not reset cfun to NULL.
	(build_vms_descriptor32): Fix long line.
	(build_vms_descriptor): Likewise.
	(handle_nonnull_attribute): Likewise.
	(convert_vms_descriptor64): Likewise.
	* gcc-interface/utils2.c (fill_vms_descriptor): Fix long line.
	(gnat_protect_expr): Fix thinko.

From-SVN: r158390
2010-04-15 21:15:47 +00:00
Eric Botcazou 1fc24649bc trans.c (gigi): Set DECL_IGNORED_P on EH functions.
* gcc-interface/trans.c (gigi): Set DECL_IGNORED_P on EH functions.
	(gnat_to_gnu) <N_Op_Eq>: Restore the value of input_location
	before translating the top-level node.
	(lvalue_required_p) <N_Function_Call>: Return 1 if !constant.
	<N_Object_Declaration>: Likewise.
	<N_Assignment_Statement>: Likewise.
	<N_Unchecked_Type_Conversion>: Likewise.
	(call_to_gnu): Remove kludge.
	(gnat_to_gnu) <N_Return_Statement>: When not optimizing, force labels
	associated with user returns to be preserved.
	(gnat_to_gnu): Add special code to deal with boolean rvalues.
	* gcc-interface/utils2.c (compare_arrays): Set input_location on all
	comparisons.
	(build_unary_op) <ADDR_EXPR>: Call build_fold_addr_expr.
	<INDIRECT_REF>: Call build_fold_indirect_ref.

From-SVN: r158388
2010-04-15 20:21:08 +00:00
H.J. Lu bafaef55aa Regenerate gcc/configure.
2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

From-SVN: r158386
2010-04-15 12:00:27 -07:00
Andreas Krebbel e8de8feae8 s390.c (s390_call_save_register_used): Switch back to HARD_REGNO_NREGS.
2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_call_save_register_used): Switch back
	to HARD_REGNO_NREGS.

From-SVN: r158384
2010-04-15 16:30:32 +00:00
Joel Sherrill 8c70969598 g-socket.adb: A target can have multiple missing errno's.
2010-04-15  Joel Sherrill <joel.sherrill@oarcorp.com>

	* g-socket.adb: A target can have multiple missing errno's.  This
	will result in multiple errno's being defined as -1.  Because of this
	we can not use a case but must use a series of if's to avoid 
	a duplicate case error in GNAT.Sockets.Resolve_Error.

From-SVN: r158382
2010-04-15 15:39:47 +00:00
Joel Sherrill d8a653c546 gsocket.h: Run-time can no longer be built without network OS headers available.
2010-04-13  Joel Sherrill <joel.sherrill@oarcorp.com>

	* gsocket.h: Run-time can no longer be built without network
	OS headers available.  Changing RTEMS GNAT build procedure to
	reflect this and letting run-time build use network .h files.

From-SVN: r158381
2010-04-15 15:35:27 +00:00
Richard Guenther 038a39d1c5 alias.c (alias_set_subset_of): Handle alias-set zero child properly.
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* alias.c (alias_set_subset_of): Handle alias-set zero
	child properly.

From-SVN: r158380
2010-04-15 15:30:17 +00:00
Mark Shinwell 28907f9a0a thumb2.md (thumb2_movsi_insn): Split ldr and str alternatives according to use of high and low regs.
gcc/
	* config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
	alternatives according to use of high and low regs.
	* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
	optimizing for size on Thumb-2.


Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r158378
2010-04-15 14:39:22 +00:00
Thomas Schwinge 3f56ef8b60 config.gcc: Handle softfp as for Linux.
2010-04-15 Thomas Schwinge <tschwinge@gnu.org>

	gcc/
	* config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.

	libgcc/
	* config.host <i[34567]86-*-gnu*>: Handle softfp as for Linux.

From-SVN: r158375
2010-04-15 15:29:07 +02:00
Richard Guenther 25a6a8731c tree-ssa-structalias.c (struct variable_info): Add is_fn_info flag.
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add
	is_fn_info flag.
	(new_var_info): Initialize it.
	(dump_constraints): Support printing last added constraints.
	(debug_constraints): Adjust.
	(dump_constraint_graph): Likewise.
	(make_heapvar_for): Check for NULL cfun.
	(get_function_part_constraint): New function.
	(get_fi_for_callee): Likewise.
	(find_func_aliases): Properly implement IPA PTA constraints.
	(process_ipa_clobber): New function.
	(find_func_clobbers): Likewise.
	(insert_into_field_list_sorted): Remove.
	(create_function_info_for): Properly allocate vars for IPA mode.
	Do not use insert_into_field_list_sorted.
	(create_variable_info_for): Properly generate constraints for
	global vars in IPA mode.
	(dump_solution_for_var): Always dump the solution.
	(set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
	(find_what_var_points_to): Adjust.
	(pt_solution_set): Change.
	(pt_solution_ior_into): New function.
	(pt_solution_empty_p): Export.
	(pt_solution_includes_global): Adjust.
	(pt_solution_includes_1): Likewise.
	(pt_solutions_intersect_1): Likewise.
	(dump_sa_points_to_info): Check some invariants.
	(solve_constraints): Move constraint dumping ...
	(compute_points_to_sets): ... here.
	(ipa_pta_execute): ... and here.
	(compute_may_aliases): Do not re-compute points-to info
	locally if IPA info is available.
	(ipa_escaped_pt): New global var.
	(ipa_pta_execute): Properly implement IPA PTA.
	* tree-into-ssa.c (dump_decl_set): Support dumping
	decls not in referenced-vars.
	* tree-flow.h (struct gimple_df): Add ipa_pta flag.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
	(dump_points_to_solution): Likewise.
	* tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
	* tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
	(remap_gimple_stmt): Reset call clobber/use information if
	necessary.
	(copy_decl_to_var): Copy DECL_PT_UID.
	(copy_result_decl_to_var): Likewise.
	* tree.c (make_node_stat): Initialize DECL_PT_UID.
	(copy_node_stat): Copy it.
	* tree.h (DECL_PT_UID): New macro.
	(SET_DECL_PT_UID): Likewise.
	(DECL_PT_UID_SET_P): Likewise.
	(struct tree_decl_minimal): Add pt_uid member.
	* tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
	(pt_solution_empty_p): Declare.
	(pt_solution_set): Adjust.
	(ipa_escaped_pt): Declare.
	* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
	* gimple-pretty-print.c (pp_points_to_solution): New function.
	(dump_gimple_call): Dump call clobber/use information.
	* tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
	* tree-pass.h (TDF_ALIAS): New dump option.
	* tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
	* doc/invoke.texi (-fipa-pta): Update documentation.

	* gcc.dg/ipa/ipa-pta-1.c: New testcase.
	* gcc.dg/ipa/ipa-pta-2.c: Likewise.
	* gcc.dg/ipa/ipa-pta-3.c: Likewise.
	* gcc.dg/ipa/ipa-pta-4.c: Likewise.
	* gcc.dg/ipa/ipa-pta-5.c: Likewise.
	* gcc.dg/ipa/ipa-pta-6.c: Likewise.
	* gcc.dg/ipa/ipa-pta-7.c: Likewise.
	* gcc.dg/ipa/ipa-pta-8.c: Likewise.
	* gcc.dg/ipa/ipa-pta-9.c: Likewise.
	* gcc.dg/ipa/ipa-pta-10.c: Likewise.
	* gcc.dg/ipa/ipa-pta-11.c: Likewise.
	* gcc.dg/ipa/ipa-pta-12.c: Likewise.
	* gcc.dg/ipa/ipa-pta-13.c: Likewise.
	* gcc.dg/torture/ipa-pta-2.c: Likewise.
	* gcc.dg/torture/ipa-pta-1.c: Adjust.

From-SVN: r158374
2010-04-15 13:16:44 +00:00
Richard Guenther cbdd87d444 Makefile.in (OBJS-common): Add gimple-fold.o.
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS-common): Add gimple-fold.o.
	(gimple-fold.o): New rule.
	* tree.h (maybe_fold_offset_to_reference,
	maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
	prototypes ...
	* gimple.h: ... here.
	* tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
	may_propagate_address_into_dereference): Move prototypes ...
	* gimple.h: ... here.
	* tree-ssa-ccp.c (get_symbol_constant_value,
	may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
	maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
	maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
	maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
	ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
	fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
	gimplify_and_update_call_from_tree): Move ...
	* gimple-fold.c: ... here.  New file.
	(ccp_fold_builtin): Rename to ...
	(gimple_fold_builtin): ... this.
	* tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.

From-SVN: r158373
2010-04-15 12:58:05 +00:00
Richard Guenther 330db1e301 fold-const.c (LOWPART, [...]): Move ...
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
	fit_double_type, force_fit_type_double, add_double_with_sign,
	neg_double, mul_double_with_sign, lshift_double, rshift_double,
	lrotate_double, rrotate_double, div_and_round_double): Move ...
	* double-int.c: ... here.
	* tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
	add_double, neg_double, mul_double_with_sign, mul_double,
	lshift_double, rshift_double, lrotate_double, rrotate_double,
	div_and_round_double): Move prototypes ...
	* double-int.h: ... here.

From-SVN: r158372
2010-04-15 12:45:58 +00:00
Eric Botcazou 0b3467c4a3 trans.c (call_to_gnu): Open a nesting level if this is a statement.
* gcc-interface/trans.c (call_to_gnu): Open a nesting level if this is
	a statement.  Otherwise, if at top-level, push the processing of the
	elaboration routine.  In the misaligned case, issue the error messages
	again on entry and create the temporary explicitly.  Do not issue them
	for CONSTRUCTORs.
	For a function call, emit the range check if necessary.
	In the copy-in copy-out case, create the temporary for the return
	value explicitly.
	Do not unnecessarily convert by-ref parameters to the formal's type.
	Remove obsolete guards in conditions.
	(gnat_to_gnu) <N_Assignment_Statement>: For a function call, pass the
	target to call_to_gnu in all cases.
	(gnat_gimplify_expr) <ADDR_EXPR>: Remove handling of SAVE_EXPR.
	(addressable_p) <CONSTRUCTOR>: Return false if not static.
	<COMPOUND_EXPR>: New case.
	* gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Fold a compound
	expression if it has unconstrained array type.
	(gnat_mark_addressable) <COMPOUND_EXPR>: New case.
	(gnat_stabilize_reference) <COMPOUND_EXPR>: Stabilize operands on an
	individual basis.

From-SVN: r158371
2010-04-15 12:40:15 +00:00
Eric Botcazou a09d56d8c7 trans.c (gigi): Do not start statement group.
* gcc-interface/trans.c (gigi): Do not start statement group.
	(Compilation_Unit_to_gnu): Set current_function_decl to NULL.
	Start statement group and push binding level here...
	(gnat_to_gnu) <N_Compilation_Unit>: ...and not here.
	Do not push fake contexts at top level.  Remove redundant code.
	(call_to_gnu): Rename a local variable and constify another.
	* gcc-interface/utils.c (gnat_pushlevel): Fix formatting nits.
	(set_current_block_context): Set it as the group's block.
	(gnat_init_decl_processing): Delete unrelated init code.
	(end_subprog_body): Use NULL_TREE.

From-SVN: r158370
2010-04-15 10:38:36 +00:00
Eric Botcazou 932c865054 trans.c (call_to_gnu): Do not unnecessarily force side-effects of actual parameters before the call.
* gcc-interface/trans.c (call_to_gnu): Do not unnecessarily force
	side-effects of actual parameters before the call.

From-SVN: r158369
2010-04-15 10:17:54 +00:00
Eric Botcazou 8ff6c6640b decl.c (validate_size): Reorder, remove obsolete test and warning.
* gcc-interface/decl.c (validate_size): Reorder, remove obsolete test
	and warning.
	(set_rm_size): Reorder and remove obsolete test.

From-SVN: r158368
2010-04-15 10:10:03 +00:00
Bernd Schmidt 077668e3f5 re PR target/43742 (web.c/union_match_dups segfaults for a null *ref on sh-elf)
PR target/43742
	* config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
	matching constraints to ensure inputs match the output.

From-SVN: r158367
2010-04-15 08:57:27 +00:00
Jakub Jelinek e429bb4931 trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P on VAR_DECL LBOUND and/or UBOUND, even for -O1.
* trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
	on VAR_DECL LBOUND and/or UBOUND, even for -O1.

From-SVN: r158366
2010-04-15 10:53:41 +02:00
GCC Administrator f36ae44d4f Daily bump.
From-SVN: r158365
2010-04-15 00:17:51 +00:00
Kaz Kojima fa66fc4052 re PR target/43742 (web.c/union_match_dups segfaults for a null *ref on sh-elf)
PR target/43742
	* config/sh/sh.md (doloop_end_split): Remove "+r" constraint
	in an input-only operand.

From-SVN: r158361
2010-04-14 23:58:10 +00:00
Anatoly Sokolov 2bd1333d62 double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
* double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
	(double_int_not, double_int_lshift, double_int_rshift): Declare.
	(double_int_negative_p): Convert to static inline function.
	* double-int.c (double_int_lshift, double_int_lshift): Add new function.
	(double_int_negative_p): Remove.
	* tree.h (lshift_double, rshift_double): 
	* tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
	* fold-const.c (fold_convert_const_int_from_real,
	fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
	(lshift_double): Change type of arith argument to bool.
	(rshift_double): Change type of arith argument to bool. Correct
	comment.
	* expmed.c (mask_rtx, lshift_value): (Ditto.).

From-SVN: r158360
2010-04-15 02:05:32 +04:00
Doug Evans 8b9b8e9305 * filenames.h (HAS_DRIVE_SPEC, STRIP_DRIVE_SPEC): New macros.
From-SVN: r158359
2010-04-14 21:16:34 +00:00
Bernd Schmidt 31ce8a531c re PR rtl-optimization/21803 ([ia64] gcc produces really odd predicated code)
gcc/
	PR target/21803
	* ifcvt.c (cond_exec_process_if_block): Look for identical sequences
	at the start and end of the then/else blocks, and omit them from the
	conversion.
	* cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
	argument; all callers changed.  Pass zero to old_insns_match_p instead.
	(flow_find_head_matching_sequence): New function.
	(old_insns_match_p): Check REG_EH_REGION notes for calls.
	* basic-block.h (flow_find_cross_jump,
	flow_find_head_matching_sequence): Declare functions.

gcc/testsuite/
	PR target/21803
	* gcc.target/arm/pr42496.c: New test.

From-SVN: r158357
2010-04-14 20:42:02 +00:00
Jason Merrill 943f82e768 re PR c++/36625 (bogus error on __attribute__((aligned(N))) in template code)
PR c++/36625
	* c-common.c (attribute_takes_identifier_p): New fn.
	* c-common.h: Declare it.
cp/
	* parser.c (cp_parser_parenthesized_expression_list): Change
	is_attribute_list parm to int to indicate whether or not to
	handle initial identifier specially.
	(cp_parser_attribute_list): Use attribute_takes_identifier_p.

From-SVN: r158355
2010-04-14 16:17:34 -04:00
Steven G. Kargl 17fb1a8ce7 Add ChangeLog entry for my previous commit.
From-SVN: r158354
2010-04-14 19:38:07 +00:00
Uros Bizjak feeb8c524a i386.md (*divmod<mode>4): Remove stray "&&" from splitter condition.
* config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
	splitter condition.
	(*udivmod<mode>4): Ditto.

From-SVN: r158353
2010-04-14 20:55:05 +02:00
Steven G. Kargl 1dcfe404fb intrinsic.texi: Add the missing specific name of intrinsic procedure where the specific name is...
2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	* fortran/intrinsic.texi: Add the missing specific name of intrinsic
	procedure where the specific name is identical to the generic name.
	Fix inconsistent or mismatch in the argument names in intrinsic
	procedure descriptions.  Add the SCALAR allocatable description to
	ALLOCATED.

From-SVN: r158352
2010-04-14 18:32:51 +00:00
Steve Ellcey 88f33b96ba re PR testsuite/43739 (FAIL: gcc.dg/pr43643.c (test for excess errors))
2010-04-14  Steve Ellcey  <sje@cup.hp.com>

	PR testsuite/43739
	* gcc.dg/pr43643.c: Use static link on hppa*-*-hpux*.

From-SVN: r158351
2010-04-14 16:47:15 +00:00