Commit Graph

71879 Commits

Author SHA1 Message Date
Gary Dismukes
04814daddf sem_ch12.ads, [...] (Map_Entities): Exclude entities whose names are internal...
2005-11-14  Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
	names are internal, because they will not have a corresponding partner
	in the actual package.
	(Analyze_Formal_Package): Move the setting of the formal package spec's
	Generic_Parent field so that it occurs prior to analyzing the package,
	to allow proper operation of Install_Parent_Private_Declarations.
	(Analyze_Package_Instantiation): Set the instantiated package entity's
	Package_Instantiation field.
	(Get_Package_Instantiation_Node): Move declaration to package spec.
	Retrieve the N_Package_Instantiation node when the Package_Instantiation
	field is present.
	(Check_Generic_Child_Unit): Within an inlined call, the only possible
	instantiation is Unchecked_Conversion, for which no parents are needed.
	(Inline_Instance_Body): Deinstall and record the use_clauses for all
	parent scopes of a scope being removed prior to inlining an instance
	body.
	(Analyze_Package_Instantiation): Do not perform front-end inlining when
	the current context is itself an instance within a non-instance child
	unit, to prevent scope stack errors.
	(Save_References): If the node is an aggregate that is an actual in a
	call, rewrite as a qualified expression to preserve some type
	information, to resolve possible ambiguities in the instance.
	(Instance_Parent_Unit): New global variable to record the ultimate
	parent unit associated with a generic child unit instance (associated
	with the existing Parent_Unit_Visible flag).
	(type Instance_Env): New component Instance_Parent_Unit for stacking
	parents recorded in the global Instance_Parent_Unit.
	(Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
	stack.
	(Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
	it's not a top-level unit, and only do this if Instance_Parent_Unit is
	not already set. Replace test of Is_Child_Unit with test of parent's
	scope against package Standard. Add comments and a ??? comment.
	(Remove_Parent): Revise condition for resetting Is_Immediately_Visible
	on a child instance parent to test that the parent equals
	Instance_Parent rather than simply checking that the unit is not a
	child unit.
	(Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
	(Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
	a formal interface are ancestors of the corresponding actual.
	(Validate_Formal_Interface_Type): Additional legality checks.
	(Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
	interface types with ancestors.
	(Analyze_Formal_Package): If formal is a renaming, use renamed entity
	to diagnose attempts to use generic within its own declaration.

From-SVN: r106999
2005-11-15 15:02:22 +01:00
Robert Dewar
81d435f35b sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package Do not give obsolescent...
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
	Do not give obsolescent warning on with of subprogram (since we
	diagnose calls)
	(Analyze_With_Clause): Add test for obsolescent package
	(Install_Context_Clauses): If the unit is the body of a child unit, do
	not install twice the private declarations of the parents, to prevent
	circular lists of Use_Clauses in a parent.
	(Implicit_With_On_Parent): Do add duplicate with_clause on parent when
	compiling body of child unit.
	Use new class N_Subprogram_Instantiation
	(Expand_With_Clause): If this is a private with_clause for a child unit,
	appearing in the context of a package declaration, then the implicit
	with_clauses generated for parent units are private as well.
	(License_Check): Do not generate message if with'ed unit is internal

From-SVN: r106998
2005-11-15 15:02:01 +01:00
Ed Schonberg
d838715349 sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the rhs of an assignment even if...
2005-11-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
	rhs of an assignment even if the type is unconstrained, when the
	context is non-expanding.
	In an inlined body, if the context type is private,
	resolve with its full view, which must be a composite type.

From-SVN: r106997
2005-11-15 15:01:49 +01:00
Emmanuel Briot
a05076ba9d prj-pp.adb (Print): Do not output the with statement if the associated name is empty...
2005-11-14  Emmanuel Briot  <briot@adacore.com>

	* prj-pp.adb (Print): Do not output the with statement if the
	associated name is empty, which happens for virtual extending projects.
	(Print): Preserve the "extends all" attribute when printing the project.

	* prj-tree.ads (String_Value_Of): Add comment about returned value for
	a virtual extending project.

From-SVN: r106996
2005-11-15 15:01:37 +01:00
Vincent Celier
9cd6ae612e prj-part.adb (Create_Virtual_Extending_Project): Put virtual project into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
2005-11-14  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
	into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.

From-SVN: r106995
2005-11-15 15:01:27 +01:00
Vincent Celier
ab9f47f101 prj-ext.adb: Take into account new environment variable GPR_PROJECT_PATH.
2005-11-14  Vincent Celier  <celier@adacore.com>

	* prj-ext.adb: Take into account new environment variable
	GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
	are defined.
	(Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
	normalize its path name, making it absolute and resolving symbolic
	links, and replace the original if resolved path is different.

From-SVN: r106994
2005-11-15 15:01:18 +01:00
Robert Dewar
3c43f85317 par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit syntax, which could cause compiler hangs.
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
	syntax, which could cause compiler hangs.

From-SVN: r106993
2005-11-15 15:01:09 +01:00
Eric Botcazou
62157e75fb namet.h: (Column_Numbe): New type.
2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>

	* namet.h: (Column_Numbe): New type.
	(Get_Column_Number): Define to sinput__get_column_number.
	(Instantiation): Define to sinput__instantiation.
	(Get_Column_Number): Declare.
	(Instantiation): Likewise.

From-SVN: r106992
2005-11-15 15:00:59 +01:00
Pascal Obry
7f612e89ed mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is used.
2005-11-14  Pascal Obry  <obry@adacore.com>

	* mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
	used.
	(Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
	In both cases the last argument was dropped.

From-SVN: r106991
2005-11-15 15:00:50 +01:00
GNAT Script
dd489fe674 Make-lang.in: Makefile automatically updated
2005-11-14  GNAT Script  <nobody@adacore.com>

	* Make-lang.in: Makefile automatically updated

From-SVN: r106990
2005-11-15 15:00:41 +01:00
Vincent Celier
a7ab2998c3 make.adb (Compile_Sources): Change verbose message to minimum verbosity level High for "is in an Ada...
2005-11-14  Vincent Celier  <celier@adacore.com>

	* make.adb (Compile_Sources): Change verbose message to minimum
	verbosity level High for "is in an Ada library", "is a read-only
	library" and "is an internal library",
	(Create_Binder_Mapping_File): Path name of ALI file for library project
	must include the library directory, not the object directory.
	(Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
	for new switches -vl, -vm and -vh.
	(Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
	(Check): Use minimum verbosity Medium for some Verbose_Msg calls
	(Compile_Sources): Do not attempt to compile if an ALI file is missing
	in a project that is externally built.
	(Compute_All_Imported_Projects): New procedure
	(Gnatmake): Check if importing libraries should be regenerated because
	at least an imported library is more recent.
	(Initialize): For each project compute the list of the projects it
	imports directly or indirectly.
	(Add_Library_Search_Dir): New procedure, used in place of
	Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
	put in the search paths.
	(Add_Source_Search_Dir): New procedure, used in place of
	Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
	put in the search paths.
	(Mark_Directory): Resolve the absolute path the directory before marking
	it.

	* switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
	call to new procedure Bad_Switch. Call Scan_Pos with new parameter
	Switch. Do not handle any exception.
	(Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
	so that the switch is recognized as valid.
	(Scan_Make_Switches): Implement new switches -vl, -vm and -vh.

From-SVN: r106989
2005-11-15 15:00:29 +01:00
Ed Schonberg
dff0475fb5 lib-xref.adb (Generate_Definition, [...]): Treat the internal entity created for the declaration of a child subprogram...
2005-11-14  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
	internal entity created for the declaration of a child subprogram body
	with no spec as coming from source, to generate proper cross-reference
	information.

From-SVN: r106988
2005-11-15 15:00:18 +01:00
Robert Dewar
70b352b52f interfac.ads: Change declarations of IEEE float types so that we no longer need a separate...
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* interfac.ads: Change declarations of IEEE float types so that we no
	longer need a separate version of this package for VMS.

From-SVN: r106987
2005-11-15 15:00:09 +01:00
Doug Rupp
ec21079988 init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
2005-11-14  Doug Rupp  <rupp@adacore.com>

	* init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.

From-SVN: r106986
2005-11-15 15:00:00 +01:00
Robert Dewar
11bfd18a18 g-spitbo.adb: (Hash): Rotate by 3 instead of 1
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* g-spitbo.adb: (Hash): Rotate by 3 instead of 1

From-SVN: r106985
2005-11-15 14:59:50 +01:00
Arnaud Charlet
e49b74a95f g-regpat.adb (Fail): raise Expression_Error including the diagnostic message, friendlier.
* g-regpat.adb (Fail): raise Expression_Error including the diagnostic
	message, friendlier.

From-SVN: r106984
2005-11-15 14:59:42 +01:00
Robert Dewar
383b2b42cb gprep.adb: Implement -C switch to scan comments
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* gprep.adb: Implement -C switch to scan comments

	* scng.adb: Scan comment symbol separately if Replace_In_Comments set

	* scans.ads: Comment updates (including new use of Tok_Comment in
	preprocessing)

	* opt.ads: Add documentation for flags that are used by gprmake,
	currently and in the next version of gprmake.
	(Verbosity_Level): New variable
	Add Replace_In_Comments switch

	* vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
	and -vm.
	Add /REPLACE_IN_COMMENTS for gnatprep -C switch

From-SVN: r106983
2005-11-15 14:59:30 +01:00
Pascal Obry
0bce6c77ca gnatbind.adb (Is_Cross_Compiler): New function returning True for cross-compiler.
2005-11-14  Pascal Obry  <obry@adacore.com>

	* gnatbind.adb (Is_Cross_Compiler): New function returning True for
	cross-compiler.
	(Scan_Bind_Arg): Fail with an error message if -M option is used
	on a native compiler.

From-SVN: r106982
2005-11-15 14:59:20 +01:00
Robert Dewar
2989065ea6 g-debpoo.adb (Set_Valid): Use Integer_Address instead of Storage_Offset to avoid wrap around causing...
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* g-debpoo.adb (Set_Valid): Use Integer_Address instead of
	Storage_Offset to avoid wrap around causing invalid results.

From-SVN: r106981
2005-11-15 14:59:11 +01:00
Arnaud Charlet
2edf9900de re PR ada/23732 ([ada] Library_Version still at 4.0 ?)
PR ada/23732
	* gnatvsn.ads (Library_Version): Bump to 4.1

From-SVN: r106980
2005-11-15 14:59:02 +01:00
Ed Schonberg
57747aecea freeze.adb (Freeze_Entity): For an access formal that is an access to subprogram...
2005-11-14  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): For an access formal that is an access
	to subprogram, freeze the anonymous subprogram type at the same time,
	to prevent later freezing in the wrong scope, such as the enclosing
	subprogram body.
	(Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
	subprogram whenever available.

From-SVN: r106979
2005-11-15 14:58:51 +01:00
Robert Dewar
6aea4c392a impunit.adb: Exclude container helper units not intended for use by users.
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* impunit.adb: Exclude container helper units not intended for use by
	users.

From-SVN: r106978
2005-11-15 14:58:42 +01:00
Javier Miranda
9f0eed34cd exp_strm.adb (Build_Stream_Attr_Profile, [...]): Add the null-excluding attribute to the first formal.
2005-11-14  Javier Miranda  <miranda@adacore.com>

	* exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
	Build_Stream_Procedure): Add the null-excluding attribute to the first
	formal.
	This has no semantic meaning under Ada95 mode but it is a
	requirement under Ada05 mode.

	* par-ch3.adb (P_Access_Definition): Addition of warning message if
	the null exclusion is used under Ada95 mode
	(P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
	(P_Access_Definition): Remove assertion that forbids the use of
	the null-exclusion feature in Ada95.

From-SVN: r106977
2005-11-15 14:58:31 +01:00
Thomas Quinot
191cab8dcf exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual subtype to compute the size of the designated object at...
2005-11-14  Thomas Quinot  <quinot@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
	subtype to compute the size of the designated object at run-time,
	create such a subtype and store it in the Actual_Designated_Subtype
	attribute of the N_Free_Statement.
	Generate itype for classwide designated object in both cases of
	user-specified storage pool: specific and class-wide, not only in the
	specific case.
	Raise CE when trying to set a not null access type object to null.
	(Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
	an explicit loop, because freeze nodes make its position variable.

	* sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
	null object.

From-SVN: r106976
2005-11-15 14:58:22 +01:00
Robert Dewar
65b1b4317c exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when...
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
	need a high precision float type for the generated code (prevents
	gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
	used).

	* exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
	need a high precision float type for the generated code (prevents
	gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
	used).
	(Expand_Width_Attribute): In configurable run-time, the attribute is not
	allowed on non-static enumeration subtypes. Force a load error to emit
	the correct diagnostic.

From-SVN: r106975
2005-11-15 14:58:08 +01:00
Pascal Obry
379ecbfacf expect.c (__gnat_kill): Fix implementation...
2005-11-14  Pascal Obry  <obry@adacore.com>

	* expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
	by spawnve is a process handle, no need to convert. Add a parameter
	close to control wether the process handle must be closed.
	(__gnat_waitpid): Fix implementation, the pid returned by spawnve is
	a process handle, not need to convert.
	(__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.

	* g-expect.adb: (Kill): Document the new close parameter.
	(Close): Do not release the process handle in the kill there as
	waitpid() is using it.
	(Send_Signal): Release the process handle.

From-SVN: r106974
2005-11-15 14:57:56 +01:00
Thomas Quinot
6ce0c3f5ed exp_dist.adb (Append_Array_Traversal): Modify constrained case to generate a set of nested array aggregates instead of...
2005-11-14  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb (Append_Array_Traversal): Modify constrained case to
	generate a set of nested array aggregates instead of a single flat
	aggregate for multi-dimensional arrays.

From-SVN: r106973
2005-11-15 14:57:46 +01:00
Cyrille Comar
ed789fe9b0 exp_ch5.adb (Expand_N_Assignment_Statement, [...]): For an assignment of a value of a tagged type that has been rewritten to a...
2005-11-14  Cyrille Comar  <comar@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
	assignment of a value of a tagged type that has been rewritten to a
	block statement, it is known by construction that no checks are
	necessary for the statements within the block: analyze it with checks
	suppressed.
	(Expand_N_If_Statement): When killing a dead then-branch in an
	if-statement that has elsif_parts, recompute the Current_Value node
	for any entity whose value is known from the condition of the first
	elsif_part.
	(Expand_N_Return_Statement): When returning a mutable record, convert
	the return value into its actual subtype in order to help the backend
	to return the actual size instead of the maximum. This is another
	aftermath of not returning mutable records on the sec-stack anymore.

	* sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
	handling of error msg for suspicious reverse range iteration.
	(Check_Possible_Current_Value_Condition): Move declaration from body to
	spec, to allow this subprogram to be called from exp_ch5.

From-SVN: r106972
2005-11-15 14:57:37 +01:00
Javier Miranda
5dcc05e6bc sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2005-11-14  Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
	(Check_Dispatching_Operation): Protect the frontend againts
	previously detected errors.

	* Makefile.rtl: Add new instantiations of system.fat_gen

	* s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
	Change name of instantiated package for better consistency
	with newly added system.fat_gen instantiations.

	* s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
	s-fvagfl.ads: New files.

From-SVN: r106971
2005-11-15 14:57:25 +01:00
Robert Dewar
65f01153ab sem_attr.adb: Implement Machine_Rounding attribute
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_attr.adb: Implement Machine_Rounding attribute
	(Analyze_Access_Attribute): The access attribute may appear within an
	aggregate that has been expanded into a loop.
	(Check_Task_Prefix): Add semantic check for attribute 'Callable and
	'Terminated whenever the prefix is of a task interface class-wide type.
	(Analyze_Attribute): Add semantic check for attribute 'Identity whenever
	the prefix is of a task interface class-wide type.

	* s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
	to avoid warnings.

	* s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
	Remove pragma Inline for [Unaligned_]Valid.
	Add comments that Valid routines do not work for Vax_Float

	* exp_attr.adb: Implement Machine_Rounding attribute

	* snames.h: Add entry for Machine_Rounding attribute

From-SVN: r106970
2005-11-15 14:56:51 +01:00
Ed Schonberg
7b9d0d6990 exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity for task component, in the case of a limited aggregate.
2005-11-14  Ed Schonberg  <schonberg@adacore.com>
	    Cyrille Comar  <comar@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
	for task component, in the case of a limited aggregate. The enclosed
	object declaration will create it earlier. Otherwise, in the case of a
	nested aggregate, the object may appear in the wrong scope.
	(Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
	(Gen_Assign): If the component being assigned is an array type and the
	expression is itself an aggregate, wrap the assignment in a block to
	force finalization actions on the temporary created for each row of the
	enclosing object.
	(Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
	structures are initialized after all discriminants are set so that
	they can be accessed even when their offset is dynamic.

From-SVN: r106969
2005-11-15 14:56:39 +01:00
Robert Dewar
bde33286bd sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
	(Check_Elab_Call): A call within a protected body is never an
	elaboration call, and does not require checking.
	(Same_Elaboration_Scope): Take into account protected types for both
	entities.
	(Activate_Elaborate_All_Desirable): New procedure

	* ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
	desirable

	* binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
	(Elab_Error_Msg): Use -da to include internal unit links, not -de.

	* lib-writ.ads, lib-writ.adb: 
	Implement new AD/ED for Elaborate_All/Elaborate desirable
	Use new Elaborate_All_Desirable flag in N_With_Clause node

	* sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
	N_Free_Statement nodes.
	Define new class N_Subprogram_Instantiation
	Add Elaborate_Desirable flag to N_With_Clause node
	Add N_Delay_Statement (covering two kinds of delay)

	* debug.adb: Introduce d.f flag for compiler
	Add -da switch for binder

From-SVN: r106968
2005-11-15 14:56:27 +01:00
Vincent Celier
104e4daaa5 clean.adb (Check_Project): Look for Ada code in extending project, even if Ada is not specified as a language.
2005-11-14  Vincent Celier  <celier@adacore.com>

	* clean.adb (Check_Project): Look for Ada code in extending project,
	even if Ada is not specified as a language.
	Use new function DLL_Prefix for DLL_Name
	(Clean_Interface_Copy_Directory): New procedure
	(Clean_Library_Directory): New procedure
	(Clean_Directory): Remove procedure, no longer used
	(Clean_Project): Do not delete any file in an externally built project

	* prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
	directory of an extending project, even when there are no Ada source
	present.
	(Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
	(Set_Ada_Paths.Add.Recursive_Add): Ditto

	* mlib-prj.adb (Check_Library): For all library projects, get the
	library file timestamp.
	(Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
	(Build_Library): Use new function DLL_Prefix for the DLL_Name
	(Clean): Remove procedure, no longer used
	(Ultimate_Extension_Of): New function
	(Build_Library): When cleaning the library directory, only remove an
	existing library file and any ALI file of a source of the project.
	When cleaning the interface copy directory, remove any source that
	could be a source of the project.

	* prj.ads, prj.adb (Project_Empty): Add values of new components
	Library_TS and All_Imported_Projects.
	(Project_Empty): Add values for new components of Project_Data:
	Library_ALI_Dir and Display_Library_ALI_Dir

	* prj-attr.adb: New project level attribute name Library_ALI_Dir

	* prj-nmsc.adb (Check_Library_Attributes): Take into account new
	attribute Library_ALI_Dir.
	(Check_Library_Attributes): The library directory cannot be the same as
	any source directory of the project tree.
	(Check_Stand_Alone_Library): The interface copy directory cannot be
	the same as any source directory of the project tree.

	* mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
	all temporary files.

From-SVN: r106967
2005-11-15 14:56:14 +01:00
Emmanuel Briot
f9f7e1022c xref_lib.adb (Parse_Identifier_Info): It is possible for an entity line in the ALI file to include both an...
2005-11-14  Emmanuel Briot  <briot@adacore.com>

	* xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
	line in the ALI file to include both an instantiation reference, and a
	returned value.

From-SVN: r106966
2005-11-15 14:56:03 +01:00
Hristian Kirtchev
f4d379b8df rtsfind.ads, [...]: Complete support for Ada 2005 interfaces.
2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
	exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
	exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
	einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.

	* a-tags.ads, a-tags.adb: Major rewrite and additions to implement
	properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
	assertions).

	* exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
	subprogram that generates the external name associated with a
	secondary dispatch table.
	(Get_Secondary_DT_External_Name): New subprogram that generates the
	external name associated with a secondary dispatch table.

From-SVN: r106965
2005-11-15 14:54:36 +01:00
Matthew Gingell
748d8778ed tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on ia64 HP-UX.
2005-11-14  Matthew Gingell  <gingell@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
	ia64 HP-UX.

	* tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
	tracebacks on ia64 HP-UX and provide explanatory comment.
	Enable backtraces on ia64 GNU/Linux.
	(x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
	base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.

From-SVN: r106964
2005-11-15 14:54:25 +01:00
Olivier Hainque
e1ac6e5b21 cuintp.c (UI_To_gnu): Use a proper type for intermediate computations to ensure bias adjustments take...
2005-11-14  Olivier Hainque  <hainque@adacore.com>

	* cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
	to ensure bias adjustments take place when need be and to prevent
	occurrences of intermediate overflows.

From-SVN: r106963
2005-11-15 14:54:14 +01:00
Matthew Heaney
2368f04ec1 a-crbtgo.ads, [...]: Compiles against the spec for ordered maps described in sections A.18.6 of the...
2005-11-14  Matthew Heaney  <heaney@adacore.com>

	* a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
	a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
	a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
	a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
	a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
	a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
	Compiles against the spec for ordered maps described in sections
	A.18.6 of the most recent (August 2005) AI-302 draft.

From-SVN: r106962
2005-11-15 14:54:02 +01:00
Thomas Quinot
5e61ef090a decl.c: Factor common code to build a storage type for an unconstrained object from a...
2005-11-14  Thomas Quinot  <quinot@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c:
	Factor common code to build a storage type for an unconstrained object
	from a fat or thin pointer type and a constrained object type.
	(annotate_value): Handle BIT_AND_EXPR.
	(annotate_rep): Don't restrict the back annotation of inherited
	components to the type_annotate_only case.
	(gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
	we are not defining the type.
	<E_Record_Type>: Likewise.
	(gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
	to get advantage of the new maybe_stabilize_reference interface, to
	ensure that what we reference is indeed stabilized instead of relying
	on assumptions on what the stabilizer does.
	(gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
	type imported through a limited_with clause, use its non-limited view.
	(Has_Stdcall_Convention): New macro, to centralize the Windows vs others
	differentiation.
	(gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
	of #if sections + explicit comparisons of convention identifiers.
	(gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
	before early-returning for certain types when code generation is
	disabled.
	(gnat_to_gnu_entity) <object>: Adjust comment attached to the
	nullification of gnu_expr we do for objects with address clause and
	that we are not defining.
	(elaborate_expression_1): Do not create constants when creating
	variables needed by the debug info: the dwarf2 writer considers that
	CONST_DECLs is used only to represent enumeration constants, and emits
	nothing for them.
	(gnat_to_gnu_entity) <object>: When turning a non-definition of an
	object with an address clause into an indirect reference, drop the
	initializing expression.
	Include "expr.h".
	(STACK_CHECK_BUILTIN): Delete.
	(STACK_CHECK_PROBE_INTERVAL): Likewise.
	(STACK_CHECK_MAX_FRAME_SIZE): Likewise.
	(STACK_CHECK_MAX_VAR_SIZE): Likewise.
	(gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
	corresponding to the renamed object as ignored for debugging purposes.

	* trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
	related): For a prefix that is a dereference of a fat or thin pointer,
	if there is an actual subtype provided by the front-end, use that
	subtype to build an actual type with bounds template.
	(tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
	is provided by the front-end, use that subtype to compute the size of
	the deallocated object.
	(gnat_to_gnu): When adding a statement into an elaboration procedure,
	check for a potential violation of a No_Elaboration_Code restriction.
	(maybe_stabilize_reference): New function, like gnat_stabilize_reference
	with extra arguments to control whether to recurse through non-values
	and to let the caller know if the stabilization has succeeded.
	(gnat_stabilize_reference): Now a simple wrapper around
	maybe_stabilize, for common uses without restriction on lvalues and
	without need to check for the success indication.
	(gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
	pass false instead of 0 as the FORCE argument which is a bool.
	(Identifier_to_gnu): Remove checks ensuring that an renamed object
	attached to a renaming pointer has been properly stabilized, as no such
	object is attached otherwise.
	(call_to_gnu): Invoke create_var_decl to create the temporary when the
	function uses the "target pointer" return mechanism.
	Reinstate conversion of the actual to the type of the formal
	parameter before any other specific treatment based on the passing
	mechanism. This turns out to be necessary in order for PLACEHOLDER
	substitution to work properly when the latter type is unconstrained.

	* gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
	common pattern.
	(maybe_stabilize_reference): New function, like gnat_stabilize_reference
	with extra arguments to control whether to recurse through non-values
	and to let the caller know if the stabilization has succeeded.

	* utils2.c (gnat_build_constructor): Only sort the fields for possible
	static output of record constructor if all the components are constant.
	(gnat_build_constructor): For a record type, sort the list of field
	initializers in increasing bit position order.
	Factor common code to build a storage type for an unconstrained object
	from a fat or thin pointer type and a constrained object type.
	(build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
	types variants, and process special cases of VIEW_CONVERT expressions
	as their NOP_EXPR counterpart to ensure we get to the
	CORRESPONDING_VARs associated with CONST_DECls.
	(build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
	on the right-hand side.

	* utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
	a common pattern.
	(convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
	are converting back to its original type.
	(convert) <JM input>: Fallthrough regular conversion code instead of
	extracting the object if converting to a type variant.
	(create_var_decl): When a variable has an initializer requiring code
	generation and we are at the top level, check for a potential violation
	of a No_Elaboration_Code restriction.
	(create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
	SIZE and SIZE_UNIT which we need for later back-annotations.
	* utils.c: (convert) <STRING_CST>: Remove obsolete code.
	<VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
	is an unchecked union.
	(pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
	(convert) <VIEW_CONVERT_EXPR>: When the types have the same
	main variant, just replace the VIEW_CONVERT_EXPR.
	<UNION_TYPE>: Revert 2005-03-02 change.

	* repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.

	* repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.

From-SVN: r106961
2005-11-15 14:53:22 +01:00
Jose Ruiz
fda5d6d4ff s-tassta.adb (Create_Task): Move the code in charge of resetting the deferral level...
2005-11-14  Jose Ruiz  <ruiz@adacore.com>

	* s-tassta.adb (Create_Task): Move the code in charge of resetting the
	deferral level, when abort is not allowed, to a later stage (the
	Task_Wrapper).
	(Task_Wrapper): If Abort is not allowed, reset the deferral level since
	it will not get changed by the generated code. It was previously done
	in Create_Task.

From-SVN: r106960
2005-11-15 14:53:05 +01:00
Arnaud Charlet
982f26e474 a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
* a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
	(builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
	related code to a-exexpr.adb
	(Save_Occurrence_And_Private): Move GCC EH related code to
	a-exexpr-gcc.adb
	(Raise_Current_Excep): Add new variable Id with pragma
        volatile, to ensure that the variable lives on stack.

	* a-exexpr-gcc.adb, raise-gcc.c: New file.

	* a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
	from a-except.adb.
	Move GCC EH related code to a-exexpr-gcc.adb

	* Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
	64-bit Solaris
	Split the Linux version of g-soccon into separate variants for 32 and 64
	bit platforms.
	(gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
	vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
	install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
	of host variable $(RANLIB_FLAGS).
	(alpha64-dec-*vms*): Fix translations for 64 bit compiler.
	Code clean up: remove unused/obsolete targets.
	(EH_MECHANISM): New variable introduced to differenciate between the
	two EH mechanisms statically.
	(gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
	(LIBGNAT_OBJS): Add raise-gcc.o
	(LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
	s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
	supports VxWorks 6 RTPs.
	(EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
	i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.

	* raise.c: Move all GCC EH-related routines to raise-gcc.c

From-SVN: r106959
2005-11-15 14:52:55 +01:00
Pascal Obry
c01b085ff7 gnatdll.adb (Parse_Command_Line): Remove redundant use of GNAT.Command_Line.
2005-11-14  Pascal Obry  <obry@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* gnatdll.adb (Parse_Command_Line): Remove redundant use of
	GNAT.Command_Line.

	* memroot.adb: Remove redundant with/use clause on
	System.Storage_Elements.

From-SVN: r106958
2005-11-15 14:52:43 +01:00
Arnaud Charlet
514c9ddc9c adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
* adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
	(Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
	(convert_address): Update comments and list of platforms using this.

	* s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
	no longer used.

From-SVN: r106957
2005-11-15 14:52:31 +01:00
Jose Ruiz
a7e4a88171 s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before raising the exception so the memory used is freed.
2005-11-14  Jose Ruiz  <ruiz@adacore.com>

	* s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
	raising the exception so the memory used is freed.

From-SVN: r106956
2005-11-15 14:52:20 +01:00
Arnaud Charlet
ec09262ef1 s-traces-default.adb, [...]: Fix compilation errors.
2005-11-14  Arnaud Charlet  <charlet@adacore.com>

	* s-traces-default.adb, s-trafor-default.ads,
	s-tratas-default.adb: Fix compilation errors.

From-SVN: r106955
2005-11-15 14:52:10 +01:00
Doug Rupp
2b6659ab10 system-vms.ads, [...]: ADA$GNAT: New exported object in private part.
2005-11-14  Doug Rupp  <rupp@adacore.com>

	* system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
	private part.

From-SVN: r106954
2005-11-15 14:52:00 +01:00
Vincent Celier
6c6db94e93 mlib-tgt-tru64.adb, [...] (DLL_Prefix): New function
2005-11-14  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
	mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
	mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
	mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
	mlib-tgt-lynxos.adb (DLL_Prefix): New function

From-SVN: r106953
2005-11-15 14:51:50 +01:00
Matthew Gingell
9ea6535410 system-lynxos-ppc.ads, [...]: Increase default priority on Lynx from 15 to 17...
2005-11-14  Matthew Gingell  <gingell@adacore.com>

	* system-lynxos-ppc.ads, system-lynxos-x86.ads: 
	Increase default priority on Lynx from 15 to 17, and meet the Ada
	requirement that Default_Priority be ((Priority'First +
	Priority'Last) / 2) by increasing the range of Interrupt_Priority.

From-SVN: r106952
2005-11-15 14:51:38 +01:00
Robert Dewar
0d268911a4 exp_vfpt.adb: Handle /= case
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* exp_vfpt.adb: Handle /= case
	(Expand_Vax_Conversion): Properly recognize Conversion_OK flag
	so that we do not get duplicate scaling for fixed point conversions.

	* s-vaflop.ads, s-vaflop.adb: (Ne_F): New function

From-SVN: r106951
2005-11-15 14:51:27 +01:00
Robert Dewar
f02b8bb877 re PR ada/18434 (Ada: cannot build gnattools on Tru64 UNIX V5.1B)
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	PR ada/18434

	* types.ads: Include All_Checks in Suppress_Array

	* checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
	not(a=b), since we no longer do this rewriting, and hence it is not
	needed.
	(Elaboration_Checks_Suppressed): Add special casing to
	deal with different cases of static and dynamic elaboration checks (all
	checks does not count in the first case, but does in the second).
	(Expr_Known_Valid): Do not assume that the result of any arbitrary
	function call is valid, since this is not the case.
	(Ensure_Valid): Do not apply validity check to a real literal
	in a universal or fixed context

	* exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
	elementary types using the operator in standard. It is cleaner not to
	modify the programmers intent, especially in the case of floating-point.
	(Rewrite_Comparison): Fix handling of /= (this was always wrong, but
	it did not matter because we always rewrote a/=b to not(a=b).
	(Expand_Allocator_Expression): For an allocator expression whose nominal
	subtype is an unconstrained packed type, convert the expression to its
	actual constrained subtype.
	Implement warning for <= or >= where < or > not possible
	Fix to Vax_Float tests (too early in many routines, causing premature
	Vax_Float expansions.

	* sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
	to be used with packages and generic packages as well as with
	subprograms.
	(Suppress): Set All_Checks, but not Elaboration_Check, for case
	of pragma Suppress (All_Checks)
	(Analyze_Pragma, case Warnings): Implement first argument allowed to be
	a string literal for precise control over warnings.
	Avoid raise of pragma in case of unrecognized pragma and just return
	instead.

	* sem_prag.ads: Minor reformatting

	* switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
	with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
	Switch. Do not handle any exception.
	Include -gnatwx as part of -gnatg (warn on redundant parens)
	Allow optional = after -gnatm
	(Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
	longer sets Elaboration_Checks.
	Code to set warning mode moved to Sem_Warn
	so that it can be shared by pragma processing.

	* s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
	statement.

	* s-taprop-solaris.adb: 
	Change some <= to =, to avoid new warning

	* a-exexda.adb, prj-proc.adb: 
	Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
	Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)

From-SVN: r106950
2005-11-15 14:51:09 +01:00