1. 15 Feb, 2006 40 commits
    • gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and native platforms. · 6d566287
      	* gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
      	native platforms.
      	(Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
      	finalization can occur normally.
      
      From-SVN: r111074
      Arnaud Charlet committed
    • g-dyntab.adb (Index_Of): conversion from Natural can no longer raise Constraint_Error. · 987b2901
      2006-02-13  Matthew Heaney  <heaney@adacore.com>
      
      	*  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
      	Constraint_Error.
      
      From-SVN: r111073
      Matthew Heaney committed
    • g-catiio.adb (Sec_Number): New type used to compute the number of seconds since 1-1-1970. · 99c22291
      2006-02-13  Pascal Obry  <obry@adacore.com>
      
      	* g-catiio.adb (Sec_Number): New type used to compute the number of
      	seconds since 1-1-1970.
      	(Image) [Natural]: The parameter was an Integer, as we can't deal with
      	negative numbers (years, months...) it is better to have a Natural here.
      	Code clean-up.
      	(Image) [Number]: Change parameter from Long_Integer to Number.
      	(Image): Use Number type to compute the seconds since 1-1-1970 to fix an
      	overflow for dates past year 2038.
      
      From-SVN: r111072
      Pascal Obry committed
    • g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16... · 0c52d1f3
      2006-02-13  Olivier Hainque  <hainque@adacore.com>
      
      	* g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
      	to avoid useless and space inefficient overalignments on targets where
      	Max_Alignment is larger than 16.
      
      From-SVN: r111071
      Olivier Hainque committed
    • freeze.adb (Freeze_Entity): Handle subtypes of protected types and task types when... · add9f797
      2006-02-13  Javier Miranda  <miranda@adacore.com>
      
      	* freeze.adb (Freeze_Entity): Handle subtypes of protected types and
      	task types when accessing to the corresponding record type.
      	Remove '!' in warning message.
      
      From-SVN: r111070
      Javier Miranda committed
    • re PR ada/18819 (ACATS cdd2a02 fail at runtime) · 59e54267
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_util.ads, exp_util.adb (Find_Prim_Op,
      	Is_Predefined_Primitive_Operation): When
      	searching for the predefined equality operator, verify that operands
      	have the same type.
      	(Is_Predefined_Dispatching_Operation): Remove the code that looks
      	for the last entity in the list of aliased subprograms. This code
      	was wrong in case of renamings.
      	(Set_Renamed_Subprogram): New procedure
      	(Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
      	Exp_Type constant computed when entering this subprogram.
      	(Known_Null): New function
      	(OK_To_Do_Constant_Replacement): New function
      	(Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
      	(Side_Effect_Free): An attribute reference 'Input is not free of
      	side effect, unlike other attributes that are functions. (from code
      	reading).
      	(Remove_Side_Effects): Expressions that involve packed arrays or records
      	are copied at the point of reference, and therefore must be marked as
      	renamings of objects.
      	(Is_Predefined_Dispatching_Operation): Return false if the operation is
      	not a dispatching operation.
      
      	PR ada/18819
      	(Remove_Side_Effects): Lift enclosing type conversion nodes for
      	elementary types in all cases.
      
      From-SVN: r111069
      Ed Schonberg committed
    • exp_pakd.ads: Fix typos in comments. · f55cfa2e
      2006-02-13  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_pakd.ads: Fix typos in comments.
      
      	* exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
      	array reference that is an explicit dereference, mark the converted
      	(packed) array reference as analyzed to prevent a forthcoming
      	reanalysis from resetting its type to the original (non-packed) array
      	type.
      
      From-SVN: r111068
      Thomas Quinot committed
    • exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze call. · dad9a816
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
      	call.
      
      From-SVN: r111067
      Robert Dewar committed
    • expect.c (__gnat_expect_portable_execvp): New implementation. · 0273bbb4
      2006-02-13  Pascal Obry  <obry@adacore.com>
      
      	* expect.c (__gnat_expect_portable_execvp): New implementation. The
      	previous implementation was using the C runtime spawnve routine but
      	the corresponding wait was using directly the Win32 API. This was
      	causing some times a lock when waiting for an event using
      	WaitForSingleObject in __gnat_waitpid. This new implementation uses
      	the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
      	API fixes this problem.
      
      From-SVN: r111066
      Pascal Obry committed
    • exp_dist.adb (Copy_Specification): For access parameters... · d48e258e
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_dist.adb (Copy_Specification): For access parameters, copy
      	Null_Exclusion flag, which will have been set for stream subprograms
      	in Ada2005 mode.
      
      From-SVN: r111065
      Ed Schonberg committed
    • exp_disp.ads, [...] (Expand_Dispatching_Call): If the controlling argument of… · b0efe69e
      exp_disp.ads, [...] (Expand_Dispatching_Call): If the controlling argument of the dispatching call is an abstract interface...
      
      2006-02-13  Javier Miranda  <miranda@adacore.com>
      
      	* exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
      	controlling argument of the dispatching call is an abstract interface
      	class-wide type then we use it directly.
      	Check No_Dispatching_Calls restriction.
      	(Default_Prim_Op_Position): Remove the code that looks for the last
      	entity in the list of aliased subprograms. This code was wrong in
      	case of renamings.
      	(Fill_DT_Entry): Add assertion to avoid the use of this subprogram
      	when the source is compiled with the No_Dispatching_Calls restriction.
      	(Init_Predefined_Interface_Primitives): No need to inherit primitives
      	if we are compiling with restriction No_Dispatching_Calls.
      	(Make_Disp_XXX): Addition of assertion to avoid the use of all these
      	subprograms if we are compiling under No_Dispatching_Calls restriction.
      	(Make_DT): Generate a dispatch table with a single dummy entry if
      	we are compiling with the No_Dispatching_Calls restriction. In
      	addition, in this case we don't generate code that calls to the
      	following run-time subprograms: Set_Type_Kind, Inherit_DT.
      	(Make_Select_Specific_Data_Table): Add assertion to avoid the use
      	of this subprogram if compiling with the No_Dispatching_Calls
      	restriction.
      	(Expand_Type_Conversion): Instead of using the actual parameter,
      	the argument passed as parameter to the conversion function was
      	erroneously referenced by the expander.
      	(Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
      	Set_Predefined_Primitive_Op_Address and Set_Signature.
      	(Expand_Dispatching_Call): Generate call to
      	Get_Predefined_Prim_Op_Address for predefined primitives.
      	(Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
      	predefined primitives.
      	(Make_DT, Make_Secondary_DT): If the tagged type has no user defined
      	primitives we reserve one dummy entry to ensure that the tag does not
      	point to some memory that is associated with some other object. In
      	addition, remove all the old code that generated the assignments
      	associated with the signature of the dispatch table and replace them
      	by a call to the new subprogram Set_Signature.
      	(Set_All_DT_Position): Change the algorithm because now we have a
      	separate dispatch table associated with predefined primitive operations.
      	(Expand_Interface_Conversion): In case of non-static offset_to_top
      	add explicit dereference to get access to the object after the call
      	to displace the pointer to the object.
      	(Expand_Interface_Thunk): Modify the generation of the actual used
      	in the calls to the run-time function Offset_To_Top to fulfil its
      	new interface.
      	(Make_DT): Add the new actuals required to call Set_Offset_To_Top.
      
      From-SVN: r111064
      Javier Miranda committed
    • exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the components… · e5cfd2f7
      exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the components of the corresponding record...
      
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
      	components of the corresponding record, take into account component
      	definitions that are access definitions.
      	(Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
      	procedure is not considered a dispatching call and will be expanded
      	properly.
      
      From-SVN: r111063
      Ed Schonberg committed
    • re PR ada/25885 (Tree checking failure on ASIS) · c8ef728f
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
      	return unconstrained arrays.
      	Update comments.
      	(Expand_Call):  An indirect call through an access parameter of a
      	protected operation is not a protected call.
      	Add circuit to raise CE in Ada 2005 mode following call
      	to Raise_Exception.
      	(Register_DT_Entry): Do nothing if
      	the run-time does not give support to abstract interfaces.
      	(Freeze_Subprogram): In case of dispatching operations, do not generate
      	code to register the operation in the dispatch table if the source
      	is compiled with No_Dispatching_Calls.
      	(Register_Predefined_DT_Entry): Generate code that calls the new
      	run-time subprogram Set_Predefined_Prim_Op_Address instead of
      	Set_Prim_Op_Address.
      
      	* sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
      	on array assignments if the right-hand side is a function call that has
      	been inlined. Check is performed on the assignment in the block.
      	(Process_Bounds): If bounds and range are overloaded, apply preference
      	rule for root operations to disambiguate, and diagnose true ambiguity.
      	(Analyze_Assignment): Propagate the tag for a class-wide assignment with
      	a tag-indeterminate right-hand side even when Expander_Active is True.
      	Needed to ensure that dispatching calls to T'Input are allowed and
      	get the tag of the target class-wide object.
      
      	* sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
      	an inherited primitive operation that already overrides several
      	abstract interface primitives. For transitivity, the new entity must
      	also override all the abstract interface primitives covered by the
      	inherited overriden primitive.
      	Emit warning if new entity differs from homograph in same scope only in
      	that one has an access parameter and the other one has a parameter of
      	a general access type with the same designated type, at the same
      	position in the signature.
      	(Make_Inequality_Operator): Use source locations of parameters and
      	subtype marks from corresponding equality operator when creating the
      	tree structure for the implicit declaration of "/=". This does not
      	change anything in behaviour except that the decoration of the
      	components of the subtree created for "/=" allows ASIS to get the
      	string images of the corresponding identifiers.
      	(Analyze_Return_Statement): Remove '!' in warning message.
      	(Check_Statement_Sequence): Likewise.
      	(Analyze_Subprogram_Body): For an access parameter whose designated type
      	is an incomplete type imported through a limited_with clause, use the
      	type of the corresponding formal in the body.
      	(Check_Returns): Implicit return in No_Return procedure now raises
      	Program_Error with a compile time warning, instead of beging illegal.
      	(Has_Single_Return):  Function returning unconstrained type cannot be
      	inlined if expression in unique return statement is not an identifier.
      	(Build_Body_To_Inline): It is possible to inline a function call that
      	returns an unconstrained type if all return statements in the function
      	return the same local variable. Subsidiary procedure Has_Single_Return
      	verifies that the body conforms to this restriction.
      
      	* sem_res.adb (Resolve_Equality_Op): If the operands do not have the
      	same type, and  one of them is of an anonymous access type, convert
      	the other operand to it, so that this is a valid binary operation for
      	gigi.
      	(Resolve_Type_Conversion): Handle subtypes of protected types and
      	task types when accessing to the corresponding record type.
      	(Resolve_Allocator): Add '\' in 2-line warning message.
      	Remove '!' in warning message.
      	(Resolve_Call): Add '\' in 2-line warning message.
      	(Valid_Conversion): Likewise.
      	(Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
      	resulting type may be an access type with an implicit dereference.
      	Obtain the proper component from the designated type.
      	(Make_Call_Into_Operator): Handle properly a call to predefined equality
      	given by an expanded name with prefix Standard, when the operands are
      	of an anonymous access type.
      	(Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
      	Explicit_Dereference and Resolve_Selected_Component, to verify that the
      	prefix of the expression is not of an incomplete type. Allows full
      	diagnoses of all semantic errors.
      	(Resolve_Actuals): If the actual is an allocator whose directly
      	designated type is a class-wide interface we build an anonymous
      	access type to use it as the type of the allocator. Later, when
      	the subprogram call is expanded, if the interface has a secondary
      	dispatch table the expander will add a type conversion to force
      	the displacement of the pointer.
      	(Resolve_Call): If a function that returns an unconstrained type is
      	marked Inlined_Always and inlined, the call will be inlined and does
      	not require the creation of a transient scope.
      	(Check_Direct_Boolean_Op): Removed
      	(Resolve_Comparison_Op): Remove call to above
      	(Resolve_Equality_Op): Remove call to above
      	(Resolve_Logical_Op): Inline above, since this is only call.
      	(Valid_Conversion): Handle properly conversions between arrays of
      	convertible anonymous access types.
      
      	PR ada/25885
      
      	(Set_Literal_String_Subtype): If the lower bound is not static, wrap
      	the literal in an unchecked conversion, because GCC 4.x needs a static
      	value for a string bound.
      
      From-SVN: r111062
      Ed Schonberg committed
    • exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a string... · 6ec9c97a
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
      	string, and the context requires a loop for the assignment (e.g.
      	because the left-hand side is packed), generate a unique name for the
      	temporary that holds the string, to prevent spurious name clashes.
      
      From-SVN: r111061
      Ed Schonberg committed
    • exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to… · dfd99a80
      exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to Make_Adjust_Call done for a newly-allocated object.
      
      2006-02-13  Thomas Quinot  <quinot@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
      	Make_Adjust_Call done for a newly-allocated object.
      
      	* exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
      	in a subprogram are wrapped in a cleanup block, indicate that the
      	subprogram contains an inner block with an exception handler.
      	(Make_Adjust_Call): New Boolean formal Allocator indicating whether the
      	Adjust call is for a newly-allocated object. In that case we must not
      	assume that the finalization list chain pointers are correct (since they
      	come from a bit-for-bit copy of the original object's pointers) so if
      	the attach level would otherwise be zero (no change), we set it to 4
      	instead to cause the pointers to be reset to null.
      
      	* s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
      	reset chain pointers to null.
      
      From-SVN: r111060
      Thomas Quinot committed
    • exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for availability… · a05e99a2
      exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for availability of RE_Interface_Tag.
      
      2006-02-13  Javier Miranda  <miranda@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
      	availability of RE_Interface_Tag.
      	(Build_Initialization_Call): Fix wrong access to the discriminant value.
      	(Freeze_Record_Type): Do not generate the tables associated with
      	timed and conditional dispatching calls through synchronized
      	interfaces if compiling under No_Dispatching_Calls restriction.
      	When compiling for Ada 2005, for a nonabstract
      	type with a null extension, call Make_Controlling_Function_Wrappers
      	and insert the wrapper function declarations and bodies (the latter
      	being appended as freeze actions).
      	(Predefined_Primitive_Bodies): Do not generate the bodies of the
      	predefined primitives associated with timed and conditional
      	dispatching calls through synchronized interfaces if we are
      	compiling under No_Dispatching_Calls.
      	(Build_Init_Procedure):  Use RTE_Available to check if a run-time
      	service is available before generating a call.
      	(Make_Controlling_Function_Wrappers): New procedure.
      	(Expand_N_Full_Type_Declaration): Create a class-wide master for
      	access-to-limited-interfaces because they can be used to reference
      	tasks that implement such limited interface.
      	(Build_Offset_To_Top_Functions): Build the tree corresponding to the
      	procedure spec and body of the Offset_To_Top function that is generated
      	when the parent of a type with discriminants has secondary dispatch
      	tables.
      	(Init_Secondary_Tags): Handle the case in which the parent of the type
      	containing secondary dispatch tables has discriminants to generate the
      	correct arguments to call Set_Offset_To_Top.
      	(Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
      
      	* a-tags.ads, a-tags.adb: (Check_Index): Removed.
      	Add Wide_[Wide_]Expanded_Name.
      	(Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
      	the same functionality of Get_Prim_Op_Address but applied to predefined
      	primitive operations because the pointers to the predefined primitives
      	are now saved in a separate table.
      	(Parent_Size): Modified to get access to the separate table of primitive
      	operations or the parent type.
      	(Set_Predefined_Prim_Op_Address): New subprogram that provides the same
      	functionality of Set_Prim_Op_Address but applied to predefined primitive
      	operations.
      	(Set_Signature): New subprogram used to store the signature of a DT.
      	(Displace): If the Offset_To_Top value is not static then call the
      	function generated by the expander to get such value; otherwise use
      	the value stored in the table of interfaces.
      	(Offset_To_Top): The type of the actual has been changed to Address to
      	give the correct support to tagged types with discriminants. In this
      	case this value is stored just immediately after the tag field.
      	(Set_Offset_To_Top): Two new formals have been added to indicate if the
      	offset_to_top value is static and hence pass this value to the run-time
      	to store it in the table of interfaces, or else if this value is dynamic
      	and then pass to the run-time the address of a function that is
      	generated by the expander to provide this value for each object of the
      	type.
      
      	* rtsfind.ads (Default_Prin_Op_Count): Removed.
      	(Default_Prim_Op_Count): New entity
      	(Get_Predefined_Prim_Op_Address): New entity
      	(Set_Predefined_Prim_Op_Address): New entity
      	(RE_Set_Signature): New entity
      
      From-SVN: r111059
      Javier Miranda committed
    • exp_attr.adb (Expand_N_Attribute_Reference, [...]): If attribute Mechanism_Code… · 80d4224f
      exp_attr.adb (Expand_N_Attribute_Reference, [...]): If attribute Mechanism_Code is applied to renamed subprogram...
      
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
      	attribute Mechanism_Code is applied to renamed subprogram, modify
      	prefix to point to base subprogram.
      	Max/Min attributes now violate Restriction No_Implicit_Conditionals
      
      	* sinfo.ads: Document that Mechanism_Code cannot be applied to
      	renamed subprograms so that the front-end must replace the prefix
      	appropriately.
      
      From-SVN: r111058
      Robert Dewar committed
    • exp_aggr.adb (Build_Array_Aggr_Code): Rename variable "Others_Mbox_Present" to… · d8f7b976
      exp_aggr.adb (Build_Array_Aggr_Code): Rename variable "Others_Mbox_Present" to "Others_Box_Present" because the mbox...
      
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
      	"Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
      	does not exist in the Ada RM.
      	(Compatible_Int_Bounds): Determine whether two integer range bounds
      	are of equal length and have the same start and end values.
      	(Is_Int_Range_Bounds): Determine whether a node is an integer range.
      	(Build_Record_Aggr_Code): Perform proper sliding of a nested array
      	aggregate when it is part of an object declaration.
      	(Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
      	constrains discriminants of its parent, add explicitly the discriminant
      	constraints of the ancestor by retrieving them from the
      	stored_constraint of the parent.
      
      From-SVN: r111057
      Ed Schonberg committed
    • bindusg.adb: Updated documentation for -d and -D switches. · 2c351f04
      2006-02-13  Quentin Ochem  <ochem@adacore.com>
      	    Olivier Hainque  <hainque@adacore.com>
      
      	* bindusg.adb: Updated documentation for -d and -D switches.
      
      	* raise.h (__gnat_set_globals): added new parameter for
      	Default_Stack_Size.
      
      	* init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
      	(__gnat_handle_vms_condition): Adjust context before raise.
      	(__gnat_install_handler): Restore the global vector setup for GCC
      	versions before 3.4, as the frame based circtuitry is not available
      	in this case.
      	(__gnat_set_globals): added a parameter default_stack_size
      	(__gl_default_stack_size): new variable.
      
      From-SVN: r111056
      Quentin Ochem committed
    • einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend against errors… · ba673907
      einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend against errors in the source program...
      
      2006-02-13  Javier Miranda  <miranda@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
      	against errors in the source program: a private types for which the
      	corresponding full type declaration is missing and pragma CPP_Virtual
      	is used.
      	(Is_Unchecked_Union): Check flag on Implementation_Base_Type.
      	(Is_Known_Null): New flag
      	(Has_Pragma_Pure): New flag
      	(No_Return): Present in all entities, set only for procedures
      	(Is_Limited_Type): A type whose ancestor is an interface is limited if
      	explicitly declared limited.
      	(DT_Offset_To_Top_Func): New attribute that is present in E_Component
      	entities. Only used for component marked Is_Tag. If present it stores
      	the Offset_To_Top function used to provide this value in tagged types
      	whose ancestor has discriminants.
      
      	* exp_ch2.adb: Update status of new Is_Known_Null flag
      
      	* sem_ch7.adb: Maintain status of new Is_Known_Null flag
      
      	* sem_cat.adb (Get_Categorization): Don't treat function as Pure in
      	the categorization sense if Is_Pure was set by pragma Pure_Function.
      
      From-SVN: r111055
      Javier Miranda committed
    • opt.ads opt.adb: Add Ada_Version_Explicit_Config along with save/restore routines. · 1f6a2b51
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      	    Serguei Rybin  <rybin@adacore.com>
      
      	* opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
      	save/restore routines.
      	Properly handle Ada_Version_Explicit and Ada_Version_Config, which
      	were not always properly handled previously.
      	Since we are changing the tree format anyway, also get rid of the
      	junk obsolete Immediate_Errors flag.
      	(Tree_Read): Change the way of reading Tree_Version_String - now we
      	read the version string from the tree even if its length is not the
      	same as the length of the version string computed from Gnatvsn.
      	(Search_Directory_Present): New Boolean flag for the compiler.
      	Define Tree_Version_String as a dynamic string.
      	(Default_Stack_Size): new variable, used to handle switch -d.
      
      	* par-prag.adb: 
      	For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
      	only for main unit.
      	Add pragma Ada_2005 (synonym for Ada_05)
      	Properly handle Ada_Version_Explicit and Ada_Version_Config, which
      	were not always properly handled previously.
      
      	* directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
      	explicit Ada_95 to Ada_2005.
      
      From-SVN: r111054
      Robert Dewar committed
    • debug.adb: Eliminate numeric switches for binder/gnatmake · 61dddae4
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      	    Vincent Celier  <celier@adacore.com>
      
      	* debug.adb: Eliminate numeric switches for binder/gnatmake
      
      	* switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
      	switches for the compiler.
      	(Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
      	(Scan_Make_Switches): When failing with an illegal switch, output an
      	error message with the full switch.
      	Eliminate numeric switches for binder/gnatmake
      
      	* switch.ads, switch.adb (Bad_Switch): New procedure
      
      	* switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
      	Remove 0-9 as debug flag character possibilities
      	-d is now controlling the primary stack size when its value is a
      	positive. Also add checks against invalid values, and support for kb,
      	mb. Ditto for -D switch.
      
      From-SVN: r111053
      Robert Dewar committed
    • checks.adb (Build_Discriminant_Checks): If the expression being checks is an… · 86ac5e79
      checks.adb (Build_Discriminant_Checks): If the expression being checks is an aggregate retrieve the values of its...
      
      2006-02-13  Ed Schonberg  <schonberg@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      
      	* checks.adb (Build_Discriminant_Checks): If the expression being
      	checks is an aggregate retrieve the values of its discriminants to
      	generate the check, rather than creating a temporary and a reference
      	to it.
      	(Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
      	(Install_Null_Excluding_Check): Ditto
      	(Selected_Length_Checks): Build actual subtype for the original Ck_Node,
      	not for the renamed object, so that the actual itype is attached in the
      	proper context.
      
      From-SVN: r111052
      Ed Schonberg committed
    • a-direct.adb (Duration_To_Time, [...]): New Unchecked_Conversion functions. · 32c65fc0
      2006-02-13  Vincent Celier  <celier@adacore.com>
      
      	* a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
      	Unchecked_Conversion functions.
      	(Modification_Time): Use direct conversion of OS_Time to Calendar time
      	when OpenVMS returns False.
      
      	* a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
      	a-dirval.adb (OpenVMS): New Boolean function
      
      From-SVN: r111051
      Vincent Celier committed
    • s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has wrapped around. · 463af61d
      2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
      	wrapped around.
      
      From-SVN: r111050
      Eric Botcazou committed
    • err_vars.ads: Suppress range checks for a couple of assignments which otherwise cause... · 3a0462b3
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      	    Eric Botcazou  <ebotcazou@adacore.com>
      
      	* err_vars.ads: Suppress range checks for a couple of assignments
      	which otherwise cause validity checks with validity checking turned on.
      	Update comments.
      
      	* errout.adb (Error_Msg_Internal): Do not suppress warning messages.
      	Make message unconditional if it is a warning.
      	(Error_Msg_NEL): Always output warning messages.
      	Suppress range checks for a couple of assignments which otherwise
      	cause validity checks with validity checking turned on.
      
      	* errout.ads (Message Insertion Characters): Document that '!' is
      	implied by '?' in error messages.
      
      	* gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
      	(Gnat1drv): Use a goto to end of main subprogram instead of
      	Exit_Program (E_Success) so that finalization can occur normally.
      
      From-SVN: r111049
      Robert Dewar committed
    • erroutc.ads, [...] (Set_Message_Blank): Don't insert space after hyphen (small… · 7a5cf1d5
      erroutc.ads, [...] (Set_Message_Blank): Don't insert space after hyphen (small aesthetic change useful for a range of...
      
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
      	after hyphen (small aesthetic change useful for a range of numbers
      	using ^-^.
      	Suppress range checks for a couple of assignments which otherwise
      	cause validity checks with validity checking turned on.
      
      	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
      	Improvement in error message for object.
      	(Rep_Item_Too_Late): Remove '!' in warning message.
      
      From-SVN: r111048
      Robert Dewar committed
    • gnatvsn.ads (Current_Year): New constant, used to easily update copyright on all GNAT tools. · 858f81da
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* gnatvsn.ads (Current_Year): New constant, used to easily update
      	copyright on all GNAT tools.
      
      	* gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
      	copyright notice.
      
      From-SVN: r111047
      Robert Dewar committed
    • gnatlink.adb (Process_Binder_File): If -shared is specified, invoke gcc to link… · 003dd7a7
      gnatlink.adb (Process_Binder_File): If -shared is specified, invoke gcc to link with option -shared-libgcc.
      
      2006-02-13  Vincent Celier  <celier@adacore.com>
      
      	* gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
      	gcc to link with option -shared-libgcc.
      	(Gnatlink): Remove duplicate switches -shared-libgcc
      
      From-SVN: r111046
      Vincent Celier committed
    • bindgen.adb (Gen_Main_C): declare the ensure_reference variable as volatile... · 4430b489
      2006-02-13  Joel Brobecker  <brobecke@adacore.com>
      
      	* bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
      	volatile, to tell the compiler to preserve this variable at any level
      	of optimization.
      	(Gen_Versions_Ada): Temporarily work around codegen bug.
      
      From-SVN: r111045
      Joel Brobecker committed
    • back_end.adb (Scan_Compiler_Arguments): Check if Search_Directory_Present is True and... · 65aa56ec
      2006-02-13  Vincent Celier  <celier@adacore.com>
      
      	* back_end.adb (Scan_Compiler_Arguments): Check if
      	Search_Directory_Present is True and, if it is, add the argument in
      	the source search directory path.
      
      	* switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
      	Search_Directory_Present to True.
      
      From-SVN: r111044
      Vincent Celier committed
    • re PR ada/20753 (ACATS ce3810b segfaults at runtime) · fd013778
      2006-02-13  Geert Bosch  <bosch@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
      	0, since the lower bound of the actual string may be greater than one.
      
      	PR ada/20753
      
      	(Put): Fix condition to raise Layout_Error when invalid
      	layout is requested.
      
      From-SVN: r111043
      Geert Bosch committed
    • rtsfind.adb, [...]: Minor code reorganization (not Present should be No) · 531eb217
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
      	sem_case.adb: Minor code reorganization (not Present should be No)
      
      From-SVN: r111042
      Robert Dewar committed
    • a-tiboio.adb, [...]: New files. · e1458816
      2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
      	a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
      
      	* impunit.adb, Makefile.rtl: Added new Ada 2005 units.
      
      From-SVN: r111041
      Hristian Kirtchev committed
    • a-rttiev.adb, [...]: New files. · 31d7a8bd
      2006-02-13  Pat Rogers  <rogers@adacore.com>
      
      	* a-rttiev.adb, a-rttiev.ads: New files.
      
      From-SVN: r111040
      Pat Rogers committed
    • a-envvar.adb, [...]: New files. · 261ce0eb
      2006-02-13  Nicolas Roche  <roche@adacore.com>
      
      	* a-envvar.adb, a-envvar.ads: New files.
      
      From-SVN: r111039
      Nicolas Roche committed
    • a-ticoio.ads, [...]: Add use clause (moved here from spec) · 5cbfe1be
      2006-02-13  Robert Dewar  <dewar@adacore.com>
      
      	* a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
      
      	* a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
      
      From-SVN: r111038
      Robert Dewar committed
    • lang.opt: Wvariadic-macros: New option. · c85faf41
      2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* lang.opt: Wvariadic-macros: New option.
      	Wold-style-definition: Likewise.
      	Wmissing-format-attribute: Likewise.
      
      	* misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
      	-Wold-style-definition and -Wmissing-format-attribute.
      
      From-SVN: r111037
      Eric Botcazou committed
    • a-cgcaso.adb, [...]: Implemented using heapsort instead of quicksort. · 392f673a
      2006-02-13  Matthew Heaney  <heaney@adacore.com>
      
      	* a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
      	quicksort.
      
      From-SVN: r111036
      Matthew Heaney committed
    • a-rbtgso.adb, [...]: All explicit raise statements now include an exception message. · ffabcde5
      2006-02-13  Matthew Heaney  <heaney@adacore.com>
      
      	* a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
      	a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
      	a-cohase.adb: All explicit raise statements now include an exception
      	message.
      
      	* a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
      	(Update_Element_Preserving_Key): renamed op to just Update_Element.
      	Explicit raise statements now include an exception message
      
      	* a-cihase.ads, a-cohase.ads: Removed comment.
      
      	* a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
      	a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
      	a-szbzha.adb, a-szfzha.ads: New files.
      
      From-SVN: r111035
      Matthew Heaney committed