1. 05 Sep, 2005 40 commits
    • g-dirope.ads: Minor reformatting Document that bounds of result of Base_Name match the input... · c1cd0d96
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* g-dirope.ads: Minor reformatting
      	Document that bounds of result of Base_Name match the input index
      	positions.
      	Add documentation on environment variable syntax for Expand_Path
      
      	* gnat_ugn.texi: Update documentation to include mention of -m switches
      	Document new treatment of wide characters in max line length
      	style check.
      	Remove -gnatL/-gnatZ switches, no longer used.
      	Add note on pragmas Assertion_Policy and Debug_Policy in discussion
      	of -gnata switch.
      
      	* gnat_rm.texi: Add doc for two argument form of pragma
      	Float_Representation.
      	Add documentation for pragma No_Strict_Aliasing
      	Add note that explicit component clause overrides pragma Pack.
      	Add documentation of pragma Debug_Policy
      
      From-SVN: r103891
      Robert Dewar committed
    • ttypef.ads (VAXDF_Safe_First): Use correct value for constant. · bbb91310
      2005-09-01  Geert Bosch  <bosch@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
      	(VAXGF_Safe_First): Idem.
      
      From-SVN: r103890
      Geert Bosch committed
    • sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied to a… · 8d7559ff
      sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied to a variable that is statically known to be constant.
      
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
      	to a variable that is statically known to be constant.
      
      From-SVN: r103889
      Ed Schonberg committed
    • sem_util.ads, [...] (Gather_Components): Omit interface tags from the list of required components. · 2c867f5a
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
      	from the list of required components.
      	(Is_Controlling_Limited_Procedure): Determine whether an entity is a
      	primitive procedure of a limited interface with a controlling first
      	parameter.
      	(Is_Renamed_Entry): Determine whether an entry is a procedure renaming
      	of an entry.
      	(Safe_To_Capture_Value): A value (such as non_null) is not safe to
      	capture if it is generated in the second operand of a short-circuit
      	operation.
      	Do not capture values for variables with address clauses.
      	(Is_Object_Reference): Treat a function call as an object reference only
      	if its type is not Standard_Void_Type.
      
      From-SVN: r103888
      Ed Schonberg committed
    • sem_type.adb (Add_One_Interp): If a candidate operation is an inherited… · 63e746db
      sem_type.adb (Add_One_Interp): If a candidate operation is an inherited interface operation that has an...
      
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_type.adb (Add_One_Interp): If a candidate operation is an
      	inherited interface operation that has an implementation, use the
      	implementation to avoid spurious ambiguities.
      	(Interface_Present_In_Ancestor): In case of concurrent types we can't
      	use the Corresponding_Record_Typ attribute to look for the interface
      	because it is set by the expander (and hence it is not always
      	available). For this reason we traverse the list of interfaces
      	(available in the parent of the concurrent type).
      	(Interface_Present_In_Ancestor): Handle entities from the limited view
      
      From-SVN: r103887
      Ed Schonberg committed
    • sem_res.adb (Resolve_Membership_Op): In case of the membership test… · 1420b484
      sem_res.adb (Resolve_Membership_Op): In case of the membership test "Iface_CW_Typ in T'Class" we have nothing else...
      
      2005-09-01  Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_res.adb (Resolve_Membership_Op): In case of the membership test
      	"Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
      	the expander will generate the corresponding run-time check to evaluate
      	the expression.
      	(Resolve_Call): Check for legal type of procedure name or prefix that
      	appears as a trigger in a triggering alternative.
      	(Valid_Conversion): If expression is ambiguous and the context involves
      	an extension of System, remove System.Address interpretations.
      	(Resolve_Qualified_Expression): Reject the case of a specific-type
      	qualification applied to a class-wide argument. Enhance comment
      	to explain checking of Original_Node.
      	(Resolve_Type_Conversion): The location of the error message was not
      	general enough to handle the general case and hence it has been removed.
      	In addition, this patch improves the text of the message.
      	(Resolve_Type_Conversion): Add missing support for access to interface
      	types.
      	(Resolve_Type_Conversion): If the target is a class-wide interface type,
      	do not expand if the expression is the actual in a call, because proper
      	expansion will take place when the call itself is expanded.
      	(Resolve_Allocator): If the context is an unchecked conversion, the
      	allocator inherits its storage pool, if any, from the target type of
      	the conversion.
      
      From-SVN: r103886
      Javier Miranda committed
    • sem_disp.adb (Check_Controlling_Formals): Anonymous access types used in… · 9cca32af
      sem_disp.adb (Check_Controlling_Formals): Anonymous access types used in controlling parameters exclude null because it...
      
      2005-09-01  Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_disp.adb (Check_Controlling_Formals): Anonymous access types
      	used in controlling parameters exclude null because it is necessary to
      	read the tag to dispatch, and null has no tag.
      	(Override_Dispatching_Operation): If the previous operation is inherited
      	from an interface, it becomes hidden  and does not participate in later
      	name resolution.
      
      From-SVN: r103885
      Javier Miranda committed
    • sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration... · 725393ea
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
      	verify that the procedure and the entry are mode conformant.
      	(Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
      	as a different operator, which is often a cut-and-paste error.
      
      From-SVN: r103884
      Ed Schonberg committed
    • sem_ch6.ads, [...] (Check_Conformance): In case of anonymous access types the… · 41251c60
      sem_ch6.ads, [...] (Check_Conformance): In case of anonymous access types the null-exclusion and access-to-constant...
      
      2005-09-01  Javier Miranda  <miranda@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
      	access types the null-exclusion and access-to-constant attributes must
      	also match.
      	(Analyze_Return_Statement): When the result type is an anonymous access
      	type, apply a conversion of the return expression to the access type
      	to ensure that appropriate accessibility checks are performed.
      	(Analyze_Return_Type): For the case of an anonymous access result type,
      	generate the Itype and set Is_Local_Anonymous_Access on the type.
      	Add ??? placeholder for check to disallow returning a limited object
      	in Ada 2005 unless it's an aggregate or a result of a function call.
      	Change calls from Subtype_Mark to Result_Definition.
      	(Analyze_Subprogram_Body): Change formal Subtype_Mark to
      	Result_Definition in call to Make_Function_Specification.
      	(Build_Body_To_Inline): Change Set_Subtype_Mark to
      	Set_Result_Definition.
      	(Make_Inequality_Operator): Change formal Subtype_Mark to
      	Result_Definition in call to Make_Function_Specification.
      	(Process_Formals): Create the new null-excluding itype if required.
      	(New_Overloaded_Entity): For an entity overriding an interface primitive
      	check if the entity also covers other abstract subprograms in the same
      	scope. This is required to handle the general case, that is, overriding
      	other interface primitives and overriding abstract subprograms inherited
      	from some abstract ancestor type.
      	(New_Overloaded_Entity): For an overriding entity that comes from
      	source, note the operation that it overrides.
      	(Check_Conformance, Type_Conformant): Addition of one new formal
      	to skip controlling formals in the analysis. This is used to
      	handle overloading of abstract interfaces.
      	(Base_Types_Match): Add missing case for types imported from
      	limited-with clauses
      	(New_Overloaded_Entity): Add barrier to protect the use of
      	the "alias" attribute.
      
      From-SVN: r103883
      Javier Miranda committed
    • sem_ch4.adb (Transform_Object_Operation): In a context off the form V (Obj.F)... · ec6078e3
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch4.adb (Transform_Object_Operation): In a context off the form
      	V (Obj.F), the rewriting does not involve the indexed component, but
      	only the selected component itself.
      	Do not apply the transformation if the analyzed node is an actual of a
      	call to another subprogram.
      	(Complete_Object_Operation): Retain the entity of the
      	dispatching operation in the selector of the rewritten node. The
      	entity will be used in the expansion of dispatching selects.
      	(Analyze_One_Call): Improve location of the error message associated
      	with interface.
      	(Analyze_Selected_Component): No need to resolve prefix when it is a
      	function call, resolution is done when parent node is resolved, as
      	usual.
      	(Analyze_One_Call): Add a flag to suppress analysis of the first actual,
      	when attempting to resolve a call transformed from its object notation.
      	(Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
      	of the argument list for each interpretation of the operation.
      	(Try_Object_Operation): The designated type of an access parameter may
      	be an incomplete type obtained through a limited_with clause, in which
      	case the primitive operations of the type are retrieved from its full
      	view.
      	(Analyze_Call): If this is an indirect call, and the return type of the
      	access_to_subprogram is incomplete, use its full view if available.
      
      From-SVN: r103882
      Ed Schonberg committed
    • sem_ch3.ads, [...] (Analyze_Object_Declaration): Go to the underlying type to… · 9dfd2ff8
      sem_ch3.ads, [...] (Analyze_Object_Declaration): Go to the underlying type to check if a type is Constrained in cases related to...
      
      2005-09-01  Cyrille Comar  <comar@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
      	underlying type
      	to check if a type is Constrained in cases related to code generation
      	(rather than semantic checking) since otherwise we do not generate
      	similar code for mutable private types depending if their
      	discriminants are visible or not.
      	(Check_Abstract_Overriding): Do not complain about failure to override
      	the primitive operations used in dispatching selects since they will
      	always be overriden at the freeze point of the type.
      	(Access_Definition): Separate out handling for resetting the scope
      	of an anonymous access function result type. Retrieve the scope
      	of the associated function rather than using Current_Scope, which
      	does not have a consistent value (depends on whether we're in the
      	middle of analyzing formal parameters). Add ??? comment about
      	finding a cleaner way to handle the special cases of scope setting.
      	(Process_Incomplete_Dependents): A protected operation is never a
      	dispatching operation (only its wrapper may be).
      	(Build_Derived_Record_Type): In case of tagged private types that
      	implement interfaces add derivation of predefined primitive
      	operations.
      	(Derive_Subprograms): Replace the Is_Interface_Derivation parameter
      	by two parameters that are used in case of derivation from abstract
      	interface types: No_Predefined_Prims is used to avoid the derivation
      	of predefined primitives from the interface, and Predefined
      	Prims_Only is used to complete the derivation predefined primitives
      	in case of private tagged types implementing interfaces.
      	Fix typo in comments
      	(Find_Interface_In_Descendant): Protect the frontend against
      	wrong code with large circularity chains.
      	(Is_Private_Overriding): Add support for entities overriding interface
      	subprograms. The test failed because Entities associated with overriden
      	interface subprograms are always marked as hidden (and used to build
      	the secondary dispatch table); in this case the overriden entity is
      	available through the field abstract_interface_alias (cf. override_
      	dispatching_operation)
      	(Access_Definition): Set the scope of the type to Current_Scope for the
      	case of a function with an anonymous access result type.
      	(Access_Subprogram_Declaration): Handle creation of the type entity for
      	an access-to-function type with an anonymous access result.
      	(Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
      	in handling for N_Access_Function_Definition.
      	(Analyze_Subtype_Declaration): Modify the text of error message.
      	(Derived_Type_Declaration): Modify the text of error message.
      	(Process_Subtype): Modify the text of error message plus cleanup
      	of one redundant error message.
      	(Analyze_Component_Declaration): Code cleanup.
      	(Analyze_Object_Declaration): Code cleanup.
      	(Analyze_Subtype_Declaration): Propagate the null-exclusion
      	attribute in case of access types. Code cleanup.
      	(Array_Type_Declaration): Code cleanup.
      	(Process_Discriminants): Create the new null-excluding itype
      	if required. Code cleanup.
      	(Process_Subtype): Create the new null-excluding itype if
      	required. Code cleanup.
      	(Build_Derived_Record_Type): Code cleanup to avoid calling
      	twice the subprogram derive_subprograms in case of private
      	types that implement interfaces. In this particular case the
      	subprogram Complete_Subprograms_Derivation already does the
      	job associated with the second call.
      
              * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
              conversion to the full view when generating an operation for a
              discriminant whose type may currently be private.
      
      From-SVN: r103881
      Cyrille Comar committed
    • sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the clause if… · 27e6455d
      sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the clause if the array aggregate is surrounded by parentheses.
      
      2005-09-01  Thomas Quinot  <quinot@adacore.com>
      
      	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
      	clause if the array aggregate is surrounded by parentheses.
      
      From-SVN: r103880
      Thomas Quinot committed
    • sem_ch12.adb (Instantiate_Subprogram_Body): When creating the defining entity… · 48aa1f1a
      sem_ch12.adb (Instantiate_Subprogram_Body): When creating the defining entity for the instance body...
      
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
      	defining entity for the instance body, make a new defining identifier
      	rather than copying the entity of the spec, to prevent accidental
      	sharing of the entity list.
      	(Check_Private_View): When exchanging views of private types, build the
      	list of exchanged views as a stack, to ensure that on exit the exchanges
      	are undone in the proper order.
      	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
      	Restore the compilation environment in case of instantiation_error.
      	(Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
      	for an anonymous access result.
      	(Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
      	(Formal_Entity): Handle properly the case of a formal package that
      	denotes a generic package renaming.
      
      From-SVN: r103879
      Ed Schonberg committed
    • sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to become local to the whole package. · f8185647
      2005-09-01  Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
      	become local to the whole package.
      	(Install_Limited_Withed_Unit): Instead of unchaining real entities if
      	the package was already analyzed the new algorithm "replaces" the
      	real entities by the shadow ones. This is required to ensure that
      	the order of these entities in the homonym chains does not change;
      	otherwise we can have undefined references at linking time because
      	in case of conflicts the external name of the entities will have
      	a suffix that depends on the order of the entities in the chain.
      	(Remove_Limited_With_Clause): Complementary code that completes the
      	new algorithm and replaces the shadow entities by the real ones.
      	(Install_Limited_Withed_Unit): When unchaining entities before the
      	installation of the shadow entities, only regular entities of the
      	public part must be taken into account. This is required to
      	keep this routine in synch with the work done by Remove_Limited_
      	With_Clause
      	(Install_Limited_With_Clause): Introduce implicit limited_with_clause
      	even if unit is analyzed, because the analysis of the unit is
      	idempotent in any case, and the limited view of the unit may have to
      	be installed for proper visibility.
      	(Expand_Limited_With_Clause): Even if the unit in the implicit
      	with_clause has been analyzed already, a limited view of the package
      	must be built for the current context, if it does not exist yet.
      
      From-SVN: r103878
      Javier Miranda committed
    • sem_cat.adb (Check_Categorization_Dependencies): Add more detail to error msgs… · 0835f1d7
      sem_cat.adb (Check_Categorization_Dependencies): Add more detail to error msgs for most common cases.
      
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
      	error msgs for most common cases.
      	Use new errout insertion char < (conditional warning)
      
      From-SVN: r103877
      Robert Dewar committed
    • re PR ada/9087 (Component_Size for packed array returns wrong values) · c4e5e10f
      2005-09-01  Thomas Quinot  <quinot@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
      	'Address attribute reference with an overloaded prefix, use the
      	location of the prefix (not the location of the attribute reference) as
      	the error location.
      	(Analyze_Attribute, case 'Size): The name of an enumeration literal, or
      	a function renaming thereof, is a valid prefix for 'Size (where it is
      	intepreted as a function call).
      	(Statically_Denotes_Entity): New predicate to determine whether the
      	prefix of an array attribute can be considered static.
      
      	PR ada/9087
      	(Eval_Attr): Fix failure to evaluate Component_Size for
      	unconstrained arrays (resulted in wrong value in packed case, since
      	back end cannot handle this case)
      
      From-SVN: r103876
      Thomas Quinot committed
    • scng.adb (Check_End_Of_Line): Count characters, rather than bytes (makes a… · d52f1094
      scng.adb (Check_End_Of_Line): Count characters, rather than bytes (makes a difference for wide characters)
      
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* scng.adb (Check_End_Of_Line): Count characters, rather than bytes
      	(makes a difference for wide characters)
      
      	* widechar.adb, widechar.ads:
      	Add Wide_Char_Byte_Count feature to count chars vs bytes
      
      From-SVN: r103875
      Robert Dewar committed
    • prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object directories… · 09245ac9
      prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object directories of projects that have no Ada sources.
      
      2005-09-01  Vincent Celier  <celier@adacore.com>
      
      	* prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
      	directories of projects that have no Ada sources.
      
      From-SVN: r103874
      Vincent Celier committed
    • opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config] · 6e18b0e5
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
      
      	* par-prag.adb: Implement new pragma Debug_Policy
      
      	* sem_prag.adb Implement new pragma Debug_Policy
      	(Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
      	Component_Size attribute specification. Give warning for ignored pragma
      	Pack.
      
      	* snames.h, snames.ads, snames.adb: Introduce entries in
      	Preset_Names for Name_Disp_Asynchronous_Select,
      	Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
      	Name_Disp_Timed_Select.
      	New pragma Debug_Policy
      
      	* switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
      	explicitly.
      	Switch -gnata also sets Debug_Pragmas_Enabled
      
      	* sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
      	handle an explicit -gnata when compiling predefined files.
      
      From-SVN: r103873
      Robert Dewar committed
    • mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources, including… · 1b3b0f45
      mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources, including those that are inherited.
      
      2005-09-01  Vincent Celier  <celier@adacore.com>
      
      	* mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
      	including those that are inherited.
      
      From-SVN: r103872
      Vincent Celier committed
    • lib-xref.adb (Output_Overridden_Op): Display information on overridden operation. · 5ec5b8c1
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      	    Emmanuel Briot  <briot@adacore.com>
      
      	* lib-xref.adb (Output_Overridden_Op): Display information on
      	overridden operation.
      
      	* lib-xref.ads: Add documentation on overridden operations.
      
      	* ali.ads (Xref_Entity_Record): Add support for storing the overriding
      	information.
      
      	* ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
      	overriding entity information.
      
      From-SVN: r103871
      Ed Schonberg committed
    • lib-writ.adb: Update Copyright notice · 8e4fe95d
      2005-09-01  Vincent Celier  <celier@adacore.com>
      
      	* lib-writ.adb: Update Copyright notice
      	(Write_With_Lines): On platforms where file names are case-insensitive,
      	record the file names in lower case.
      	(Write_ALI): For D lines, on platforms where file names are
      	case-insensitive, record the file names in lower case.
      
      From-SVN: r103870
      Vincent Celier committed
    • layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to Result_Definition. · 244480db
      2005-09-01  Gary Dismukes  <dismukes@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
      	Result_Definition.
      
      	* par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
      	function specs.
      	Call Set_Result_Definition instead of Set_Subtype_Mark.
      	(P_Subprogram_Specification): Add parsing of anonymous access result
      	plus null exclusions. Call Set_Result_Definition instead of
      	Set_Subtype_Mark.
      
      	* par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
      	(P_Access_Type_Definition): Add parsing for an anonymous access result
      	subtype, plus parsing for null exclusions. Call Set_Result_Definition
      	instead of Set_Subtype_Mark.
      
      	* sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
      	(Null_Exclusion_Present): Allow this flag for N_Function_Specification.
      	(Result_Definition): New function for N_Function_Specifications.
      	(Subtype_Mark): No longer allowed for N_Access_Function_Definition and
      	N_Function_Specification.
      	(Set_Null_Exclusion_Present): Allow this flag for
      	N_Function_Specification.
      	(Set_Result_Definition): New procedure for N_Function_Specifications.
      	(Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
      	and N_Function_Specification.
      
      	* sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
      	Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
      	Add support for LIMITED NEW for Ada 2005 AI-419
      	Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
      	syntax for anonymous access results.
      	Replace Subtype_Mark field by Result_Definition in
      	N_Function_Specification and N_Access_Definition specs.
      	Add Null_Exclusion_Present to spec of N_Function_Specification.
      	(Result_Definition): New function for N_Function_Specification and
      	N_Access_Function_Definition.
      	(Set_Result_Definition): New procedure for N_Function_Specification and
      	N_Access_Function_Definition.
      
      	* sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
      	Result_Definition for cases of N_Access_Function_Definition and
      	N_Function_Specification.
      	Print "not null" if Null_Exclusion_Present on N_Function_Specification.
      
      From-SVN: r103869
      Gary Dismukes committed
    • itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram that given… · ec53a6da
      itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram that given an entity T creates and returns an Itype that...
      
      2005-09-01  Javier Miranda  <miranda@adacore.com>
      
      	* itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
      	that given an entity T creates and returns an Itype that duplicates the
      	contents of T. The returned Itype has the null-exclusion
      	attribute set to True, and its Etype attribute references T
      	to keep the association between the two entities.
      	Update copyright notice
      
      	* sem_aggr.adb (Check_Can_Never_Be_Null,
      	Aggregate_Constraint_Checks, Resolve_Aggregate,
      	Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
      
      	* sem_ch5.adb (Analyze_Assignment): Code cleanup.
      
      From-SVN: r103868
      Javier Miranda committed
    • g-pehage.ads, [...] (Select_Char_Position): When no character position set is provided... · 1f5a9324
      2005-09-01  Laurent Pautet  <pautet@adacore.com>
      
      	* g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
      	position set is provided, we compute one in order to reduce the maximum
      	length of the keys.  This computation first selects a character
      	position between 1 and the minimum length of the keys in order to
      	avoid reducing one of the keys to an empty string.
      	(Initialize, Compute): When the ratio V to K is too low, the algorithm
      	does not converge. The initialization procedure now comes with a
      	maximum number of iterations such that when exceeded, an exception is
      	raised in Compute. The user can initialize this ratio to another value
      	and try again
      	Reformating and updated headers.
      
      From-SVN: r103867
      Laurent Pautet committed
    • g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to · dd52e06a
      2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
      
      	* g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
      	(Free): New deallocation procedure for filter elements
      	(Close): Deallocate any existing filter for the concerned connection
      
      From-SVN: r103866
      Jerome Lambourg committed
    • exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large packed arrays. · 829c2849
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
      	packed arrays.
      
      From-SVN: r103865
      Robert Dewar committed
    • exp_intr.adb (Expand_Source_Name): For Enclosing_Entity... · 435d8e6b
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
      	fully qualified name, to distinguish instances with the same local name.
      
      	* g-souinf.ads (Enclosing_Entity): Document that entity name is now
      	fully qualified.
      
      From-SVN: r103864
      Ed Schonberg committed
    • exp_dist.adb (Add_RACW_TypeCode, [...]): Do not generate dummy access formal for… · 3eb8fddc
      exp_dist.adb (Add_RACW_TypeCode, [...]): Do not generate dummy access formal for RACW/RAS TypeCode TSS.
      
      2005-09-01  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
      	dummy access formal for RACW/RAS TypeCode TSS.
      	(Build_TypeCode_Call): Do not generate dummy null access actual for
      	calls to the TypeCode TSS.
      
      From-SVN: r103863
      Thomas Quinot committed
    • exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types to be encoded as... · 04efc8a1
      2005-09-01  Nicolas Setton  <setton@adacore.com>
      
      	* exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
      	to be encoded as typ___XBLU_lowerbound__upperbound instead of
      	typ___XB_lowerbound__upperbound.
      
      From-SVN: r103862
      Nicolas Setton committed
    • exp_ch6.adb (Expand_Call): If an actual is a function call rewritten from object notation... · 2f1b20a9
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
      	from object notation, the original node is unanalyzed and carries no
      	semantic information, so that accessiblity checks must be performed on
      	the type of the actual itself.
      	(Expand_N_Subprogram_Declaration): Change last actual parameter for
      	compatibility with Build_Protected_Sub_Specification.
      	(Check_Overriding_Inherited_Interfaces): Add suport to handle
      	overloaded primitives.
      	(Register_Interface_DT_Entry): Use the new name of the formal
      	the the calls to Expand_Interface_Thunk
      
      	* exp_dbug.ads: Augment comments on encoding of protected types to
      	include the generation of dispatching subprograms when the type
      	implements at least one interface.
      
      	* lib.ads: Extend information in Load_Stack to include whether a given
      	load comes from a Limited_With_Clause.
      
      	* lib-load.adb (From_Limited_With_Chain): New predicate to determine
      	whether a potential circularity is harmless, because it includes units
      	loaded through a limited_with clause. Extends previous treatment which
      	did not handle properly arbitrary combinations of limited and
      	non-limited clauses.
      
      From-SVN: r103861
      Ed Schonberg committed
    • exp_attr.adb: Handle vax fpt for 'Valid attribute · 0f716470
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      	    Doug Rupp  <rupp@adacore.com>
      
      	* exp_attr.adb: Handle vax fpt for 'Valid attribute
      	* exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
      	* s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
      	(Valid_D, Valid_F, Valid_G): New functions
      
      From-SVN: r103860
      Robert Dewar committed
    • errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet spec. · 3711d646
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
      	spec.
      	Implement new insertion char < (conditional warning)
      	* errutil.adb, erroutc.adb: Implement new insertion char <
      	(conditional warning).
      	* sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
      	(Error_Msg_Warn): New variable for < insertion char.
      	* prj-nmsc.adb: Implement new errout insertion char < (conditional
      	warning).
      	(Check_For_Source): Change value of Source_Id only after the current
      	source has been dealt with.
      
      From-SVN: r103859
      Robert Dewar committed
    • a-ztexio.adb, [...]: Replace bad range checks with 'Valid tests. · 405e57ad
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
      	with 'Valid tests.
      
      From-SVN: r103858
      Robert Dewar committed
    • checks.adb (Check_Needed): New procedure... · 2ede092b
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* checks.adb (Check_Needed): New procedure, deals with removing checks
      	based on analysis of short-circuited forms. Also generates warnings for
      	improper use of non-short-circuited forms.
      	Code clean ups.
      
      From-SVN: r103857
      Robert Dewar committed
    • binde.adb: Minor reformatting · 18605ccc
      2005-09-01  Robert Dewar  <dewar@adacore.com>
      
      	* binde.adb: Minor reformatting
      	(Find_Elab_Order): Output warning if -p used with static elab order
      
      From-SVN: r103856
      Robert Dewar committed
    • s-stoele.ads, [...]: Minor reformatting... · 009186e0
      	* s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
      	s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
      	s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
      	s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
      	s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
      	s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
      	s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
      	table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
      	s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
      	s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
      	a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
      	a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
      	a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
      	a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
      	system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
      	system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
      	s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
      	system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
      	s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
      	s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
      	s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
      	s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
      	system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
      	s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
      	system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
      	s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
      	a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
      	a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
      	a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
      	a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
      	a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
      	a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
      	a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
      	a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
      	a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
      	a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
      	csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
      	g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
      	a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
      	a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
      	a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
      	a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
      	g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
      	i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
      	interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
      	i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
      	s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
      	s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
      	s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
      	s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
      	s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
      	s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
      	s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
      	s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
      	s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
      	s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
      	s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
      	s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
      	s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
      	s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
      	s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
      	s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
      	s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
      	s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
      	s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
      	s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
      	s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
      	s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
      	and always use the no parameter form for consistency.
      
      	* gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
      
      From-SVN: r103855
      Arnaud Charlet committed
    • fname-sf.adb, [...]: Remove redundant use_clauses. · dfbe160a
      2005-09-01  Ed Schonberg  <schonberg@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      
      	* fname-sf.adb, mlib-tgt.ads,
      	back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
      	g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
      	osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
      	prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
      	prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
      	prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
      	sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
      	makegpr.adb: Remove redundant use_clauses.
      
      From-SVN: r103854
      Ed Schonberg committed
    • g-soccon-vms.adb: Renamed to g-soccon-vms.ads · 82675755
      2005-09-01  Thomas Quinot  <quinot@adacore.com>
      
      	* g-soccon-vms.adb: Renamed to g-soccon-vms.ads
      
      	* g-soccon-vms.ads: Renamed from g-soccon-vms.adb
      
      	* g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
      	g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
      	g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
      	g-soccon-freebsd.ads: Add new constants:
      	 IP_MULTICAST_IF
      	 SO_RCVTIMEO/SO_SNDTIMEO
      	 IOV_MAX
      
      	* gen-soccon.c:
      	Move all target-specific file inclusions and macro definitions to
      	gsocket.h, in order to ensure that any C code in socket.c will see a
      	set of constants that is consistent with the contents of g-soccon.ads.
      
      	* gsocket.h: Code imported from gen-soccon.c:
      	Move all target-specific file inclusions and macro definitions to
      	gsocket.h, in order to ensure that any C code in socket.c will see a set
      	of constants that is consistent with the contents of g-soccon.ads.
      	This change also makes gen-soccon self-contained (removing dependencies
      	upon GCC internal headers).
      
      	* g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
      	iovecs at a time.
      	(To_Inet_Addr): Now a procedure instead of a function, more efficient.
      
      	* socket.c: Minor reformatting.
      
      From-SVN: r103853
      Thomas Quinot committed
    • s-taprop-vxworks.adb: Move with clauses outside Warnings Off now that dependent… · b9260c3d
      s-taprop-vxworks.adb: Move with clauses outside Warnings Off now that dependent units are Preelaborate.
      
      2005-09-01  Arnaud Charlet  <charlet@adacore.com>
      	    Jose Ruiz  <ruiz@adacore.com>
      
      	* s-taprop-vxworks.adb:
      	Move with clauses outside Warnings Off now that dependent units are
      	Preelaborate.
      	(Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
      	initialization of this unit.
      	(Specific): Add new procedures Initialize and Delete so that this
      	package can be used for VxWorks 5.x and 6.x
      	(ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
      	differences between VxWorks 5.x and 6.x
      	Minor reformatting.
      	(Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
      	caller.
      	Use only Preelaborate-compatible constructs.
      
      	* s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
      	Primitives.Operations.
      	(Delete, Initialize): New procedures.
      
      	* s-osinte-vxworks.adb: Body used to handle differences between
      	VxWorks 5.x and 6.x
      	(kill, Set_Time_Slice, VX_FP_TASK): New functions.
      
      	* s-osinte-vxworks.ads: Minor reformatting.
      	Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
      	(VX_FP_TASK): Now a function, to handle differences between VxWorks 5
      	and 6.
      	(Set_Time_Slice): New function, replacing kerneltimeSlice to share code
      	between Vxworks 5 and 6.
      	(taskLock, taskUnlock): Removeed, no longer used.
      
      	* adaint.c: The wait.h header is not located in the sys directory on
      	VxWorks when using RTPs.
      	(__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
      	using RTPs.
      	(__gnat_dup): dup is available on Vxworks when using RTPs.
      	(__gnat_dup2): dup2 is available on Vxworks when using RTPs.
      
      	* cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
      
      	* expect.c: The wait.h header is not located in the sys directory on
      	VxWorks when using RTPs.
      
      From-SVN: r103852
      Arnaud Charlet committed