62955 Commits

Author SHA1 Message Date
Aaron W. LaFramboise
13cf7262ac re PR bootstrap/17832 (Bootstrap broken by fixincludes failures)
PR bootstrap/17832

	* fixfixes.c (main): Check for _PC_NAME_MAX.
----------------------------------------------------------------------

From-SVN: r89706
2004-10-27 14:13:57 -06:00
Kazu Hirata
0b371c72fe tree-cfg.c (thread_jumps): Speed up by reordering the two conditions for entering basic blocks into worklist.
* tree-cfg.c (thread_jumps): Speed up by reordering the two
	conditions for entering basic blocks into worklist.

From-SVN: r89700
2004-10-27 18:33:26 +00:00
Kazu Hirata
af88d4ec96 tree-cfg.c (thread_jumps): Speed up by pretending to have ENTRY_BLOCK_PTR in worklist.
* tree-cfg.c (thread_jumps): Speed up by pretending to have
	ENTRY_BLOCK_PTR in worklist.

From-SVN: r89699
2004-10-27 18:24:13 +00:00
Kazu Hirata
7f604986cc tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't let an explicit GOTO_EXPR slip through.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
	<GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.

From-SVN: r89698
2004-10-27 18:20:26 +00:00
Geoffrey Keating
36b8a0315c btest-gcc.sh (TESTLOGS): The libstdc++-v3 test log is called libstd++.sum not libstdc++-v3.sum.
* btest-gcc.sh (TESTLOGS): The libstdc++-v3 test log is called
	libstd++.sum not libstdc++-v3.sum.

From-SVN: r89697
2004-10-27 18:19:41 +00:00
Geoffrey Keating
95b0de03a2 Add missing ChangeLog line for configure.host change.
From-SVN: r89696
2004-10-27 18:09:48 +00:00
Daniel Berlin
52328bf6c8 re PR tree-optimization/17133 (wrong code with -ftree-lim)
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
2004-10-27 17:45:21 +00:00
Richard Sandiford
47a3c2dcc6 dbxout.c (dbxout_source_line): Move declaration of begin_label to the block that needs it.
* dbxout.c (dbxout_source_line): Move declaration of begin_label to
	the block that needs it.

