Commit Graph

81415 Commits

Author SHA1 Message Date
Thomas Quinot 79e448454b s-finroo.ads, [...] (Read, Write): Use null procedure declarations instead of an explicit null body, for conciseness.
2007-04-20  Thomas Quinot  <quinot@adacore.com>

	* s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
	declarations instead of an explicit null body, for conciseness.

From-SVN: r125459
2007-06-06 12:46:39 +02:00
Jose Ruiz 72fb810db9 s-taprob.adb (Unlock): Change the ceiling priority of the underlying lock, if needed.
2007-04-20  Jose Ruiz  <ruiz@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* s-taprob.adb (Unlock): Change the ceiling priority of the underlying
	lock, if needed.

	* s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
	priority associated to a lock.

	* s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
	assertion to take into account case of no abort restriction.
	(Initialize_Protection_Entries): Add initialization for the field
	New_Ceiling associated to the protected object.
	(Unlock_Entries): Change the ceiling priority of the underlying lock, if
	needed.

	* s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
	since this function needs to be set consistently with Update_Exception.

	* s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
	since this function needs to be set consistently with Update_Exception.

	* s-taskin.ads: Update comments on
	Interrupt_Server_Blocked_On_Event_Flag.
	(Unbind_Handler): Fix handling of server_task wakeup
	(Server_Task): Set self's state so that Unbind_Handler can take
	appropriate actions.
	(Common_ATCB): Now use a constant from System.Parameters to determine
	the max size of the Task_Image field.

	* s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
	Initialize_Analyzer function.
	([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
	take into account case of no abort restriction.
	([Vulnerable_]Complete_Master): Modify assertion.

	* s-tataat.adb (Finalize): Use the nestable versions of
	Defer/Undefer_Abort.

	* s-tpobop.adb (Protected_Entry_Call): Relax assertion.

	* s-tpobop.ads: Update comments.

	* s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
	of locking the object manually, to avoid inconsistencies between
	Lock/Unlock_Entry assertions.

	* s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
	terminating
	application and System.Parameters.No_Abort is True.
	Update comments on Interrupt_Server_Blocked_On_Event_Flag.
	(Unbind_Handler): Fix handling of server_task wakeup
	(Server_Task): Set self's state so that Unbind_Handler can take
	appropriate actions.

From-SVN: r125458
2007-06-06 12:46:22 +02:00
Thomas Quinot b9f3a4b07d 2007-04-20 Thomas Quinot <quinot@adacore.com>
Olivier Hainque  <hainque@adacore.com>

	* a-except-2005.ads, a-except-2005.adb
	(Raise_From_Controlled_Operation): New procedure in
	(private part of) Ada.Exceptions (standard runtime version). Used to
	provide informational exception message when Program_Error is raised as
	a result of an Adjust or Finalize operation propagating an exception.
	(Rmsg_28): Fix description for E.4(18) check.
	(Raise_Current_Excep): Call Debug_Raise_Exception just before
	propagation starts, to let debuggers know about the event in a reliable
	fashion.
	Take the address of E and dereference to make sure it is homed on stack
	and prevent the stores from being deleted, necessary for proper
	debugger behavior on "break exception" hits.
	(Local_Raise): Moved to System.Exceptions

	* s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
	exception message from the current occurrence and raise Program_Error
	has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.

From-SVN: r125457
2007-06-06 12:46:09 +02:00
Thomas Quinot 1c8e4e2e55 socket.c (__gnat_close_signalling_fd): New function.
2007-04-20  Thomas Quinot  <quinot@adacore.com>

	* socket.c (__gnat_close_signalling_fd): New function.
	(__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
	__gnat_safe_getservbyname, __gnat_safe_getservbyport):
	New supporting functions for task safe Netdb operations.

From-SVN: r125456
2007-06-06 12:45:42 +02:00
Olivier Hainque 2e60399433 raise-gcc.c (__gnat_eh_personality): Tweak the signature and add special code on ia64-vms to handle major...
2007-04-20  Olivier Hainque  <hainque@adacore.com>

	* raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
	special code on ia64-vms to handle major incompatibilities between the
	GCC unwinding ABI and the VMS Condition Handling Facility, both calling
	this routine with a very different set of arguments and expectations on
	the return value.

From-SVN: r125455
2007-06-06 12:45:25 +02:00
Robert Dewar e090bc755c sem_elab.adb (Check_A_Call): Specialize elaboration warnings on elaboration model
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
	elaboration model
	(Check_A_Call): Add check for entry call which was causing blowup

From-SVN: r125454
2007-06-06 12:45:10 +02:00
Hristian Kirtchev f377c995c3 sem_util.ads, [...] (May_Be_Lvalue): A prefix of an attribute reference acts as an lvalue when...
2007-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
	reference acts as an lvalue when the attribute name modifies the prefix
	(Is_Coextension_Root): New routine.
	(Mark_Static_Coextensions): New routine.
	(Type_Access_Level): Revise code for checking the level of the
	anonymous access type of a return object.
	(Safe_To_Capture_Value): Not safe to capture if Address_Taken
	(Matches_Prefixed_View_Profile): Remove the no longer necessary
	retrieval of the corresponding controlling record type.
	(Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
	concurrent types declared within a generic as well as class wide types.
	Emit a mode incompatibility error whenever a protected entry or routine
	override an interface routine whose first parameter is not of mode
	"out", "in out" or access to variable.
	(Overrides_Synchronized_Primitive): Rename to
	Find_Overridden_Synchronized_Primitive.
	(Collect_Interface_Components): New subprogram that collects all the
	components of a tagged record containing tags of secondary dispatch
	tables.
	(Add_Global_Declaration): New procedure
	(Abstract_Interface_List): Handle properly the case of a subtype of a
	private extension.
	(Type_Access_Level): In the case of a type whose parent scope is a
	return statement, call Type_Access_Level recursively on the enclosing
	function's result type to determine the level of the return object's
	type.
	(Build_Elaboration_Entity): Build name of elaboration entity from the
	scope chain of the entity, rather than the unit name of the file name.
	(Check_Nested_Access): New procedure.
	(Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
	(Get_Renamed_Entity): Utility routine for performing common operation
	of chasing the Renamed_Entity field of an entity.

From-SVN: r125453
2007-06-06 12:44:43 +02:00
Robert Dewar 495d6dd6da sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
2007-04-20  Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
	(Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
	overriding of an inherited private subprogram now there is no need to
	inherit its dispatching slot and reduce the size of the dispatch table.
	Set_All_DT_Position now ensures that the same slot is now assigned to
	both entities. This is required to statically build the dispatch table.
	(Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
	of calling Set_All_DT_Position to re-evaluate the position of the
	entries in the dispatch table. Such reevaluation is not desired if
	the tagged type is already frozen.

From-SVN: r125452
2007-06-06 12:44:24 +02:00
Hristian Kirtchev b7d1f17ff2 sem_res.ads, [...] (Process_Allocator): Do not propagate the chain of coextensions when...
2007-04-20  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
	chain of coextensions when an allocator serves as the root of such a
	chain.
	(Propagate_Coextensions): Remove the test for the root being an
	allocator.
	(Resolve_Allocator): Add condition to ensure that all future decoration
	occurs on an allocator node. Add processing and cleanup for static
	coextensions.
	(Valid_Conversion): If the operand type is the limited view of a
	class-wide type, use the non-limited view is available to determine
	legality of operation.
	(Ambiguous_Character): move to spec, for use elsewhere.
	(Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
	(Resolve_Range): Diagnose properly an ambiguous range whose bounds are
	character literals.
	(Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
	Do_Division_Check flag explicitly.
	(Resolve_Actuals): If the actual is of a synchronized type, and the
	formal is of the corresponding record type, this is a call to a
	primitive operation of the type, that is declared outside of the type;
	the actual must be unchecked-converted to the type of the actual
	(Resolve_Call): Kill all current values for any subprogram call if
	flag Suppress_Value_Tracking_On_Call is set.
	(Resolve_Type_Conversion): Generate error message the the operand
	or target of interface conversions come from a limited view.
	(Check_Infinite_Recursion): Ignore generated calls
	(Check_Allocator_Discrim_Accessibility): New procedure for checking
	that an expression that constrains an access discriminant in an
	allocator does not denote an object with a deeper level than the
	allocator's access type.
	(Resolve_Allocator): In the case of an allocator initialized by an
	aggregate of a discriminated type, check that associations for any
	access discriminants satisfy accessibility requirements by calling
	Check_Allocator_Discrim_Accessibility.
	(Resolve_Equality_Op): Handle comparisons of anonymous access to
	subprogram types in the same fashion as other anonymous access types.
	(Resolve_Concatenation_Arg): Remove initial character '\' in an error
	message that is not a continuation message.
	(Resolve_Type_Conversion): Add missing support for conversion to
	interface type.
	(Resolve_Actuals): Introduce a transient scope around the call if an
	actual is a call to a function returning a limited type, because the
	resulting value must be finalized after the call.
	(Resolve_Actuals): If the call was given in prefix notations, check
	whether an implicit 'Access reference or implicit dereference must be
	added to make the actual conform to the controlling formal.

From-SVN: r125451
2007-06-06 12:43:57 +02:00
Robert Dewar 27c489df75 2007-04-20 Robert Dewar <dewar@adacore.com>
Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb
	(Find_Var): Do not consider function call in test for infinite loop
	warning if warnings set off for function entity.
	(One_Bound): Do not create a temporary for a loop bound if it is a
	character literal.
	(Analyze_Assignment): Traverse the right hand side of an assignment and
	mark all allocators as static coextensions.
	(Analyze_Assignment): Exempt assignments involving a dispatching call
	to a function with a controlling access result from the check requiring
	the target to be class-wide.

From-SVN: r125450
2007-06-06 12:43:37 +02:00
Robert Dewar 8f7770f9f8 sem_ch13.adb (Analyze_Attribute_Definition_Clause, [...]): Check for restriction No_Implementation_Attributes if in Ada 95 mode.
2007-04-20  Robert Dewar  <dewar@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
	Check for restriction No_Implementation_Attributes if in Ada 95 mode.
	(Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
	(Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
	message when using a VM, since this attribute is not supported.
	(Analyze_Record_Representation_Clause): Give unrepped component warnings

	* usage.adb: Add new warning for renaming of function return objects
	Indicate that -gnatwp and -gnatwP concern front-end inlining
	Add line for -gnatyg
	Add usage information for -gnatw.c/C

From-SVN: r125449
2007-06-06 12:43:09 +02:00
Javier Miranda 8909e1edc6 sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the use of entity Exception_Occurrence if...
2007-04-20  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
	use of entity Exception_Occurrence if it is not available in the
	target run-time.

	* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
	concurrent types are declared within an Ada 2005 generic, build their
	corresponding record types since they are needed for overriding-related
	semantic checks.
	(Analyze_Protected_Type): Rearrange and simplify code for testing that a
	protected type does not implement a task interface or a nonlimited
	interface.
	(Analyze_Task_Type): Rearrange and simplify code for testing that a task
	type does not implement a protected interface or a nonlimited interface.
	(Single_Task_Declaration, Single_Protected_Declaration): use original
	entity for variable declaration, to ensure that debugging information
	is correcty generated.
	(Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
	routines if the expander is not active.
	(Analyze_Task_Body): Mark all handlers to stop optimization of local
	raise, since special things happen for task exception handlers.

	* sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
	concurrent types declared within a generic.
	(Check_Dispatching_Operation): Do not emit warning about late interface
	operations in the context of an instance.
	(Check_Dispatching_Call): Remove restriction against calling a
	dispatching operation with a limited controlling result.
	(Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
	Register_Interface_DT_Entry by calls to Register_Primitive.
	(Check_Dispatching_Formals): Handle properly a function with a
	controlling access result.

From-SVN: r125448
2007-06-06 12:42:51 +02:00
Javier Miranda fcd1d957e5 sem_ch10.ads, [...] (Analyze_Compilation_Unit): Disable check on obsolescent withed unit in case of limited-withed units.
2007-04-20  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
	on obsolescent withed unit in case of limited-withed units.
	(Analyze_Compilation_Unit): Add guard to code that removed an
	instantiation from visibility, to prevent compiler aborts when
	instantiation is abandoned early on.
	(Install_Limited_Withed_Unit): Recognize a limited-with clause on the
	current unit being analyzed, and Distinguish local incomplete types
	from limited views of types declared elsewhere.
	(Build_Limited_Views.Decorate_Tagged_Type): Add documentation
	to state that the class-wide entity is shared by the limited-view
	and the full-view.
	(Analyze_With_Clause): Improve placement of flag for case of
	unimplemented unit.
	(Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
	manner similar to GNAT.Current_Exception. This is a violation of
	restriction (No_Exception_Propagation), and also inhibits the
	optimization of local raise to goto.
	(Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
	and if so set Most_Recent_Exception_Used flag in Opt, and also check
	for violation of restriction No_Exception_Propagation.

From-SVN: r125447
2007-06-06 12:42:36 +02:00
Robert Dewar 9f0d9574d3 sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names Remove no longer used nodes.
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
	Remove no longer used nodes.

From-SVN: r125446
2007-06-06 12:42:10 +02:00
Robert Dewar 0e701488e1 scng.adb: (Check_End_Of_Line): Deal with very long lines
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* scng.adb: (Check_End_Of_Line): Deal with very long lines

From-SVN: r125445
2007-06-06 12:41:57 +02:00
Arnaud Charlet b06f1f839c s-bitops.adb: Get rid of System.Pure_Exceptions.
2007-04-20  Arnaud Charlet  <charlet@adacore.com>

	* s-bitops.adb: Get rid of System.Pure_Exceptions.
	Replace UC by Ada.UC

From-SVN: r125444
2007-06-06 12:41:35 +02:00
Arnaud Charlet 6790c86527 restrict.ads, [...] (No_Exception_Handlers_Set): Only return true if configurable run-time or No_Run_Time is set.
2007-04-20  Arnaud Charlet  <charlet@adacore.com>

	* restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
	true if configurable run-time or No_Run_Time is set.
	(Set_Restriction): Avoid setting restriction No_Elaboration_Code when
	processing an unit which is not the one being compiled.

From-SVN: r125443
2007-06-06 12:41:12 +02:00
Vincent Celier 38c2fd0ca9 prj.adb (Project_Empty): Gives default value for new component Libgnarl_Needed
2007-04-20  Vincent Celier  <celier@adacore.com>

	* prj.adb (Project_Empty): Gives default value for new component
	Libgnarl_Needed

	* prj-attr.ads: Minor reformatting

	* prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
	directory using the untouched casing.
	(For_All_Source_Dirs): Idem.

	* prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
	directories specified with switches -aP.
	(Add_Search_Project_Directory): New procedure
	(Initialize_Project_Path): Put the directories in table
	Search_Directories in the project search path.
	(Initialize_Project_Path): For VMS, transform into canonical form the
	project path.

From-SVN: r125442
2007-06-06 12:40:57 +02:00
Vincent Celier f95fd3b225 prep.ads, prep.adb (Expression): New Boolean parameter Complemented, defaulted to False.
2007-04-20  Vincent Celier  <celier@adacore.com>

	* prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
	defaulted to False.
	In the "not" case, recursive call with Complemented set to True.
	Do not allow "or" or "and" operators when Complemented is True.

From-SVN: r125441
2007-06-06 12:40:36 +02:00
Robert Dewar af1a7c8879 par-ch4.adb: (P_Name): Recover from literal used as name
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb: (P_Name): Recover from literal used as name

From-SVN: r125440
2007-06-06 12:40:24 +02:00
Ed Schonberg f92f17e6e9 par-ch12.adb (P_Generic_Associations): The source position of an Others association is that of the others keyword...
2007-04-20  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* par-ch12.adb (P_Generic_Associations): The source position of an
	Others association is that of the others keyword, not that of the token
	that follows the box.
	(P_Formal_Type_Definition): Handle formal access types that carry a
	not null indicator.

	* par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
	multiple identifier are present, save Scan_State before scanning the
	colon, to ensure that separate trees are constructed for each
	declaration.
	(P_Identifier_Declarations): For object declaration, set new flag
	Has_Init_Expression if initialization expression present.
	(P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
	Improve NOT NULL error messages

From-SVN: r125439
2007-06-06 12:40:12 +02:00
Ed Schonberg c7ce71c226 sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components of the type that specify the position of interface...
2007-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
	of the type that specify the position of interface tags when the type
	inherits discriminated array components from the parent type.
	If a component is initialized with a box, check for the presence of a
	default expression in its declaration before using its default
	initialization procedure.
	(Resolve_Record_Aggregate): If a component is box-initialized, and the
	component type has a discriminants, create a partial aggregate for it
	by copying the discriminants of the component subtype.
	Reject attempt to initialize a discriminant with a box.
	(Array_Aggr_Subtype): Indicate to the backend that the size of arrays
	associated with dispatch tables is known at compile time.
	(Get_Value): If an association in a record aggregate has a box
	association, and the corresponding record component has a default
	expression, always copy the default expression, even when the
	association has a single choice, in order to create a proper
	association for the expanded aggregate.

From-SVN: r125438
2007-06-06 12:39:47 +02:00
Javier Miranda 2b73cf6852 sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to the full type declaration.
2007-04-20  Javier Miranda  <miranda@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
	the full type declaration.
	(Analyze_Component_Declaration): Add local variable E to capture the
	initialization expression of the declaration. Replace the occurences of
	Expression (N) with E.
	(OK_For_Limited_Init_In_05): Allow initialization of class-wide
	limited interface object with a function call.
	(Array_Type_Declaration): If the declaration lacks subtype marks for
	indices, create a simple index list to prevent cascaded errors.
	(Is_Null_Extension): Ignore internal components created for secondary
	tags when checking whether a record extension is a null extension.
	(Check_Abstract_Interfaces): Add missing support for interface subtypes
	and generic formals.
	(Derived_Type_Declaration): Add missing support for interface subtypes
	and generic formals.
	(Analyze_Object_Declaration): If an initialization expression is
	present, traverse its subtree and mark all allocators as static
	coextensions.
	(Add_Interface_Tag_Component): When looking for components that may be
	secondary tags, ignore pragmas that can appear within a record
	declaration.
	(Check_Abstract_Overriding): an inherited function that dispatches on
	result does not need to be overriden if the controlling type is a null
	extension.
	(Mentions_T): Handle properly a 'class attribute in an anonymous access
	component declaration, when the prefix is an expanded name.
	(Inherit_Component): If the derivation is for a private extension,
	inherited components remain visible and their ekind should not be set
	to Void.
	(Find_Type_Of_Object): In the case of an access definition, always set
	Is_Local_Anonymous_Access. We were previously not marking the anonymous
	access type of a return object as a local anonymous type.
	(Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
	range with character literal bounds.
	(Constrain_Array): Initialize the Packed_Array_Type field to Empty.
	(Access_Subprogram_Declaration): Indicate that the type declaration
	depends on an incomplete type only if the incomplete type is declared
	in an open scope.
	(Analyze_Subtype_Declaration): Handle properly subtypes of
	synchronized types that are tagged, and that may appear as generic
	actuals.
	(Access_Subprogram_Declaration): An anonymous access to subprogram can
	appear as an access discriminant in a private type declaration.
	(Add_Interface_Tag_Components): Complete decoration of the component
	containing the tag of a secondary dispatch table and the component
	containing the offset to the base of the object (this latter component
	is only generated when the parent type has discriminants --as documented
	in this routine).
	(Inherit_Components): Use the new decoration of the tag components to
	improve the condition that avoids inheriting the components associated
	with secondary tags of the parent.
	(Build_Discriminanted_Subtype): Indicate to the backend that the
	size of record types associated with dispatch tables is known at
	compile time.
	(Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
	(Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
	to include task, protected, and synchronized interfaces as limited
	interfaces.
	(Process_Discriminants): Remove the setting of
	Is_Local_Anonymous_Access on the type of (anonymous) access
	discriminants of nonlimited types.
	(Analyze_Interface_Type_Declaration): Complete the decoration of the
	class-wide entity it is is already present. This situation occurs if
	the limited-view has been previously built.
	(Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
	field.
	(Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
	Related_Interface.

From-SVN: r125437
2007-06-06 12:39:14 +02:00
Vincent Celier 717809895b osinte-c.ads, [...] (Set_Library_Info_Name): Fail if base name of specified object file is not equal to base name of source.
2007-04-20  Vincent Celier  <celier@adacore.com>

	* osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
	of specified object file is not equal to base name of source.

From-SVN: r125436
2007-06-06 12:38:46 +02:00
Vincent Celier b5755e2ba5 mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory separator...
2007-04-20  Vincent Celier  <celier@adacore.com>

	* mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
	separator, use instead the proper host directory separator.
	(Copy_ALI_Files): Make sure that an already existing ALI file in the
	ALI copy dir is writable, before doing the copy.

	* mlib-utl.ads, mlib-utl.adb: 
	(Gcc): If length of command line is too long, put the list of object
	files in a response file, if this is supported by the platform.
	(Ar): If invocation of the archive builder is allowed to be done in
	chunks and building it in one shot would go above an OS dependent
	limit on the number of characters on the command line, build the archive
	in chunks.

From-SVN: r125435
2007-06-06 12:38:29 +02:00
Pascal Obry da4d406dcb mkdir.c (__gnat_mkdir): Add support for UTF-8.
2007-04-20  Pascal Obry  <obry@adacore.com>

	* mkdir.c (__gnat_mkdir): Add support for UTF-8.

From-SVN: r125434
2007-06-06 12:38:07 +02:00
Jose Ruiz 66680f7af6 Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run time...
2007-04-20  Jose Ruiz  <ruiz@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
	time, use the default s-interr body that provides interrupt support
	based on signals.
	(LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
	a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
	g-soccon.ads, and s-taprop.adb for the marte run time.
	(EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
	timers are supported on marte.
	(EH_MECHANISM for marte): Do not use ZCX.
	(THREADSLIB for marte): Use -lmarte.
	Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
	Add mlib-tgt-specific.o to gnatmake objects
	mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
	longer of MLib.Tgt.
	(LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
	6, either kernel or rtp, use a specialized version of s-osinte.ads.

From-SVN: r125433
2007-06-06 12:37:53 +02:00
Arnaud Charlet d3cc6a3226 lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, since both are separated.
2007-04-20  Arnaud Charlet  <charlet@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
	since both are separated.
	Add support for imported CIL packages.
	Add further special handling of "value_type" for CIL.
	Add special handling of pragma Import for CIL.

	* make.ads, make.adb: When switch -eS is used, direct all outputs to
	standard output instead of standard error, except errors.
	(Absolute_Path): Use untouched casing for the parent directory.
	(Add_Library_Search_Dir): Use the untouched directory name.
	(Add_Source_Search_Dir): Idem.
	(Change_To_Object_Directory): Update output to use proper casing.
	(Create_Binder_Mapping_File): Use the untouched filename to set
	ALI_Name.
	(Gnatmake): Use untouched library and executable directory names.
	(Insert_Project_Sources): Use untouched filename for spec and body.
	(Is_In_Object_Directory): Use untouched object directory.
	(Mark_Directory): Idem.
	(Collect_Arguments_And_Compile): Ensure that Full_Source_File always
	contains the non-canonical filename in all cases.
	(Change_To_Object_Directory): In verbose mode, display the name of the
	object directory we're changing to.
	(Compile_Sources): Make sure, when a project file is used, to compile
	the body of the unit, when there is one, even when only the spec is
	recorded in an ALI file.
	(Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
	spec to the body.
	(Report_Compilation_Failed): New procedure
	(Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
	procedures moved from the spec to the body.
	(Extract_Failure): Removed, not used
	Replace explicit raises of exception Bind_Failed and Link_Failed with
	calls to Make_Failed with the proper message.
	Replace explicit raises of exception Compilation_Failed with calls to
	procedure Report_Compilation_Failed.
	(Initialize): Create mapping files unconditionally when using project
	files.

	* sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
	Pragma_CIL_Constructor): New names.

	* targparm.ads, targparm.adb
	(Compiler_System_Version): Removed, no longer used.
	(Get_Target_Parameters): Relax checks on system.ads validity. Add
	handling of two new system flags: JVM and CLI.

From-SVN: r125432
2007-06-06 12:37:41 +02:00
Ed Schonberg 437bae3f74 sem_ch12.adb (Analyze_Associations): Diagnose use of an others association in an instance.
2007-04-20  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Analyze_Associations): Diagnose use of an others
	association in an instance.
	(Copy_Generic_Node): If the node is a string literal, no need to copy
	its descendants.
	(Is_Generic_Formal): For a formal subprogram, the declaration is the
	grandparent of the entity.
	(Analyze_Formal_Interface_Type): Transform into a full type declaration,
	to simplify handling of formal interfaces that derive from other formal
	interfaces.
	(Instantiate_Subprogram_Body): The defining unit name of the body of
	the instance should be a defining identifier.
	(Install_Formal_Packages): make global to the package, for use in
	instantiations of child units.
	(Analyze_Package_Instantiation): Do not attempt to set information on an
	enclosing master of an entry when expansion is disabled.
	(Instantiate_Type): If the actual is a tagged synchronized type and the
	generic ancestor is an interface, create a generic actual for the
	corresponding record.
	(Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
	declaration, to ensure that the interface list is processed correctly.
	(Inline_Instance_Body): If enclosing scope is an instance body, remove
	its entities from visibiility as well.
	(Pre_Analyze_Actuals): if the actual is an allocator with  constraints
	given with a named association, analyze the expression only, not the
	discriminant association itself.
	(Reset_Entity): If the analysis of a selected component is transformed
	into an expanded name in the prefix of a call with parameters, do not
	transform the original node into an expanded name, to prevent visibility
	errors in the case of nested generics.
	(Check_Private_View): For an array type, check whether the index types
	may need exchanging.

From-SVN: r125431
2007-06-06 12:37:16 +02:00
Robert Dewar f35b24e9cc layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package spec from body
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
	spec from body
	(Layout_Type): Fix recomputation of size from alignment.

From-SVN: r125430
2007-06-06 12:36:48 +02:00
Olivier Hainque 27f92b1609 initialize.c (__gnat_initialize for vxworks): Update documentation on the ZCX support...
2007-04-20  Olivier Hainque  <hainque@adacore.com>

	* initialize.c (__gnat_initialize for vxworks):  Update documentation
	on the ZCX support, using different sets of crtstuff objects than with
	GCC 3.4.

From-SVN: r125429
2007-06-06 12:36:28 +02:00
Tristan Gingold dc64221190 init.c: Do not adjust IP of an imported VMS exception of ia64.
2007-04-20  Tristan Gingold  <gingold@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* init.c: Do not adjust IP of an imported VMS exception of ia64.
	LIB$STOP is called to raise an exception and the IP of the exception
	is the instruction right after the call.
	(__gnat_adjust_context_for_raise, AIX): Implement.
	(__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
	 adjust_context_for_raise before Raise_From_Signal_Hanler.
	(__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
	siginfo is passed to the handler, necessary to let the zcx propagation
	engine unwind past it.

From-SVN: r125428
2007-06-06 12:36:17 +02:00
Vincent Celier 10e77af221 a-clrefi.adb, [...]: New files
2007-04-20  Vincent Celier  <celier@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* a-clrefi.adb, a-clrefi.ads: New files

	* impunit.adb: Add s-os_lib in the list of user visible units.
	(Non_Imp_File_Names_95): Add a-clrefi to this list
	Remove obsolete run-time entries.
	(Non_Imp_File_Names_05): Add Ada 2005 entries for:
	 "a-exetim" -- Ada.Execution_Time
	 "a-extiti" -- Ada.Execution_Time.Timers

	* mlib-prj.ads, mlib-prj.adb
	(Build_Library): Use untouched object dir and library dir. At the
	same time makes sure that the checks are done using the canonical
	form. Removes hard-coded directory separator and use the proper host
	one instead.
	(Process_Project): Do not look in object directory to check if libgnarl
	is needed for a library, if there is no object directory.
	(Build_Library): Scan the ALI files to decide if libgnarl is needed for
	linking.
	(Build_Library): When invoking gnatbind, use a response file if the
	total size of the arguments is too large.

	* Makefile.rtl: (g-sttsne): New object file.
	Add entry for a-clrefi, s-utf_32, System.Exceptions

	* Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
	(GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
	(GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
	Change g-string to s-string, g-os_lib to s-os_lib
	Change all g-utf_32 references to s-utf_32

From-SVN: r125427
2007-06-06 12:35:54 +02:00
Pascal Obry 26fa2a35f5 hostparm.ads (Normalized_CWD): Use the host directory separator instead of the hardcoded forward slash which...
2007-04-20  Pascal Obry  <obry@adacore.com>

	* hostparm.ads (Normalized_CWD): Use the host directory separator
	instead of the hardcoded forward slash which is not the proper
	character on Windows for example.
	(Java_VM): Removed.

From-SVN: r125426
2007-06-06 12:31:39 +02:00
Robert Dewar 45fdc75565 g-trasym.ads, [...]: Update list of supported targets Add note about symbolic traceback
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* g-trasym.ads, g-traceb.ads: Update list of supported targets
	Add note about symbolic traceback

From-SVN: r125425
2007-06-06 12:31:28 +02:00
Thomas Quinot 9aeef76b6f g-soccon.ads: Add new constant Thread_Blocking_IO...
2007-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
	default, set False on a per-runtime basis.
	(Need_Netdb_Buffer): New constant.

	* g-socket.ads, g-socket.adb: Import new package
	GNAT.Sockets.Thin.Task_Safe_NetDB.
	(Raise_Host_Error): Use Host_Error_Message from platform-specific thin
	binding to obtain proper message.
	(Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
	Replace various occurrences of Arry (Arry'First)'Address with the
	equivalent Arry'Address (GNAT always follows implementation advice from
	13.3(14)).
	(Get_Host_By_Address, Get_Host_By_Name,
	Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
	instead, rely on platform-specific task safe netdb operations provided
	by g-socthi.

	* g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
	parameter Process_Blocking_IO.
	(Host_Error_Messages): Add stub body.
	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
	(Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
	Safe_Getservbyport): Move functions into new child package
	Task_Safe_NetDB.
	(Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
	Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
	(In_Addr): Add alignment clause.

From-SVN: r125424
2007-06-06 12:31:06 +02:00
Emmanuel Briot 96338f1975 g-regpat.adb (Quote): Fix improper quoting of '.'
2007-04-20  Emmanuel Briot  <briot@adacore.com>

	* g-regpat.adb (Quote): Fix improper quoting of '.'

From-SVN: r125423
2007-06-06 12:30:52 +02:00
Thomas Quinot bdfc3830f9 g-pehage.adb (Produce): Open output files in Binary mode...
2007-04-20  Thomas Quinot  <quinot@adacore.com>

	* g-pehage.adb (Produce): Open output files in Binary mode, so that
	they have UNIX line endings (LF only) even on Windows, and thus pass
	all GNAT style checks.

From-SVN: r125422
2007-06-06 12:30:40 +02:00
Vincent Celier 690792a21d g-os_lib.ads, [...] (Normalize_Pathname.Get_Directory): Correct obvious bug (return Dir; instead of return Directory;).
2007-04-20  Vincent Celier  <celier@adacore.com>

	* g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
	Correct obvious bug (return Dir; instead of return Directory;).
	(Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last

From-SVN: r125421
2007-06-06 12:30:30 +02:00
Vincent Celier 751089b271 gnatsym.adb: Update Copyright notice
2007-04-20  Vincent Celier  <celier@adacore.com>

	* gnatsym.adb: Update Copyright notice
	(Parse_Cmd_Line): Accept new switch -D
	(Gnatsym): In Direct policy (switch -D) copy reference file to symbol
	 file.

	* prj.ads (Policy): New policy Direct
	(Yes_No_Unknown): New enumeration type
	(Project_Data): New component Libgnarl_Needed

	* prj-nmsc.adb (Check_For_Source): When recording a source file make
	use the untouched pathname casing.
	(Get_Directories): Ensure that the Display_Exec_Directory is using the
	proper casing on non case-sensitive platforms like Windows.
	(Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
	on all platforms, as it is not possible to know which one is allowed
	before processing the project files.
	(Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
	specified when symbol policy is Direct. Check that when there is a
	symbol file defined (either by default or with attribute
	Library_Symbol_File) it is not the same as the reference symbol file.
	(Check_Stand_Alone_Library): Recognize new symbol policy Direct.
	(Look_For_Sources): Allow Locally_Removed_Files to be declare in non
	extending projects.
	(Record_Ada_Source): Record a source that has been locally removed in an
	imported project.

	* symbols.ads (Policy): New policy Direct

	* symbols-vms.adb (Initialize): Take new policy Direct in case
	statement

From-SVN: r125420
2007-06-06 12:30:19 +02:00
Vasiliy Fofanov 8cc39ff26b gmem.c: Add support for timestamps on memory operations.
2007-04-20  Vasiliy Fofanov  <fofanov@adacore.com>

	* gmem.c: Add support for timestamps on memory operations.

	* memtrack.adb, gnatmem.adb: Add support for timestamps on memory
	operations (not used currently, just foundation for future
	enhancements). Add possibility to perform full dump of gmem.out file.
	(Print_Back_Traces): Declare accesses to root arrays constants since
	they aren't modified.
	(Print_Back_Traces): allocate root arrays on the heap rather than stack.

From-SVN: r125419
2007-06-06 12:30:04 +02:00
Vincent Celier 9fd7938582 gnatls.adb: Add 3 spaces before the default project directory when...
2007-04-20  Vincent Celier  <celier@adacore.com>

	* gnatls.adb: 
	Add 3 spaces before the default project directory when displaying
	the project search path.
	Add new command line switch '-l' to display license information.

From-SVN: r125418
2007-06-06 12:29:53 +02:00
Vincent Celier 37ed3e0679 gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= has been specified Correct error...
2007-04-20  Vincent Celier  <celier@adacore.com>

	* gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
	has been specified
	Correct error message when invocation of the linker fails
	Add explicit size clause for the C imported variables
	Object_List_File_Supported and Using_GNU_Linker to emphasize that
	we expect char size.
	Read target parameters earlier, since this is needed to set
	Target_VM properly. Also do not use -static/shared-libgcc for non GCC
	targets.

From-SVN: r125417
2007-06-06 12:29:41 +02:00
Vincent Celier 53a0bb66e7 gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept switch -P
2007-04-20  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
	switch -P
	(ASIS_Main): New global variable
	(Get_Closure): New procedure
	(GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
	check, metric or pretty. Call Get_Closure in this case.
	(Check_Files): For GNAT LIST, check all sources of all projects when
	All_Projects is True.
	(GNATCmd): Accept -U for GNAT LIST

From-SVN: r125416
2007-06-06 12:29:31 +02:00
Vincent Celier f38df0e116 g-debpoo.ads, [...] (Free_Physically.Free_Blocks): Use the absolute value of Header.Block_Size when...
2007-04-20  Vincent Celier  <celier@adacore.com>
	    Emmanuel Briot  <briot@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
	absolute value of Header.Block_Size when displaying the freed physical
	memory in traces.
	(Allocate): Compute Storage_Address using Integer_Address, not
	Storage_Offset, because the range of Storage_Offset may not be large
	enough.
	(Configure): New parameter Low_Level_Traces
	(Allocate, Deallocation, Free_Physically): Added low-level traces
	(Configure): new parameter Errors_To_Stdout.
	(Output_File): new subprogram
	(Deallocate, Dereference): Send error messages to the proper stream
	(Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
	documented. Previous code would send it to the current output file
	defined in GNAT.IO, which might not be stdout
	(Is_Valid): Adjust comment to mention that a positive reply means that
	Header_Of may be used to retrieve the allocation header associated with
	the subprogram Storage address argument. Return False early if this
	address argument is misaligned.

From-SVN: r125415
2007-06-06 12:29:21 +02:00
Robert Dewar fbe627afbd g-comlin.ads, [...]: Add new warning for renaming of function return objects
2007-04-20  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* g-comlin.ads, g-comlin.adb: 
	Add new warning for renaming of function return objects

	* opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
	(Tree_Read): Use size of object instead of type'object_size, since the
	latter is incorrect for packed array types.
	(Tree_Write): Same fix

	* opt.ads: Add new warning for renaming of function return objects
	(Generating_Code): New boolean variable used to indicate that the
	frontend as finished its work and has called the backend to process
	the tree and generate the object file.
	(GCC_Version): Is now private
	(Static_Dispatch_Tables): New constant declaration.
	(Overflow_Checks_Unsuppressed): New flag.
	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
	(List_Closure): New flag for gnatbind (-R)
	Zero_Formatting: New flag for gnatbind (-Z)
	(Special_Exception_Package_Used): New flag.
	(Warn_On_Unrepped_Components): New flag.

	* sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
	unit is a compilation unit, rather than relying on its scope, so that
	Standard can be renamed.
	(Analyze_Object_Renaming): Add new warning for renaming of function
	return objects.
	Also reject attempt to rename function return object in Ada 83 mode.
	(Attribute_Renaming): In case of tagged types, add the body of the
	generated function to the freezing actions of the type.
	(Find_Type): A protected type is visible right after the reserved word
	"is" is encountered in its type declaration. Set the entity and type
	rather than emitting an error message.
	(New_Scope): Properly propagate Discard_Names to inner scopes
	(Check_Nested_Access): New procedure.
	(Has_Nested_Access, Set_Has_Nested_Access): New procedures.
	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.

	* sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
	Add new warning for renaming of function return objects
	(Check_References): Suppress warnings for objects whose type or
	base type has Warnings suppressed.
	(Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
	(Set_Warning_Switch): Include new -gnatwc in -gnatwa

From-SVN: r125414
2007-06-06 12:29:05 +02:00
Robert Dewar f24f72e892 g-catiio.ads, [...] (Image): Check for null picture string
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* g-catiio.ads, g-catiio.adb (Image): Check for null picture string

From-SVN: r125413
2007-06-06 12:28:45 +02:00
Robert Dewar a2fd0ecb6e g-hesorg.ads, [...]: Update documentation GNAT.Heap/Bubble_Sort_G is now pure
2007-04-20  Robert Dewar  <dewar@adacore.com>

	* g-hesorg.ads, g-heasor.ads,
	g-busorg.ads, g-bubsor.ads: Update documentation
	GNAT.Heap/Bubble_Sort_G is now pure

From-SVN: r125412
2007-06-06 12:28:31 +02:00
Vincent Celier 804f7040cf frontend.adb (Frontend): Return immediately if the main source could not be parsed...
2007-04-20  Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* frontend.adb (Frontend): Return immediately if the main source could
	not be parsed, because of preprocessing errors.

	* gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
	(Gnat1drv): Exit with errors if the main source could not be parsed,
	because of preprocessing errors.
	(Check_Rep_Info): New procedure

From-SVN: r125411
2007-06-06 12:28:20 +02:00
Ed Schonberg 0712790c36 exp_util.ads, [...] (Expand_Subtype_From_Expr): In Ada2005...
2007-04-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
	object of a limited type can be initialized with a call to a function
	that returns in place. If the limited type has unknown discriminants,
	and the underlying type is a constrained composite type, build an actual
	subtype from the function call, as is done for private types.
	(Side_Effect_Free): An expression that is the renaming of an object or
	whose prefix is the renaming of a object, is not side-effect free
	because it may be assigned through the renaming and its value must be
	captured in a temporary.
	(Has_Controlled_Coextensions): New routine.
	(Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
	as is done for other limited types.
	(Non_Limited_Designated_Type): new predicate.
	(Make_CW_Equivalent_Type): Modified to handle class-wide interface
	objects.
	Remove all handling of with_type clauses.

        * par-ch10.adb: Remove all handling of with_type clauses.

	* lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
	checksum if the main source could not be parsed.
	(Loat_Unit): When processing a child unit, determine properly whether
	the parent unit is a renaming when the parent is itself a child unit.
	Remove handling of with_type clauses.

	* sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
	(Set_Is_Static_Coextension): New procedure.
	(Has_Local_Raise): New function
	(Set_Has_Local_Raise): New procedure
	(Renaming_Exception): New field
	(Has_Init_Expression): New flag
	(Delay_Finalize_Attach): Remove because flag is obsolete.
	(Set_Delay_Finalize_Attach): Remove because flag is obsolete.
	Remove all handling of with_type clauses.
	(Exception_Junk): Can now be set in N_Block_Statement

From-SVN: r125410
2007-06-06 12:28:07 +02:00