1. 27 Oct, 2004 40 commits
    • re PR tree-optimization/17133 (wrong code with -ftree-lim) · 52328bf6
      2004-10-27  Daniel Berlin <dberlin@dberlin.org>
      
      	Fix PR tree-optimization/17133
      
      	* tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
      	def kill operand.
      
      	* tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
      	(get_v_must_def_result_ptr): Modify for new structure of
      	v_must_defs array.
      	(get_v_must_def_kill_ptr): New.
      	(op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
      	(op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
      	(op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
      	(op_iter_init): Initialize new mustu members.
      	(op_iter_next_mustdef): New function.
      	(op_iter_init_mustdef): Ditto.
      
      	* tree-flow.h (rewrite_def_def_chains): New function.
      
      	* tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
      	(ssa_mark_def_sites): Ditto.
      	(rewrite_stmt): Ditto.
      	(ssa_rewrite_stmt): Ditto.
      	(rewrite_blocks): Factor out from rewrite_into_ssa.
      	(mark_def_block_sites): Ditto.
      	(rewrite_def_def_chains): New function, just rewrites def-def
      	chains without phi node insertion.
      
      	* tree-pass.h (TODO_fix_def_def_chains): New todo flag.
      
      	* tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
      
      	* tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
      	they include the rhs now.
      
      	* tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
      	V_MUST_DEF_RESULT.
      
      	* tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
      	Update callers.
      	(mark_really_necessary_kill_operand_phis): New function.
      	(perform_tree_ssa_dce): Call it.
      	(pass_dce): Add TODO_fix_def_def_chains.
      	(pass_cd_dce): Ditto.
      
      	* tree-ssa-loop-im.c (determine_max_movement): Look at kills as
      	well.
      	(rewrite_mem_refs): Ditto.
      
      	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
      	as well.
      
      	* tree-ssa-operands.c (allocate_v_may_def_optype):
      	v_may_def_operand_type_t became v_def_use_operand_type_t.
      	(allocate_v_must_def_optype) Ditto.
      	(finalize_ssa_v_must_defs): Update for new operand type, as well
      	as setting the use portion as well.
      	(copy_virtual_operands): Copy the kill operand as well.
      	(create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
      	V_MUST_DEF_RESULT.
      
      	* tree-ssa-operands.h (v_may_def_operand_type): Renamed to
      	v_def_use_operand_type.
      	(v_must_def_optype_d): Use v_def_use_operand_type.
      	(V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
      	(V_MUST_DEF_KILL_*): New macros.
      	(struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
      	members.
      	Rename existing must_i and num_v_must members to mustd_i and
      	num_v_mustd.
      	(SSA_OP_VMUSTDEFKILL): New flag.
      	(SSA_OP_VIRTUAL_KILLS): New flag.
      	(SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
      	(SSA_OP_ALL_KILLS): New flag.
      	(FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
      
      	* tree-ssa.c (verify_ssa): Verify virtual kills as well.
      
      	* tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
      	became V_MUST_DEF_RESULT.
      	(rename_variables_in_bb): Rename kill pointer as well.
      
      	* tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
      	immediate uses.
      
      From-SVN: r89695
      Daniel Berlin committed
    • dbxout.c (dbxout_source_line): Move declaration of begin_label to the block that needs it. · 47a3c2dc
      	* dbxout.c (dbxout_source_line): Move declaration of begin_label to
      	the block that needs it.
      
      From-SVN: r89694
      Richard Sandiford committed
    • re PR c++/18075 (#pragma implementation broken in presence of #pragma ident) · 3da3d587
      	PR 18075
      	* directives.c (do_pragma): Do not defer pragmas which are unknown.
      	(cpp_handle_deferred_pragma): Add cast to silence warning.
      
      From-SVN: r89693
      Zack Weinberg committed
    • dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable ATTRIBUTE_UNUSED. · 12126025
      	* dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
      	ATTRIBUTE_UNUSED.
      
      From-SVN: r89692
      Zack Weinberg committed
    • c-lex.c (cb_def_pragma): Clean up code for making location palatable to diagnostic.c. · b6ff777c
      	* c-lex.c (cb_def_pragma): Clean up code for making location
      	palatable to diagnostic.c.
      
      From-SVN: r89691
      Zack Weinberg committed
    • Add PR number. · 12525dd6
      From-SVN: r89690
      Steven Bosscher committed
    • tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs without any PHI arguments left. · 40b554a3
      	* tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
      	without any PHI arguments left.  Make sure the argument that
      	we're supposed to remove exists at all.
      
      From-SVN: r89689
      Steven Bosscher committed
    • * de.po: Update. · a559b61b
      From-SVN: r89687
      Joseph Myers committed
    • configure.ac: Don't test for [build] __cxa_atexit when building a cross compiler. · 18fbf599
      	* configure.ac: Don't test for [build] __cxa_atexit when building a
      	cross compiler.
      	* configure: Regenerate.
      
      From-SVN: r89684
      Paul Brook committed
    • configure.ac: Use build_exeext not host_exeext when lookin for target tools. · 57991eba
      	* configure.ac: Use build_exeext not host_exeext when lookin for
      	target tools.
      	* configure: Regenerate.
      
      From-SVN: r89683
      Paul Brook committed
    • ffi.c (ffi_prep_cif_machdep): Handle functions that return long long values. · f20459f1
      * src/arm/ffi.c (ffi_prep_cif_machdep): Handle functions that return
      long long values.  Round stack allocation to a multiple of 8 bytes
      for ATPCS compatibility.
      * src/arm/sysv.S (ffi_call_SYSV): Rework to avoid use of APCS register
      names.  Handle returning long long types.  Add Thumb and interworking
      support.  Improve soft-float code.
      
      From-SVN: r89681
      Richard Earnshaw committed
    • re PR other/17991 (Two-process fixincludes broken: pz_mn_name_pat undefined) · 5ae4c565
      2004-10-27  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR other/17991
      
      	* configure.ac: Fix typo.
      	* configure: Regenerate.
      	* fixincl.c (fix_with_system): tSCC is not a pointer.  Fix.
      
      From-SVN: r89680
      Paolo Bonzini committed
    • Resync. · 0ca5fab2
      From-SVN: r89679
      Arnaud Charlet committed
    • gnat_ugn.texi: Generalize "finding memory problems" section into a "memory management issues"... · f142e9fa
      2004-10-26  Cyrille Comar    <comar@act-europe.fr>
      	    Vasiliy Fofanov  <fofanov@act-europe.fr>
      	    Vincent Celier   <celier@gnat.com>
      
      	* gnat_ugn.texi: Generalize "finding memory problems" section into a
      	"memory management issues" section and document some of the useful
      	memory pools provided as part of the GNAT library.
      	Remove "virtual" from declaration of A::method2 in
      	the simple example of Ada/C++ mixed system.
      	Library Projects may be virtually extended: their virtual extensions
      	are not Library Projects.
      	Added section on extending project hierarchies.
      
      From-SVN: r89678
      Cyrille Comar committed
    • 2004-10-26 Vincent Celier <celier@gnat.com> · 1cfd6c3a
      	* a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
      	(Is_Path_Name_Case_Sensitive): New function
      
      	* a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
      	(Base_Name, Simple_Name, Current_Directory, Compose,
      	Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
      	the result.
      
      From-SVN: r89677
      Vincent Celier committed
    • trans.c (call_to_gnu): For an (in-)out parameter passed by reference whose type is a constructed... · 04061aa5
      2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
      
      	* trans.c (call_to_gnu): For an (in-)out parameter passed by reference
      	whose type is a constructed subtype of an aliased object with an
      	unconstrained nominal subtype, convert the actual to the constructed
      	subtype before taking its address.
      
      From-SVN: r89676
      Eric Botcazou committed
    • tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr validity… · b194546e
      tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr validity (process must have read access).
      
      2004-10-26  Pascal Obry  <obry@gnat.com>
      
      	* tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
      	validity (process must have read access). Set to 0 in all other cases.
      	(STOP_FRAME): Now check for ptr validity to avoid a segmentation
      	violation on Win32.
      	(VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
      	segmentation violation.
      
      From-SVN: r89675
      Pascal Obry committed
    • sem_util.adb (Is_Aliased_View): Defend against the case where this subprogram is… · 130c236a
      sem_util.adb (Is_Aliased_View): Defend against the case where this subprogram is called with a parameter that...
      
      2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
      	    Ed Schonberg   <schonberg@gnat.com>
      
      	* sem_util.adb (Is_Aliased_View): Defend against the case where this
      	subprogram is called with a parameter that is not an object name. This
      	situation arises for some cases of illegal code, which is diagnosed
      	later, and in this case it is wrong to call Is_Aliased, as that might
      	cause a compiler crash.
      	(Explain_Limited_Type): Refine previous fix to include
      	inherited components of derived types, to provide complete information.
      
      	* exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
      	is the prival for a protected object.
      	It is necessary to mark this entity as a variable, in addition to
      	flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
      	modified to avoid checking the Aliased flag on entities that are not
      	objects. (Checking that flag for non-objects is erroneous and could
      	lead to a compiler crash).
      
      From-SVN: r89674
      Thomas Quinot committed
    • sem_elab.adb (Check_Elab_Call): Do not check a call that does not appear in the… · 65b03d7d
      sem_elab.adb (Check_Elab_Call): Do not check a call that does not appear in the code for the main unit.
      
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      
      	* sem_elab.adb (Check_Elab_Call): Do not check a call that does not
      	appear in the code for the main unit. Dependencies among units in the
      	context of the main unit are established when those other units are
      	compiled. Otherwise spurious elaboration constraints can generate
      	incorrect elaboration circularities.
      
      From-SVN: r89673
      Ed Schonberg committed
    • sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a different kind… · e895b435
      sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a different kind of stub (possibly wrong name for file)...
      
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      
      	* sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
      	different kind of stub (possibly wrong name for file), do not check
      	for conformance.
      	(Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
      	includes call to some function that returns an unconstrained type, do
      	not inline.
      
      From-SVN: r89671
      Ed Schonberg committed
    • sem_ch3.adb (Complete_Private_Subtype): If the full view is a task or protected… · fc4039b9
      sem_ch3.adb (Complete_Private_Subtype): If the full view is a task or protected type with discriminants...
      
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      
      	* sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
      	or protected type with discriminants, do not constrain the
      	corresponding record type if the subtype declaration has no
      	discriminant constraints. This can be the case in source code, or in
      	the subtype declaration created to rename an actual type within an
      	instantiation.
      
      From-SVN: r89670
      Ed Schonberg committed
    • sem_ch13.adb (Analyze_Attribute_Definition_Clause, [...]): enhance, document &… · fe98a6aa
      sem_ch13.adb (Analyze_Attribute_Definition_Clause, [...]): enhance, document & limit detection of non-sharable internal pools.
      
      2004-10-26  Cyrille Comar  <comar@act-europe.fr>
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
      	'Storage_Pool): enhance, document & limit detection of non-sharable
      	internal pools.
      
      	* impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
      
      	* s-pooglo.ads: Add more documentation now that this pool is properly
      	documented.
      
      From-SVN: r89669
      Cyrille Comar committed
    • s390.md ("*subdf3_cc"): Replaced plus by minus. · db09b5b6
      2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
      
      From-SVN: r89668
      Andreas Krebbel committed
    • sem_ch12.adb (In_Main_Context): Predicate to determine whether the current… · 03c79279
      sem_ch12.adb (In_Main_Context): Predicate to determine whether the current instance appears within a unit that...
      
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      	    Javier Miranda  <miranda@gnat.com>
      
      	* sem_ch12.adb (In_Main_Context): Predicate to determine whether the
      	current instance appears within a unit that is directly in the context
      	of the main unit.
      	Used to determine whether the body of the instance should be analyzed
      	immediately after its spec, to make its subprogram bodies available
      	for front-end inlining.
      	(Analyze_Formal_Array_Type): Cleanup condition that checks that range
      	constraint is not allowed on the component type (AARM 12.5.3(3))
      
      From-SVN: r89667
      Ed Schonberg committed
    • sem_ch10.adb (Optional_Subunit): If file of expected subunit is empty, post message on stub. · 10b60633
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      
      	* sem_ch10.adb (Optional_Subunit): If file of expected subunit is
      	empty, post message on stub.
      
      From-SVN: r89666
      Ed Schonberg committed
    • sem_attr.adb (Resolve_Attribute, [...]): Apply proper accessibility check to… · f529bac5
      sem_attr.adb (Resolve_Attribute, [...]): Apply proper accessibility check to prefix that is a protected operation.
      
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      
      	* sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
      	accessibility check to prefix that is a protected operation.
      
      From-SVN: r89665
      Ed Schonberg committed
    • s-bitops.adb (Bit_Eq): Remove redundant check. · 282c6a89
      2004-10-26  Robert Dewar  <dewar@gnat.com>
      
      	* s-bitops.adb (Bit_Eq): Remove redundant check.
      
      	* s-bitops.ads: Minor comment updates
      	Change some occurrences of Address to System.Address
      
      	* s-carsi8.ads: Fix minor cut-and-paste error in comments
      
      From-SVN: r89664
      Robert Dewar committed
    • s-arit64.adb: (Le3): New function, used by Scaled_Divide · 04b633a8
      2004-10-26  Robert Dewar  <dewar@gnat.com>
      
      	* s-arit64.adb: (Le3): New function, used by Scaled_Divide
      	(Sub3): New procedure, used by Scaled_Divide
      	(Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
      	correct more than one instance of failure to propagate carries
      	correctly.
      	(Double_Divide): Handle overflow case of largest negative number
      	divided by minus one.
      
      	* s-arit64.ads (Double_Divide): Document that overflow can occur in
      	the case of a quotient value out of range.
      	Fix comments.
      
      From-SVN: r89663
      Robert Dewar committed
    • prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual extension of library projects. · 1ae44ba2
      2004-10-26  Vincent Celier  <celier@gnat.com>
      
      	* prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
      	extension of library projects.
      
      	* prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
      	path defaults to ".:<prefix>/lib/gnat".
      	(Parse): For an extending all project, allow direct import of a project
      	that is virtually extended.
      
      	* prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
      	the specified name is directly imported, return its ID. Otherwise, if
      	an extension of this project is imported, return the ID of the
      	extension.
      
      From-SVN: r89662
      Vincent Celier committed
    • prj-env.adb: (Contains_ALI_Files): New Boolean function · 813fc7bf
      2004-10-26  Vincent Celier  <celier@gnat.com>
      
      	* prj-env.adb: (Contains_ALI_Files): New Boolean function
      	(Ada_Objects_Path.Add): For a library project, add to the object path
      	the library directory only if there is no object directory or if the
      	library directory contains ALI files.
      	(Set_Ada_Paths.Add.Recursive_Add): Ditto
      
      From-SVN: r89661
      Vincent Celier committed
    • Fix email address in last entry. · 73f17ac8
      From-SVN: r89660
      Ulrich Weigand committed
    • re PR middle-end/14684 (-fprofile-use/-fprofile-generate failure because of coverage mismatch) · 4db0315e
      2004-10-27  Andreas Krebbel  <krebbel@de.ibm.com>
                  patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
      
      	PR middle-end/14684
      	* opts.c (OPT_fprofile_generate): Default to -funroll-loops
      	to match -fprofile-use.
      
      Co-Authored-By: Kelley Cook <kcook@gcc.gnu.org>
      
      From-SVN: r89659
      Andreas Krebbel committed
    • * config/rs6000/rs6000.c: Fix a comment typo. · 600e1f95
      From-SVN: r89658
      Kazu Hirata committed
    • lib-xref.adb (Generate_Reference): Don't complain about reference to entry… · ca0ae7e0
      lib-xref.adb (Generate_Reference): Don't complain about reference to entry parameter if pragma Unreferenced set...
      
      2004-10-26  Robert Dewar  <dewar@gnat.com>
      
      	* lib-xref.adb (Generate_Reference): Don't complain about reference to
      	entry parameter if pragma Unreferenced set, since we do not properly
      	handle the case of multiple parameters.
      
      From-SVN: r89657
      Robert Dewar committed
    • init.c (__gnat_error_handler): Instead of trying to read the memory before the… · 07f37402
      init.c (__gnat_error_handler): Instead of trying to read the memory before the faulting page we properly test...
      
      2004-10-26  Pascal Obry  <obry@gnat.com>
      
      	* init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
      	memory before the faulting page we properly test the process read
      	access for this address using appropriate Win32 routine.
      	(HPUX sections): guard with "__hpux__" instead of "hpux".
      
      From-SVN: r89656
      Pascal Obry committed
    • i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI. · 3f02ce5d
      2004-10-26  Matthew Gingell  <gingell@gnat.com>
      
      	* i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
      
      From-SVN: r89655
      Matthew Gingell committed
    • g-os_lib.ads, [...] (Set_Executable, [...]): New subprograms. · 9cc29fc6
      2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
      
      	* g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
      	Set_Read_Only): New subprograms.
      	These new routines allow the user to set or unset the Owner execute
      	and Owner write permission flags on a file.
      
      	* makegpr.adb, mlib.adb, mlib-prj.adb: Use
      	GNAT.OS_Lib.Set_Executable instead of rolling our own.
      
      From-SVN: r89654
      Thomas Quinot committed
    • gnat1drv.adb: Suppress calling the back end when Frontend_Layout_On_Target is true. · 427024ae
      2004-10-26  Gary Dismukes  <dismukes@gnat.com>
      
      	* gnat1drv.adb: Suppress calling the back end when
      	Frontend_Layout_On_Target is true.
      
      From-SVN: r89653
      Gary Dismukes committed
    • exp_dist.adb (Build_General_Calling_Stubs): New formal parameter RACW_Type, used… · 48ab1182
      exp_dist.adb (Build_General_Calling_Stubs): New formal parameter RACW_Type, used in the PolyORB version.
      
      2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
      
      	* exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
      	RACW_Type, used in the PolyORB version.
      	Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
      	version and the GARLIC version.
      
      	* snames.ads, snames.adb, s-parint.ads, s-parint.adb:
      	Rename RCI_Info to RCI_Locator for better consistency between the
      	GARLIC and PolyORB versions of the distributed systems annex.
      	(DSA_Implementation_Name): This enumeration lists the possible
      	implementations of the Partition Communication Subsystem for the
      	Distributed Systems Annex (DSA). The three available implementations
      	are the dummy stub implementation (No_DSA), and two versions based on
      	two different distribution runtime libraries: GARLIC and PolyORB. Both
      	the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
      	technology.
      	Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
      	that organization.
      
      	* rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
      	between the GARLIC and PolyORB versions of the distributed systems
      	annex.
      	Remove RE_Unbounded_Reclaim_Pool since it is unused.
      
      From-SVN: r89652
      Thomas Quinot committed
    • exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter is aliased… · faf3cf91
      exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter is aliased and is a by_reference type...
      
      2004-10-26  Ed Schonberg  <schonberg@gnat.com>
      	    Eric Botcazou  <ebotcazou@act-europe.fr>
      
      	* exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
      	is aliased and is a by_reference type, do not pass by copy.
      	(Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
      	detect whether the call is in the right side of an assignment or
      	the expression of an object declaration.  Recurse on component
      	association within aggregates.
      	Call it in the condition that determines whether the temporary is
      	necessary for correct stack-checking.
      
      From-SVN: r89651
      Ed Schonberg committed