From-SVN: r89694
2004-10-27 17:31:14 +00:00
Zack Weinberg
3da3d587c5 re PR c++/18075 (#pragma implementation broken in presence of #pragma ident)
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
2004-10-27 17:29:29 +00:00
Zack Weinberg
121260258c dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable ATTRIBUTE_UNUSED.
* dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
	ATTRIBUTE_UNUSED.

From-SVN: r89692
2004-10-27 17:28:29 +00:00
Zack Weinberg
b6ff777cfc c-lex.c (cb_def_pragma): Clean up code for making location palatable to diagnostic.c.
* c-lex.c (cb_def_pragma): Clean up code for making location
	palatable to diagnostic.c.

From-SVN: r89691
2004-10-27 17:24:20 +00:00
Steven Bosscher
12525dd626 Add PR number.
From-SVN: r89690
2004-10-27 17:20:57 +00:00
Steven Bosscher
40b554a31c tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs without any PHI arguments left.
* 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
2004-10-27 17:14:19 +00:00
Joseph Myers
a559b61bf7 * de.po: Update.
From-SVN: r89687
2004-10-27 18:09:33 +01:00
Paul Brook
18fbf5995b configure.ac: Don't test for [build] __cxa_atexit when building a cross compiler.
* configure.ac: Don't test for [build] __cxa_atexit when building a
	cross compiler.
	* configure: Regenerate.

From-SVN: r89684
2004-10-27 16:08:48 +00:00
Paul Brook
57991ebac2 configure.ac: Use build_exeext not host_exeext when lookin for target tools.
* configure.ac: Use build_exeext not host_exeext when lookin for
	target tools.
	* configure: Regenerate.

From-SVN: r89683
2004-10-27 16:06:39 +00:00
Richard Earnshaw
f20459f1b2 ffi.c (ffi_prep_cif_machdep): Handle functions that return long long values.
* 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
2004-10-27 15:10:22 +00:00
Paolo Bonzini
5ae4c56561 re PR other/17991 (Two-process fixincludes broken: pz_mn_name_pat undefined)
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
2004-10-27 14:42:56 +00:00
Arnaud Charlet
0ca5fab2b7 Resync.
From-SVN: r89679
2004-10-27 15:57:10 +02:00
Cyrille Comar
f142e9fab7 gnat_ugn.texi: Generalize "finding memory problems" section into a "memory management issues"...
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
2004-10-27 15:56:19 +02:00
Vincent Celier
1cfd6c3a59 2004-10-26 Vincent Celier <celier@gnat.com>
* 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
2004-10-27 15:56:03 +02:00
Eric Botcazou
04061aa5af trans.c (call_to_gnu): For an (in-)out parameter passed by reference whose type is a constructed...
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
2004-10-27 15:55:45 +02:00
Pascal Obry
b194546ef0 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
2004-10-27 15:55:31 +02:00
Thomas Quinot
130c236a6a 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
2004-10-27 15:54:52 +02:00
Ed Schonberg
65b03d7d59 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
2004-10-27 15:54:38 +02:00
Ed Schonberg
e895b4353e 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
2004-10-27 15:42:11 +02:00
Ed Schonberg
fc4039b93c 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
2004-10-27 15:41:55 +02:00
Cyrille Comar
fe98a6aa82 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
2004-10-27 15:41:23 +02:00
Andreas Krebbel
db09b5b61b s390.md ("*subdf3_cc"): Replaced plus by minus.
2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.

From-SVN: r89668
2004-10-27 13:41:18 +00:00
Ed Schonberg
03c79279d6 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
2004-10-27 15:40:55 +02:00
Ed Schonberg
10b6063358 sem_ch10.adb (Optional_Subunit): If file of expected subunit is empty, post message on stub.
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
2004-10-27 15:40:29 +02:00
Ed Schonberg
f529bac5ef 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
2004-10-27 15:40:08 +02:00
Robert Dewar
282c6a8934 s-bitops.adb (Bit_Eq): Remove redundant check.
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
2004-10-27 15:39:44 +02:00
Robert Dewar
04b633a8c8 s-arit64.adb: (Le3): New function, used by Scaled_Divide
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
2004-10-27 15:39:21 +02:00
Vincent Celier
1ae44ba2e3 prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual extension of library projects.
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
2004-10-27 15:38:58 +02:00
Vincent Celier
813fc7bf18 prj-env.adb: (Contains_ALI_Files): New Boolean function
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
2004-10-27 15:38:32 +02:00
Ulrich Weigand
73f17ac8c1 Fix email address in last entry.
From-SVN: r89660
2004-10-27 13:37:20 +00:00
Andreas Krebbel
4db0315e11 re PR middle-end/14684 (-fprofile-use/-fprofile-generate failure because of coverage mismatch)
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
2004-10-27 13:35:44 +00:00
Kazu Hirata
600e1f95cf * config/rs6000/rs6000.c: Fix a comment typo.
From-SVN: r89658
2004-10-27 13:11:50 +00:00
Robert Dewar
ca0ae7e008 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
2004-10-27 15:05:51 +02:00
Pascal Obry
07f37402eb 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
2004-10-27 15:05:35 +02:00
Matthew Gingell
3f02ce5de4 i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
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
2004-10-27 15:05:18 +02:00
Thomas Quinot
9cc29fc6f4 g-os_lib.ads, [...] (Set_Executable, [...]): New subprograms.
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
2004-10-27 15:03:38 +02:00
Gary Dismukes
427024aeb0 gnat1drv.adb: Suppress calling the back end when Frontend_Layout_On_Target is true.
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
2004-10-27 15:02:23 +02:00
Thomas Quinot
48ab118240 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
2004-10-27 15:02:12 +02:00
Ed Schonberg
faf3cf91ab 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
2004-10-27 15:01:55 +02:00
Robert Dewar
5e1c00fac7 exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array compares if the component is atomic.
2004-10-26  Robert Dewar  <dewar@gnat.com>

	* exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
	compares if the component is atomic.

	* exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
	array assignment if the component type is atomic.

From-SVN: r89650
2004-10-27 15:01:38 +02:00
Ed Schonberg
6f639c9866 exp_aggr.adb (Safe_Component): An aggregate component that is an unchecked conversion is safe for in-place use...
2004-10-26  Ed Schonberg  <schonberg@gnat.com>

	* exp_aggr.adb (Safe_Component): An aggregate component that is an
	unchecked conversion is safe for in-place use if the expression of the
	conversion is safe.
	(Expand_Array_Aggregate): An aggregate that initializes an allocator may
	be expandable in place even if the aggregate does not come from source.
	(Convert_Array_Aggr_In_Allocator): New procedure to initialize the
	designated object of an allocator in place, rather than building it
	first on the stack. The previous scheme forces a full copy of the array,
	and may be altogether unsusable if the size of the array is too large
	for stack allocation.

From-SVN: r89649
2004-10-27 15:01:17 +02:00
Geert Bosch
0577423398 eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
2004-10-26  Geert Bosch  <bosch@gnat.com>

	* eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
	(Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
	(Pred): Implement in terms of Succ.

From-SVN: r89648
2004-10-27 15:01:02 +02:00
Eric Botcazou
d63c70024d decl.c (gnat_to_gnu_field): Use the type of the inner object for a JM type only if...
2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>

	* decl.c (gnat_to_gnu_field): Use the type of the inner object for a
	JM type only if its size matches that of the wrapper.  When a size is
	prescribed and the field is not aliased, remove the wrapper of a JM
	type only if the size is not greater than that of the packed array.
	(gnat_to_gnu_entity): Change the extension of packed array wrappers
	from LJM to JM.

From-SVN: r89647
2004-10-27 14:29:59 +02:00