Commit Graph

71942 Commits

Author SHA1 Message Date
Vincent Celier
1c9e0120eb tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it designates a non existent directory.
2005-11-14  Vincent Celier  <celier@adacore.com>

	* tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
	designates a non existent directory.

From-SVN: r107012
2005-11-15 15:05:07 +01:00
Vincent Celier
d4deddd7e9 switch.adb (Bad_Switch): New procedure
2005-11-14  Vincent Celier  <celier@adacore.com>

	* switch.adb (Bad_Switch): New procedure
	(Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
	message when in error.

	* switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
	Too_Many_Output_Files): Remove declarations, no longer used.
	(Scan_Nat): New parameter Switch
	(Scan_Pos): Ditto
	(Bad_Switch): New procedure

	* switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
	with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
	new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
	to Osint.Fail. Do not handle any exception.

From-SVN: r107011
2005-11-15 15:04:56 +01:00
Robert Dewar
49c041e306 s-stoele.adb: Fix code for Address mod Storage_Offset for negative offset values
2005-11-14  Robert Dewar  <dewar@adacore.com>

	* s-stoele.adb: Fix code for Address mod Storage_Offset for negative
	offset values

From-SVN: r107010
2005-11-15 15:04:45 +01:00
Javier Miranda
5e804c9fcd s-finroo.ads, [...] (Read): Addition of "not null" to the anonymous access.
2005-11-14  Javier Miranda  <miranda@adacore.com>

	* s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
	anonymous access.
	(Write): Addition of "not null" to the anonymous access.
	(Read): Addition of "not null" to the anonymous access.
	(Write): Addition of "not null" to the anonymous access.

	* s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
	I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
	I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
	(W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
	W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
	"not null" to the anonymous access.

From-SVN: r107009
2005-11-15 15:04:34 +01:00
Ed Schonberg
b47efa9317 sem_warn.ads, [...] (Publicly_Referenceable): Generic formals of a generic subprogram are not visible outside the body.
2005-11-14  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
	of a generic subprogram are not visible outside the body.
	(Set_Warning_Switch): New procedure (code to set warning mode moved
	here from Switch.C so that it can be shared by pragma processing.
	(Check_References): Special case warning for non-modified non-imported
	volatile objects.
	* par-prag.adb: Modify processing of pragma Warnings to accomodate new
	form with a string literal argument

From-SVN: r107008
2005-11-15 15:04:22 +01:00
Robert Dewar
21024a3946 sem_util.ads, [...]: Change name Is_Package to Is_Package_Or_Generic_Package.
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_util.ads, sem_util.adb: Change name Is_Package to
	Is_Package_Or_Generic_Package.
	(Check_Obsolescent): New procedure.
	(Set_Is_Public): Remove obsolete junk test.
	(Set_Public_Status): Do not set Is_Public on an object whose declaration
	occurs within a handled_sequence_of_statemets.
	(Is_Controlling_Limited_Procedure): Factor some of the logic, account
	for a parameterless procedure.
	(Enter_Name): Recognize renaming declarations created for private
	component of a protected type within protected operations, so that
	the source name of the component can be used in the debugger.

From-SVN: r107007
2005-11-15 15:04:10 +01:00
Ed Schonberg
861d669e3d re PR ada/15604 (Ambiguous aggregate -- Accepts invalid)
2005-11-14  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	PR ada/15604

	* sem_type.adb (Covers): In an inlined body, a composite type matches
	a private type whose full view is a composite type.
	(Interface_Present_In_Ancestor): Protect the frontend against
	previously detected errors to ensure that its compilation
	with assertions enabled gives the same output that its
	compilation without assertions.
	(Interface_Present_In_Ancestor): Add support for private types.
	Change name In_Actual to In_Generic_Actual (clean up)
	(Disambiguate): New predicate In_Actual, to recognize expressions that
	appear in the renaming declaration generated for generic actuals, and
	which must be resolved in the outer context.

From-SVN: r107006
2005-11-15 15:03:56 +01:00
Hristian Kirtchev
9ebe37436f sem_res.adb (Resolve_Call): Provide a better error message whenever a procedure call is used as a select...
2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_res.adb (Resolve_Call): Provide a better error message whenever
	a procedure call is used as a select statement trigger and is not an
	entry renaming or a primitive of a limited interface.
	(Valid_Conversion): If the operand has a single interpretation do not
	remove address operations.
	(Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
	statement to inhibit warning.
	(Resolve_Unary_Op): Do not produce a warning when
	processing an expression of the form -(A mod B)
	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)
	(Resolve_Concatenation_Arg): Improve error message when argument is an
	ambiguous call to a function that returns an array.
	(Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
	there is an implicit operator in the given scope if we are within an
	instance: legality check has been performed on the generic.
	(Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
	after resolving operand, to avoid false warnings on overloaded calls.

From-SVN: r107005
2005-11-15 15:03:45 +01:00
Robert Dewar
0356699b56 sem_eval.adb: Implement d.f flag
2005-11-14  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_eval.adb: Implement d.f flag
	(Subtype_Statically_Match): A generic actual type has unknown
	discriminants when the corresponding actual has a similar partial view.
	If the routine is called to validate the signature of an inherited
	operation in a child instance, the generic actual matches the full view,

From-SVN: r107004
2005-11-15 15:03:33 +01:00
Ed Schonberg
d4810530b8 sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context...
2005-11-14  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
	not try to rewrite a renamed stream attribute, because the operations
	on the type may not have been generated.
	Handle properly a renaming_as_body generated for a stream operation
	whose default is abstract because the object type itself is abstract.
	(Find_Type): If the type is incomplete and appears as the prefix of a
	'Class reference, it is tagged, and its list of primitive operations
	must be initialized properly.
	(Chain_Use_Clauses): When chaining the use clauses that appear in the
	private declaration of a parent unit, prior to compiling the private
	part of a child unit, find on the scope stack the proper parent entity
	on which to link the use clause.
	(Note_Redundant_Use): Emit a warning when a redundant use clause is
	detected.
	(Analyze_Object_Renaming): An attribute reference is not a legal object
	if it is not a function call.

From-SVN: r107003
2005-11-15 15:03:22 +01:00
Gary Dismukes
a59e9305af sem_ch7.adb (Install_Parent_Private_Declarations): New procedure nested within Analyze_Package_Specification to install the...
2005-11-14  Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
	nested within Analyze_Package_Specification to install the private
	declarations and use clauses within each of the parent units of a
	package instance of a generic child package.
	(Analyze_Package_Specification): When entering a private part of a
	package associated with a generic instance or formal package, the
	private declarations of the parent must be installed (by calling new
	procedure Install_Parent_Private_Declarations).
	Change name Is_Package to Is_Package_Or_Generic_Package
	(Preserve_Full_Attributes): For a synchronized type, the corresponding
	record is absent in a generic context, which does not indicate a
	compiler error.

From-SVN: r107002
2005-11-15 15:03:10 +01:00
Javier Miranda
e660dbf7fe sem_ch6.adb (Check_Conformance): The null-exclusion feature can be omitted in case of stream attribute subprograms.
2005-11-14  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
	omitted in case of stream attribute subprograms.
	(Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
	appear immediately after a subprogram body, when there is no previous
	subprogram declaration.
	Change name Is_Package to Is_Package_Or_Generic_Package
	(Process_Formals): A non null qualifier on a non null named access
	type is not an error, and is a warning only if Redundant_Constructs
	are flagged.

From-SVN: r107001
2005-11-15 15:02:58 +01:00
Ed Schonberg
950d3e7dae sem_ch3.ads, [...] (Build_Discriminal): Add link to original discriminant.
2005-11-14  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
	discriminant.
	(Build_Private_Derived_Type): The entity of the created full view of the
	derived type does not come from source. If after installing the private
	declarations of the parent scope the parent is still private, use its
	full view to construct the full declaration of the derived type.
	(Build_Derived_Record_Type): Relax the condition that controls the
	execution of the check that verifies that the partial view and
	the full view agree in the set of implemented interfaces. In
	addition, this test now only takes into account the progenitors.
	(Derive_Interface_Subprograms): No need to derive subprograms
	of ancestors that are interfaces.
	(Derive_Subprograms): Remove formal No_Predefined_Prims and the
	associated code.
	Change name Is_Package to Is_Package_Or_Generic_Package
	(Complete_Subprograms_Derivation): Handle the case in which the full
	view is a transitive derivation of the ancestor of the partial view.
	(Process_Full_View): Rename local subprogram Find_Interface_In_
	Descendant to Find_Ancestor_Interface to leave the code more clear.
	Remove wrong code that avoids the generation of an error message
	when the immediate ancestor of the partial view is an interface.
	In addition some minor reorganization of the code has been done to
	leave it more clear.
	(Analyze_Type_Declaration): If type has previous incomplete tagged
	partial view, inherit properly its primitive operations.
	(Collect_Interfaces): Make public, for analysis of formal
	interfaces.
	(Analyze_Interface_Declaration): New procedure for use for regular and
	formal interface declarations.
	(Build_Derived_Record_Type): Add support for private types to the code
	that checks if a tagged type implements abstract interfaces.
	(Check_Aliased_Component_Type): The test applies in the spec of an
	instance as well.
	(Access_Type_Declaration): Clean up declaration of malformed type
	declared as an access to its own classwide type, to prevent cascaded
	crash.
	(Collect_Interfaces): For private extensions and for derived task types
	and derived protected types, the parent may be an interface that must
	be included in the interface list.
	(Access_Definition): If the designated type is an interface that may
	contain tasks, create Master_Id for it before analyzing the expression
	of the declaration, which may be an allocator.
	(Record_Type_Declaration): Set properly the interface kind, for use
	in allocators, the creation of master id's for task interfaces, etc.

From-SVN: r107000
2005-11-15 15:02:46 +01:00
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