1. 14 Aug, 2007 13 commits
    • einfo.ads, einfo.adb: Create a limited view of an incomplete type... · 5d37ba92
      2007-08-14  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* einfo.ads, einfo.adb: Create a limited view of an incomplete type,
      	to make treatment of limited views uniform for all visible declarations
      	in a limited_withed package.
      	Improve warnings for in out parameters
      	(Set_Related_Interaface/Related_Interface): Allow the use of this
      	attribute with constants.
      	(Write_Field26_Name): Handle attribute Related_Interface in constants.
      	Warn on duplicate pragma Preelaborable_Initialialization
      
      	* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
      	generation of a freezing node to ensure proper management of null
      	excluding access types in the backend.
      	(Create_Extra_Formals): Test base type of the formal when checking for
      	the need to add an extra accessibility-level formal. Pass the entity E
      	on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
      	originally being done in a couple of cases), to ensure that the
      	Extra_Formals list gets set on the entity E when the first entity is
      	added.
      	(Conforming_Types): Add missing calls to Base_Type to the code that
      	handles anonymous access types. This is required to handle the
      	general case because Process_Formals builds internal subtype entities
      	to handle null-excluding access types.
      	(Make_Controlling_Function_Wrappers): Create wrappers for constructor
      	functions that need it, even when not marked Requires_Overriding.
      	Improve warnings for in out parameters
      	(Analyze_Function_Return): Warn for disallowed null return
      	Warn on return from procedure with unset out parameter
      	Ensure consistent use of # in error messages
      	(Check_Overriding_Indicator): Add in parameter Is_Primitive.
      	(Analyze_Function_Return): Move call to Apply_Constraint_Check before
      	the implicit conversion of the expression done for anonymous access
      	types. This is required to generate the code of the null excluding
      	check (if required).
      
      	* sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
      	A formal parameter is never publicly referenceable outside of its body.
      	(Check_References): For an unreferenced formal parameter in an accept
      	statement, use the same warning circuitry as for subprogram formal
      	parameters.
      	(Warn_On_Unreferenced_Entity): New subprogram, taken from
      	Output_Unreferenced_Messages, containing the part of that routine that
      	is now reused for entry formals as described above.
      	(Goto_Spec_Entity): New function
      	(Check_References): Do not give IN OUT warning for dispatching operation
      	Improve warnings for in out parameters
      	(Test_Ref): Check that the entity is not undefinite before calling
      	Scope_Within, in order to avoid infinite loops.
      	Warn on return from procedure with unset out parameter
      	Improved warnings for unused variables
      
      From-SVN: r127415
      Ed Schonberg committed
    • debug.adb: Improve -gnatdI to cover all cases of serialization Add documentation of dZ, d.t · b99282c4
      2007-08-14  Robert Dewar  <dewar@adacore.com>
      
      	* debug.adb: Improve -gnatdI to cover all cases of serialization
      	Add documentation of dZ, d.t
      
      	* sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
      	serialization.
      	(Sprint_Node_Actual): Generate new output associated with implicit
      	importation and implicit exportation of object declarations.
      
      From-SVN: r127414
      Robert Dewar committed
    • comperr.adb: Fix problem with suppressing warning messages from gigi · 554846f3
      2007-08-14  Robert Dewar  <dewar@adacore.com>
      
      	* comperr.adb: Fix problem with suppressing warning messages from gigi
      
      	* erroutc.ads, erroutc.adb, errout.ads, 
      	errout.adb (Write_Eol): Remove trailing spaces before writing the line
      	(Write_Eol_Keep_Blanks): New procedure to write a line, including
      	possible trailing spaces.
      	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
      	Fix problem with suppressing warning messages from back end
      	Improve handling of deleted warnings
      
      	* gnat1drv.adb: 
      	Fix problem with suppressing warning messages from back end
      	Handle setting of Static_Dispatch_Tables flag.
      
      	* prepcomp.adb: 
      	Fix problem with suppressing warning messages from back end
      
      	* exp_intr.adb: Improve handling of deleted warnings
      
      From-SVN: r127413
      Robert Dewar committed
    • atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and itype is visited... · 8133b9d1
      2007-08-14  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
      	itype is visited, make an entry into table to link associated node and
      	new itype.
      	Add comments and correct harmless error in Build_NCT_Hash_Tables
      	(Array_Aggr_Subtype): Associate each itype created for an index type to
      	the corresponding range construct, and not to the aggregate itself. to
      	maintain a one-to-one correspondence between itype and its associated
      	node, to prevent errors when complex expression is copied.
      	Fix mishandling of multiple levels of parens
      
      	* sem_aggr.adb: Create a limited view of an incomplete type, to make
      	treatment of limited views uniform for all visible declarations in a
      	limited_withed package.
      	(New_Copy_Tree): If hash table is being used and itype is visited,
      	make an entry into table to link associated node and new itype.
      	(Resolve_Record_Aggregate): Do not add an others box association for a
      	discriminated record component that has only discriminants, when there
      	is a box association for the component itself.
      
      	* par-ch4.adb: Fix mishandling of multiple levels of parens
      
      From-SVN: r127412
      Ed Schonberg committed
    • a-stzsup.adb, [...]: Fix warnings for range tests optimized out. · d766cee3
      2007-08-14  Robert Dewar  <dewar@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      
      	* a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
      	a-stwisu.adb, a-strsup.adb: Fix warnings for range
      	tests optimized out.
      
      	* exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
      	(Get_Allocator_Final_List): For the case of an anonymous access type
      	that has a specified Associated_Final_Chain, do not go up to the
      	enclosing scope.
      	(Expand_N_Type_Conversion): Test for the case of renamings of access
      	parameters when deciding whether to apply a run-time accessibility
      	check.
      	(Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
      	aggregate code before allocator, and ahead of declaration for
      	temporary, to prevent access before elaboration when the allocator is
      	an actual for an access parameter.
      	(Expand_N_Type_Conversion): On an access type conversion involving an
      	access parameter, do not apply an accessibility check when the
      	operand's original node was an attribute other than 'Access. We now
      	create access conversions for the expansion of 'Unchecked_Access and
      	'Unrestricted_Access in certain cases and clearly accessibility should
      	not be checked for those.
      
      	* exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
      	includes a type conversion of a packed component that has been expanded,
      	recover the original expression for the object, and use this expression
      	in the post-call assignment statement, so that the assignment is made
      	to the object and not to a back-end temporary.
      	(Freeze_Subprogram): In case of primitives of tagged types not defined
      	at the library level force generation of code to register the primitive
      	in the dispatch table. In addition some code reorganization has been
      	done to leave the implementation clear.
      	(Expand_Call): When expanding an inherited implicit conversion,
      	preserve the type of the inherited function after the intrinsic
      	operation has been expanded.
      
      	* exp_ch2.ads, exp_ch2.adb
      	(Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
      	of an entry formal appearing in an assignment statement does not assign
      	to the formal.
      	(Expand_Current_Value): Instead of calling a routine to determine
      	whether the prefix of an attribute reference should be optimized or
      	not, prevent the optimization of such prefixes all together.
      
      	* lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
      	component whose prefix is known to be of an access type is an implicit
      	dereference and does not assign to the prefix.
      
      From-SVN: r127411
      Robert Dewar committed
    • inline.adb, [...]: Suppress unmodified in-out parameter warning in some cases… · 939c12d2
      inline.adb, [...]: Suppress unmodified in-out parameter warning in some cases This patch is a also...
      
      2007-08-14  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
      	Suppress unmodified in-out parameter warning in some cases
      	This patch is a also fairly significant change to the way suppressible
      	checks are handled.
      
      	* checks.ads, checks.adb (Install_Null_Excluding_Check): No check
      	needed for access to concurrent record types generated by the expander.
      	(Generate_Range_Check): When generating a temporary to capture the
      	value of a conversion that requires a range check, set the type of the
      	temporary before rewriting the node, so that the type is always
      	properly placed for back-end use.
      	(Apply_Float_Conversion_Check): Handle case where the conversion is
      	truncating.
      	(Get_Discriminal): Code reformatting. Climb the scope stack looking
      	for a protected type in order to examine its discriminants.
      
      From-SVN: r127410
      Robert Dewar committed
    • uintp.adb, [...]: Minor reformatting. · 835d23b2
      2007-08-14  Robert Dewar  <dewar@adacore.com>
      
      	* uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
      	par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
      	s-osinte-solaris.adb, s-osinte-solaris.ads,
      	s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
      
      	* styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
      	switch -gnatyS. Enable -gnatyS in GNAT style check mode
      
      From-SVN: r127409
      Robert Dewar committed
    • a-calend-vms.adb, [...] ("+", [...]): Remove calls to Check_Within_Time_Bounds. · 4a9b6b95
      2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
      	calls to Check_Within_Time_Bounds.
      	("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
      	(Difference): Account for possible rounding of the resulting difference
      
      From-SVN: r127408
      Hristian Kirtchev committed
    • g-soccon-interix.ads, [...]: Removed. · 40760d6c
      2007-08-14  Thomas Quinot  <quinot@adacore.com>
      
      	* g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
      	s-osinte-interix.ads, system-interix.ads: Removed.
      
      From-SVN: r127407
      Thomas Quinot committed
    • sched-int.h (struct _dep): Rename field 'kind' to 'type'. · e2f6ff94
      	* sched-int.h (struct _dep): Rename field 'kind' to 'type'.
      	(DEP_KIND): Rename to DEP_TYPE.  Update all uses.
      	(dep_def): New typedef.
      	(init_dep_1, sd_debug_dep): Declare functions.
      	(DEP_LINK_KIND): Rename to DEP_LINK_TYPE.
      	(debug_dep_links): Remove.
      	(struct _deps_list): New field 'n_links'.
      	(DEPS_LIST_N_LINKS): New macro.
      	(FOR_EACH_DEP_LINK): Remove.
      	(create_deps_list, free_deps_list, delete_deps_list): Remove
      	declaration.
      	(deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
      	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
      	(copy_deps_list_change_con, move_dep_link): Ditto.
      	(struct haifa_insn_data): Split field 'back_deps' into 'hard_back_deps'
      	and 'spec_back_deps'.  New field 'resolved_forw_deps'.  Remove field
      	'dep_count'.
      	(INSN_BACK_DEPS): Remove.
      	(INSN_HARD_BACK_DEPS, INSN_SPEC_BACK_DEPS, INSN_RESOLVED_FORW_DEPS):
      	New macros.
      	(INSN_DEP_COUNT): Remove.
      	(enum DEPS_ADJUST_RESULT): Add new constant DEP_NODEP.  Fix comments.
      	(spec_info, haifa_recovery_block_was_added_during_scheduling_p):
      	Declare global variables.
      	(deps_pools_are_empty_p, sched_free_deps): Declare functions.
      	(add_forw_dep, compute_forward_dependences): Remove declarations.
      	(add_or_update_back_dep, add_or_update_back_forw_dep): Ditto.
      	(add_back_forw_dep, delete_back_forw_dep): Ditto.
      	(debug_ds, sched_insn_is_legitimate_for_speculation_p): Declare
      	functions.
      	(SD_LIST_NONE, SD_LIST_HARD_BACK, SD_LIST_SPEC_BACK, SD_LIST_FORW): New
      	constants.
      	(SD_LIST_RES_BACK, SD_LIST_RES_FORW, SD_LIST_BACK): Ditto.
      	(sd_list_types_def): New typedef.
      	(sd_next_list): Declare function.
      	(struct _sd_iterator): New type.
      	(sd_iterator_def): New typedef.
      	(sd_iterator_start, sd_iterator_cond, sd_iterator_next): New inline
      	functions.
      	(FOR_EACH_DEP): New cycle wrapper.
      	(sd_lists_size, sd_lists_empty_p, sd_init_insn, sd_finish_insn):
      	Declare functions.
      	(sd_find_dep_between, sd_add_dep, sd_add_or_update_dep): Ditto.
      	(sd_resolve_dep, sd_copy_back_deps, sd_delete_dep, sd_debug_lists):
      	Ditto.
      
      	* sched-deps.c (init_dep_1): Make global.
      	(DUMP_DEP_PRO, DUMP_DEP_CON, DUMP_DEP_STATUS, DUMP_DEP_ALL): New
      	constants.
      	(dump_dep): New static function.
      	(dump_dep_flags): New static variable.
      	(sd_debug_dep): New function.
      	(add_to_deps_list, remove_from_deps_list): Update 'n_links' field of
      	the list.
      	(move_dep_link): Use remove_from_deps_list (), instead of
      	detach_dep_link ().
      	(dep_links_consistent_p, dump_dep_links, debug_dep_links): Remove.
      	(dep_link_is_detached_p): New static function.
      	(deps_obstack, dl_obstack, dn_obstack): Remove.  Use dn_pool, dl_pool
      	instead.
      	(dn_pool, dl_pool): New alloc_pools.
      	(dn_pool_diff, dl_pool_diff): New static variables.
      	(create_dep_node, delete_dep_node): New static function.
      	(create_deps_list): Make it static.  Use alloc_pool 'dl_pool'.
      	(deps_list_empty_p): Make it static.  Use 'n_links' field.
      	(deps_pools_are_empty_p): New static function.
      	(alloc_deps_list, delete_deps_list): Remove.
      	(dump_deps_list, debug_deps_list, add_back_dep_to_deps_list): Remove.
      	(find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
      	(copy_deps_list_change_con): Remove.  Use sd_copy_back_deps () instead.
      	(forward_dependency_cache): Remove.
      	(maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Remove
      	'back' from the names.  Change signature to use dep_t instead of
      	equivalent quad.
      	(add_back_dep): Ditto.  Make global.
      	(check_dep_status): Rename to check_dep ().
      	(sd_next_list, sd_lists_size, sd_lists_empty_p, sd_init_insn):
      	New functions.
      	(sd_finish_insn): Ditto.
      	(sd_find_dep_between_no_cache): New static function.
      	(sd_find_dep_between): New function.
      	(ask_dependency_caches, set_dependency_caches): New static functions.
      	(update_dependency_caches, change_spec_dep_to_hard, update_dep): Ditto.
      	(add_or_update_dep_1): Separate pieces of functionality into
      	ask_dependency_caches (), update_dependency_caches (),
      	change_spec_dep_to_hard (), update_dep ().
      	(get_back_and_forw_lists): New static function.
      	(sd_add_dep): Separate setting of dependency caches into
      	set_dependency_caches ().
      	(sd_add_or_update_dep, sd_resolve_dep, sd_copy_back_deps):
      	New functions.
      	(sd_delete_dep): Ditto.
      	(DUMP_LISTS_SIZE, DUMP_LISTS_DEPS, DUMP_LISTS_ALL): New constants.
      	(dump_lists): New static function.
      	(sd_debug_lists): New debug function.
      	(delete_all_dependences, fixup_sched_groups): Update to use
      	sd_* infrastructure.
      	(sched_analyze_2): Create data-speculative dependency only if
      	data-speculation is enabled.
      	(sched_analyze_insn): If insn cannot be speculative, make all its
      	dependencies non-speculative.
      	(sched_analyze): Use sd_init_insn ().
      	(add_forw_dep, compute_forward_dependencies): Remove.
      	(delete_dep_nodes_in_back_deps): New static function.
      	(sched_free_deps): New function.
      	(init_dependency_caches): Init alloc_pools.
      	(extend_depedency_caches): Update after removing of
      	forward_dependency_cache.
      	(free_dependency_caches): Ditto.  Free alloc_pools.
      	(adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Remove.
      	(delete_forw_dep, add_or_update_back_dep, add_or_update_back_forw_dep):
      	Ditto.
      	(add_back_forw_dep, delete_back_forw_dep): Ditto.
      	(add_dependence): Use init_dep ().
      	(get_dep_weak_1): New static function.
      	(get_dep_weak): Move logic to get_dep_weak_1 ().
      	(dump_ds): New static function moved from haifa-sched.c:
      	debug_spec_status ().
      	(debug_ds): New debug function.
      	(check_dep_status): Rename to check_dep ().  Update to check whole
      	dependencies.
      
      	* haifa-sched.c (spec_info): Make global.
      	(added_recovery_block_p): Rename to
      	'haifa_recovery_block_was_added_during_current_schedule_block_p'.
      	(haifa_recovery_block_was_added_during_scheduling_p): New variable.
      	(dep_cost, priority, rank_for_schedule, schedule_insn): Update
      	to use new interfaces.
      	(ok_for_early_queue_removal): Ditto.
      	(schedule_block): Initialize logical uids of insns emitted by the
      	target.
      	(sched_init): Initialize new variable.
      	(fix_inter_tick, try_ready, fix_tick_ready): Update to use new
      	interfaces.
      	(extend_global): Initialize insn data.
      	(init_h_i_d): Remove code that is now handled in sd_init_insn ().
      	(process_insn_forw_deps_be_in_spec): Change signature.  Update to use
      	new interfaces.
      	(add_to_speculative_block): Update to use new interfaces.
      	(create_recovery_block): Set new variables.
      	(create_check_block_twin, fix_recovery_deps): Update to use new
      	interfaces.
      	(sched_insn_is_legitimate_for_speculation_p): New function.
      	(speculate_insn): Move checking logic to
      	sched_insn_is_legitimate_for_speculation_p ().
      	(sched_remove_insn): Finalize sched-deps information of instruction.
      	(clear_priorities, add_jump_dependencies): Update to use new
      	interfaces.
      	(debug_spec_status): Rename to dump_ds () and move to sched-deps.c.
      	
      	* sched-rgn.c (set_spec_fed, find_conditional_protection): Update
      	to use new interfaces.
      	(is_conditionally_protected, is_pfree, is_prisky) Ditto.
      	(new_ready): Try to use control speculation only if it is available.
      	(add_branch_dependences): Update to use new interfaces.
      	(compute_block_backward_dependences): Rename to
      	compute_block_dependences ().  Call
      	targetm.sched.dependencies_evaluation_hook ().
      	(free_block_dependencies): New static function.
      	(debug_dependencies): Update to use new interfaces.
      	(schedule_region): Remove separate computation of forward dependencies.
      	Move call of targetm.sched.dependencies_evaluation_hook () to
      	compute_block_dependences ().  Free dependencies at the end of
      	scheduling the region.
      
      	* sched-ebb.c (earliest_block_with_similiar_load): Update to use
      	new interfaces.
      	(add_deps_for_risky_insns): Ditto.
      	(schedule_ebb): Remove separate computation of forward dependencies.
      	Free dependencies at the end of	scheduling the ebb.
      
      	* ddg.c (create_ddg_dependence): Update to use new interfaces.
      	(build_intra_loop_deps): Ditto.  Remove separate computation of forward
      	dependencies.  Free sched-deps dependencies.
      
      	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Update
      	to use new interfaces.
      	(ia64_dfa_new_cycle, ia64_gen_check): Ditto.
      
      	* config/rs6000/rs6000.c (rs6000_is_costly_dependence): Update to use
      	new interfaces.
      	(is_costly_group): Ditto.
      
      From-SVN: r127405
      Maxim Kuvyrkov committed
    • alias.c (rtx_equal_for_memref_p): Constify. · ed7a4b4b
      	* alias.c (rtx_equal_for_memref_p): Constify.
      	* basic-block.h (const_edge, const_basic_block): New.
      	(reg_set_to_hard_reg_set, dfs_enumerate_from, single_succ_p,
      	single_pred_p, single_succ_edge, single_pred_edge, single_succ,
      	single_pred, maybe_hot_bb_p, probably_cold_bb_p,
      	probably_never_executed_bb_p, edge_probability_reliable_p,
      	br_prob_note_reliable_p, forwarder_block_p, flow_nodes_print,
      	inside_basic_block_p, control_flow_insn_p, dominated_by_p):
      	Likewise.
      	* bb-reorder.c (better_edge_p, push_to_next_round_p): Likewise.
      	* bt-load.c (basic_block_freq, insn_sets_btr_p, can_move_up):
      	Likewise.
      	* cfganal.c (flow_active_insn_p, forwarder_block_p,
      	flow_nodes_print, dfs_enumerate_from): Likewise.
      	* cfgbuild.c (count_basic_blocks, inside_basic_block_p,
      	control_flow_insn_p, count_basic_blocks): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p, glb_enum_p,
      	get_loop_body_with_size, loop_exit_edge_p): Likewise.
      	* cfgloop.h (flow_bb_inside_loop_p, num_loop_insns,
      	average_num_loop_insns, loop_exit_edge_p,
      	just_once_each_iteration_p, can_duplicate_loop_p): Likewise.
      	* cfgloopanal.c (just_once_each_iteration_p, num_loop_insns,
      	average_num_loop_insns, seq_cost): Likewise.
      	* cfgloopmanip.c (rpe_enum_p, can_duplicate_loop_p): Likewise.
      	* dominance.c (dominated_by_p): Likewise.
      	* emit-rtl.c (validate_subreg): Likewise.
      	* except.c (can_throw_internal, can_throw_external): Likewise.
      	* except.h (can_throw_internal, can_throw_external): Likewise.
      	* gcse.c (gcse_constant_p, oprs_unchanged_p, oprs_anticipatable_p,
      	oprs_available_p, hash_expr, expr_equiv_p, oprs_not_set_p,
      	compute_transp, load_killed_in_block_p, reg_killed_on_edge,
      	simple_mem, store_ops_ok, load_kills_store, find_loads,
      	store_killed_in_insn, store_killed_after, store_killed_before,
      	gcse_mem_operand, implicit_set_cond_p, store_killed_in_pat):
      	Likewise.
      	* ifcvt.c (count_bb_insns, cheap_bb_rtx_cost_p, noce_operand_ok,
      	noce_mem_write_may_trap_or_fault_p): Likewise.
      	* pointer-set.c (pointer_set_contains, pointer_map_contains):
      	Likewise.
      	* pointer-set.h (pointer_set_contains, pointer_map_contains):
      	Likewise.
      	* predict.c (can_predict_insn_p, maybe_hot_bb_p,
      	probably_cold_bb_p, probably_never_executed_bb_p,
      	edge_probability_reliable_p, br_prob_note_reliable_p,
      	can_predict_insn_p): Likewise.
      	* regclass.c (reg_set_to_hard_reg_set): Likewise.
      	* resource.c (return_insn_p): Likewise.
      	* rtl.h (reg_set_between_p, reg_set_p, validate_subreg):
      	Likewise.
      	* rtlanal.c (reg_set_between_p, reg_set_p): Likewise.
      	* tracer.c (count_insns, ignore_bb_p, better_p): Likewise.
      	* tree-cfg.c (verify_gimple_unary_expr, verify_gimple_binary_expr,
      	verify_gimple_modify_stmt): Likewise.
      	* tree-chrec.c (is_not_constant_evolution,
      	is_multivariate_chrec_rec, is_multivariate_chrec,
      	chrec_contains_symbols, chrec_contains_undetermined,
      	tree_contains_chrecs, evolution_function_is_affine_multivariate_p,
      	evolution_function_is_univariate_p, avoid_arithmetics_in_type_p,
      	eq_evolutions_p, scev_direction): Likewise.
      	* tree-chrec.h (automatically_generated_chrec_p, tree_is_chrec,
      	eq_evolutions_p, is_multivariate_chrec, chrec_contains_symbols,
      	chrec_contains_symbols_defined_in_loop,
      	chrec_contains_undetermined, tree_contains_chrecs,
      	evolution_function_is_affine_multivariate_p,
      	evolution_function_is_univariate_p, chrec_zerop,
      	evolution_function_is_constant_p, evolution_function_is_affine_p,
      	evolution_function_is_affine_or_constant_p,
      	tree_does_not_contain_chrecs, chrec_type): Likewise.
      	* tree-data-ref.c (tree_fold_divides_p,
      	object_address_invariant_in_loop_p, dr_may_alias_p,
      	ziv_subscript_p, siv_subscript_p, gcd_of_steps_may_divide_p,
      	same_access_functions, constant_access_functions,
      	access_functions_are_affine_or_constant_p, find_vertex_for_stmt):
      	Likewise.
      	* tree-flow.h (scev_direction): Likewise.
      	* tree-gimple.c (is_gimple_stmt): Likewise.
      	* tree-outof-ssa.c (identical_copies_p, identical_stmt_lists_p):
      	Likewise.
      	* tree-pretty-print.c (op_prio): Likewise.
      	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop,
      	analyzable_condition, backedge_phi_arg_p): Likewise.
      	* tree-scalar-evolution.h (get_chrec_loop): Likewise.
      	* tree-ssa-operands.c (get_name_decl, operand_build_cmp): Likewise.
      	* tree-ssa-threadupdate.c (dbds_continue_enumeration_p):
      	Likewise.
      
      From-SVN: r127404
      Kaveh R. Ghazi committed
    • Daily bump. · a0b7c7ae
      From-SVN: r127402
      GCC Administrator committed
  2. 13 Aug, 2007 11 commits
  3. 12 Aug, 2007 10 commits
    • re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument) · 719e72fb
      	PR fortran/29600
      
      	* intrinsic.c (add_functions): Add optional KIND argument to ACHAR.
      	* iresolve.c (gfc_resolve_achar): Handle the KIND argument.
      	* check.c (gfc_check_achar): Check for the optional KIND argument.
      	* simplify.c (gfc_simplify_achar): Use KIND argument.
      	* intrinsic.h (gfc_check_achar, gfc_simplify_achar,
      	gfc_resolve_achar): Adjust prototypes.
      
      	* gfortran.dg/intrinsics_kind_argument_1.f90: Add test for ACHAR
      	intrinsic.
      
      From-SVN: r127385
      Francois-Xavier Coudert committed
    • re PR fortran/30964 (optional arguments to random_seed) · 34b4bc5c
      	PR fortran/30964
      	PR fortran/33054
      
      	* trans-expr.c (gfc_conv_function_call): When no formal argument
      	list is available, we still substitute missing optional arguments.
      	* check.c (gfc_check_random_seed): Correct the check on the
      	number of arguments to RANDOM_SEED.
      	* intrinsic.c (add_subroutines): Add a resolution function to
      	RANDOM_SEED.
      	* iresolve.c (gfc_resolve_random_seed): New function.
      	* intrinsic.h (gfc_resolve_random_seed): New prototype.
      
      	* intrinsics/random.c (random_seed): Rename into random_seed_i4.
      	(random_seed_i8): New function.
      	* gfortran.map (GFORTRAN_1.0): Remove _gfortran_random_seed,
      	add _gfortran_random_seed_i4 and _gfortran_random_seed_i8.
      	* libgfortran.h (iexport_proto): Replace random_seed by
      	random_seed_i4 and random_seed_i8.
      	* runtime/main.c (init): Call the new random_seed_i4.
      
      	* gfortran.dg/random_4.f90: New test.
      	* gfortran.dg/random_5.f90: New test.
      	* gfortran.dg/random_6.f90: New test.
      	* gfortran.dg/random_7.f90: New test.
      
      From-SVN: r127383
      Francois-Xavier Coudert committed
    • re PR fortran/32860 (Support %ld (for "long") for gfc_warning) · 096f0d9d
      	PR fortran/32860
      
      	* error.c (error_uinteger): New function.
      	(error_integer): Call error_uinteger.
      	(error_print): Handle %u, %lu, %li and %ld format specifiers.
      	* interface.c (compare_actual_formal): Use the new %lu specifier.
      
      	* c-format.c (gcc_gfc_length_specs): New array.
      	(gcc_gfc_char_table): Add unsigned specifier, and references to
      	the l length modifier.
      	(format_types_orig): Use the new gcc_gfc_length_specs.
      
      	* gcc.dg/format/gcc_gfc-1.c: Updated with new formats.
      
      From-SVN: r127382
      Francois-Xavier Coudert committed
    • re PR fortran/31629 (option to make module entities PRIVATE by default) · 654b6073
      	PR fortran/31629
      
      	* lang.opt (-fmodule-private): New option.
      	* gfortran.h (gfc_option_t): Add flag_module_private member.
      	* invoke.texi (-fmodule-private): Document the new option.
      	* module.c (gfc_check_access): Allow the -fmodule-private option
      	to modify the default behaviour.
      	* options.c (gfc_init_options): Initialize flag_module_private.
      	(gfc_handle_option): Handle -fmodule-private.
      
      	* gfortran.dg/module_private_1.f90: New test.
      
      From-SVN: r127381
      Francois-Xavier Coudert committed
    • re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument) · 5cda5098
      	PR fortran/29600
      
      	* intrinsic.c (add_functions): Add KIND arguments to COUNT,
      	IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND
      	and VERIFY.
      	* iresolve.c (gfc_resolve_count): Add kind argument.
      	(gfc_resolve_iachar): New function.
      	(gfc_resolve_ichar): Add kind argument.
      	(gfc_resolve_index_func): Likewise.
      	(gfc_resolve_lbound): Likewise.
      	(gfc_resolve_len): Likewise.
      	(gfc_resolve_len_trim): Likewise.
      	(gfc_resolve_scan): Likewise.
      	(gfc_resolve_size): New function.
      	(gfc_resolve_ubound): Add kind argument.
      	(gfc_resolve_verify): Likewise.
      	* trans-decl.c (gfc_get_extern_function_decl): Allow specific
      	intrinsics to have 4 arguments.
      	* check.c (gfc_check_count): Add kind argument.
      	(gfc_check_ichar_iachar): Likewise.
      	(gfc_check_index): Likewise.
      	(gfc_check_lbound): Likewise.
      	(gfc_check_len_lentrim): New function.
      	(gfc_check_scan): Add kind argument.
      	(gfc_check_size): Likewise.
      	(gfc_check_ubound): Likewise.
      	(gfc_check_verify): Likewise.
      	* intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR,
      	INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY.
      	* simplify.c (get_kind): Whitespace fix.
      	(int_expr_with_kind): New function.
      	(gfc_simplify_iachar): Add kind argument.
      	(gfc_simplify_iachar): Likewise.
      	(gfc_simplify_ichar): Likewise.
      	(gfc_simplify_index): Likewise.
      	(simplify_bound_dim): Likewise.
      	(simplify_bound): Likewise.
      	(gfc_simplify_lbound): Likewise.
      	(gfc_simplify_len): Likewise.
      	(gfc_simplify_len_trim): Likewise.
      	(gfc_simplify_scan): Likewise.
      	(gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size.
      	(gfc_simplify_size): Add kind argument.
      	(gfc_simplify_ubound): Likewise.
      	(gfc_simplify_verify): Likewise.
      	* intrinsic.h: Update prototypes and add new ones.
      	* trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into
      	gfc_conv_intrinsic_index_scan_verify.
      	(gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove.
      	(gfc_conv_intrinsic_function): Call
      	gfc_conv_intrinsic_index_scan_verify to translate the INDEX,
      	SCAN and VERIFY intrinsics.
      
      	* gfortran.dg/intrinsics_kind_argument_1.f90: New test.
      	* gfortran.dg/pure_dummy_length_1.f90: Adapt to new error wording.
      
      From-SVN: r127380
      Francois-Xavier Coudert committed
    • MAINTAINERS (Various Maintainers): Add myself as loop infrastructure maintainer. · 96876681
      	* MAINTAINERS (Various Maintainers): Add myself as
      	loop infrastructure maintainer.  Update my e-mail
      	address.
      
      From-SVN: r127379
      Zdenek Dvorak committed
    • emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note and with… · 1c7f7c66
      emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note and with REG_RETVAL note after split.
      
      2007-08-12  Sa Liu  <saliu@de.ibm.com>
      
             * emit-rtl.c (try_split): Relink the insns with REG_LIBCALL note
             and with REG_RETVAL note after split.
      
      From-SVN: r127376
      Sa Liu committed
    • mips.c (mips_sched_reorder): Mark cycle parameter as ATTRIBUTE_UNUSED. · 5920daab
      	* config/mips/mips.c (mips_sched_reorder):  Mark cycle parameter
      	as ATTRIBUTE_UNUSED.
      
      From-SVN: r127371
      David Daney committed
    • rs6000.h (CC1_CPU_SPEC): Define as empty string if HAVE_LOCAL_CPU_DETECT not defined. · ee7caeb3
      2007-08-11  David Edelsohn  <edelsohn@gnu.org>
                  Segher Boessenkool  <segher@kernel.crashing.org>
      
              * config/rs6000/rs6000.h (CC1_CPU_SPEC): Define as empty string if
              HAVE_LOCAL_CPU_DETECT not defined.
      
      Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org>
      
      From-SVN: r127370
      David Edelsohn committed
    • Daily bump. · 92c72998
      From-SVN: r127368
      GCC Administrator committed
  4. 11 Aug, 2007 6 commits
    • cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined. · bd85fcee
      
      	* cgraphunit.c (record_cdtor_fn): Declare all cdtors always inlined.
      	(cgraph_process_new_functions): Honor previous value of
      	disregard_inline_limits.
      	* ipa-inline.c (compute_inline_parameters): Likewise.
      
      From-SVN: r127365
      Jan Hubicka committed
    • re PR fortran/31189 (Support backtracing for non-library errors) · 2b840e50
      	PR fortran/31189
      
      	* runtime/backtrace.c (show_backtrace): Skip _gfortrani_handler
      	when displaying backtrace.
      	* runtime/compile_options.c: Include <signal.h>.
      	(handler): New function.
      	(set_options): Set signal handlers for backtrace.
      	* libgfortran.h (handler): Add prototype.
      
      	* invoke.texi (-fbacktrace): Document the new behaviour.
      
      Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>
      
      From-SVN: r127364
      Francois-Xavier Coudert committed
    • re PR fortran/32937 (segfault with string and -fdefault-integer-8) · c9ff1de3
      	PR fortran/32937
      
      	* trans-array.c (gfc_conv_expr_descriptor): Use
      	gfc_conv_const_charlen to generate backend_decl of right type.
      	* trans-expr.c (gfc_conv_expr_op): Use correct return type.
      	(gfc_build_compare_string): Use int type instead of default
      	integer kind for single character comparison.
      	(gfc_conv_aliased_arg): Give backend_decl the right type.
      	* trans-decl.c (gfc_build_intrinsic_function_decls): Make
      	compare_string return an int.
      
      	* gfortran.dg/char_length_6.f90: New test.
      
      	* intrinsics/string_intrinsics.c (compare_string): Return an int.
      	* libgfortran.h (compare_string): Likewise.
      
      From-SVN: r127363
      Francois-Xavier Coudert committed
    • alias.h (alias_set_type): Define new type. · 4862826d
      ./:	* alias.h (alias_set_type): Define new type.
      	(ALIAS_SET_MEMORY_BARRIER): Use it.
      	* rtl.h: Include alias.h.
      	(struct mem_attrs): Use alias_set_type.
      	* tree.h: Include alias.h
      	(struct tree_type): Use alias_set_type.
      	(struct tree_struct_field_tag): Likewise.
      	(struct tree_decl_common): Likewise.
      	* alias.c (struct alias_set_entry): Use alias_set_type.
      	(get_alias_set_entry, alias_set_subset_of): Likewise.
      	(alias_sets_conflict_p): Likewise.
      	(alias_sets_must_conflict_p): Likewise.
      	(objects_must_conflict_p): Likewise.
      	(get_alias_set, new_alias_set): Likewise.
      	(record_alias_subset, record_component_aliases): Likewise.
      	(varargs_set, frame_set): Change to alias_set_type.
      	(get_varargs_alias_set): Use alias_set_type.
      	(get_frame_alias_set): Likewise.
      	* builtins.c (setjmp_alias_set): Change to alias_set_type.
      	* dse.c (struct store_info): Use alias_set_type.
      	(struct read_info, struct clear_alias_mode_holder): Likewise.
      	(clear_alias_set_lookup, canon_address): Likewise.
      	(record_store, check_mem_read_rtx): Likewise.
      	(dse_record_singleton_alias_set): Likewise.
      	(dse_invalidate_singleton_alias_set): Likewise.
      	* emit-rtl.c (get_mem_attrs): Likewise.
      	(set_mem_attributes_minus_bitpos): Likewise.
      	(set_mem_alias_set): Likewise.
      	* expr.c (store_constructor_field, store_field): Likewise.
      	* gimplify.c (struct gimplify_init_ctor_preeval_data): Likewise.
      	* langhooks.c (lhd_get_alias_set): Likewise.
      	* langhooks-def.h (lhd_get_alias_set): Likewise.
      	* reload1.c (alter_reg): Likewise.
      	* tree-flow.h (struct fieldoff): Likewise.
      	* tree-ssa-alias.c (struct alias_map_d): Likewise.
      	(may_alias_p, get_smt_for, create_sft): Likewise.
      	* tree-ssa-alias-warnings.c (nonstandard_alias_types_p): Likewise.
      	* tree-ssa-structalias.c (set_uids_in_ptset): Likewise.
      	(merge_smts_into): Likewise.
      	* varasm.c (const_alias_set): Likewise.
      	* c-common.c (strict_aliasing_warning): Likewise.
      	(c_common_get_alias_set): Likewise.
      	* dse.h (dse_record_singleton_alias_set): Update declaration.
      	(dse_invalidate_singleton_alias_set): Likewise.
      	* emit-rtl.h (set_mem_alias_set): Likewise.
      	* c-common.h (c_common_get_alias_set): Likewise.
      	* print-rtl.c (print_rtx): Cast MEM_ALIAS_SET when printing it.
      	* print-tree.c (print_node): Likewise.
      	* config/alpha/alpha.c (alpha_sr_alias_set): Change to
      	alias_set_type.
      	(alpha_setup_incoming_varargs): Use alias_set_type.
      	* config/i386/i386.c (setup_incoming_varargs_64): Use
      	alias_set_type.
      	(setup_incoming_varargs_ms_64): Likewise.
      	(ix86_GOT_alias_set): Likewise.
      	* config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
      	* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
      	(set): Change to alias_set_type.
      	(get_TOC_alias_set): Use alias_set_type.
      	* config/rs6000/rs6000-protos.h (get_TOC_alias_set): Update
      	declaration.
      	* config/sh/sh.c (sh_builtin_saveregs): Use alias_set_type.
      	* config/sparc/sparc.c (sparc_sr_alias_set): Change to
      	alias_set_type.
      	(struct_value_alias_set): Likewise.
      	* Makefile.in (GTFILES): Add $(srcdir)/alias.h.
      ada/:
      	* misc.c (gnat_get_alias_set): Change return type to
      	alias_set_type.
      cp/:
      	* cp-objcp-common.c (cxx_get_alias_set): Change return type to
      	alias_set_type.
      	* cp/cp-tree.h (cxx_get_alias_set): Update declaration.
      fortran:/
      	* f95-lang.c (gfc_get_alias_set): Change return type to
      	alias_set_type.
      
      From-SVN: r127362
      Ian Lance Taylor committed
    • vxworks-dummy.h (TARGET_VXWORKS): Define. · a7f051fe
      gcc/
      	* config/vxworks-dummy.h (TARGET_VXWORKS): Define.
      	* config/vxworks.h (TARGET_VXWORKS): Override.
      	* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define
      	"mips" if TARGET_VXWORKS.
      
      From-SVN: r127361
      Richard Sandiford committed
    • calls.c (avoid_likely_spilled_reg): New function. · 3fb30019
      gcc/
      	* calls.c (avoid_likely_spilled_reg): New function.
      	(expand_call): Use it.
      
      From-SVN: r127360
      Richard Sandiford committed