- 31 Oct, 2006 40 commits
-
-
sem_elab.ads, [...] (Check_Elab_Assign): New procedure Add new calls to this procedure during traversal 2006-10-31 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure Add new calls to this procedure during traversal (Activate_Elaborate_All_Desirable): Do not set elaboration flag on another unit if expansion is disabled. From-SVN: r118309
Robert Dewar committed -
sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms inherited from an interface ancestor by another... 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> Gary Dismukes <dismukes@adacore.com> * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms inherited from an interface ancestor by another interface in the context of an instance as 'late'. (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference of a call to a function that dispatches on access result. (Check_Dispatching_Operation): In case of late overriding of a primitive that covers abstract interface subprograms we register it in all the secondary dispatch tables associated with abstract interfaces. (Check_Dispatching_Call): Add check that a dispatching call is not made to a function with a controlling result of a limited type. This is a current implementation restriction. (Check_Controlling_Formal): Remove bogus checks for E.2.2(14). (Check_Dispatching_Operation): Do no emit a warning if the controlling argument is an interface type that is a generic formal. (Is_Interface_Subprogram): Removed. (Check_Dispatching_Operation): If the subprogram is not a dispatching operation, check the formals to handle the case in which it is associated with an abstract interface type. From-SVN: r118308
Hristian Kirtchev committed -
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch9.adb (Analyze_Protected_Definition): Remove call to Check_Overriding_Indicator. (Analyze_Task_Definition): Ditto. (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup. (Check_Overriding_Indicator): To find overridden interface operation, examine only homonyms that have an explicit subprogram declaration, not inherited operations created by an unrelated type derivation. (Check_Overriding_Indicator): When checking for the presence of "null" in a procedure, ensure that the queried node is a procedure specification. (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter type when the formal is an access to variable. (Analyze_Protected_Type): Add check for Preelaborable_Initialization (Analyze_Task_Type): Same addition (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to provide navigation capabilities for entries. From-SVN: r118307
Hristian Kirtchev committed -
2006-10-31 Robert Dewar <dewar@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> Javier Miranda <miranda@adacore.com> Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb: Minor error msg rewording (Undefined): When checking for misspellings, invert arguments (to get expected and found set right) (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated (Analyze_Generic_Renaming): Same fix (Use_One_Package): Do not take into account the internal entities of abstract interfaces during the analysis of entities that are marked as potentially use-visible. (Find_Type): Handle the case of an attribute reference for implementation defined attribute Stub_Type (simply let the analysis of the attribute reference rewrite it). (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a type that appears in a Use_Type clause. (Analyze_Object_Renaming): Add support for renaming of the Priority attribute. (Find_Type): In Ada 2005, a task type can be used within its own body, when it appears in an access definition. (Analyze_Object_Renaming): Remove warning on null_exclusion. (Analyze_Object_Renaming): Introduce checks for required null exclusion in a formal object declaration or in a subtype declaration. (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion. (Check_Null_Exclusion): New local routine to Analyze_Subprogram_Renaming. Check whether the formals and return profile of a renamed subprogram have required null exclusions when their counterparts of the renaming already impose them. (In_Generic_Scope): New local routine to Analyze_Object_Renaming. Determine whether an entity is inside a generic scope. (In_Open_Scope): First pass of documentation update. (Find_Expanded_Name): Add support for shadow entities associated with limited withed packages. This is required to handle nested packages. (Analyze_Package_Renaming): Remove the restriction imposed by AI-217 that makes a renaming of a limited withed package illegal. From-SVN: r118306
Robert Dewar committed -
2006-10-31 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary of Analyze_Package_Body, to create Itype references for anonymous access types created in the package declaration, whose designated types may have only a limited view. (Analyze_Package_Specification): For the private part of a nested package, install private_with_clauses of enclosing compilation unit if we are in its visible part. (Declare_Inherited_Private_Subprograms): Complete barrier to ensure that the primitive operation has an alias to some parent primitive. This is now required because, after the changes done for the implementation of abstract interfaces, the contents of the list of primitives has entities whose alias attribute references entities of such list of primitives. (Analyze_Package_Specification): Simplify code that handles parent units of instances and formal packages. (Uninstall_Declarations): Check the convention consistency among primitive overriding operations of a tagged record type. From-SVN: r118305
Ed Schonberg committed -
sem_ch6.ads, [...] (Analyze_Subprogram_Declaration): A null procedure cannot be a protected operation (it is a basic_declaration... 2006-10-31 Ed Schonberg <schonberg@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> Bob Duff <duff@adacore.com> * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null procedure cannot be a protected operation (it is a basic_declaration, not a subprogram_declaration). (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_ Subp. Add logic for entry processing. (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity. Determine whether an entry or subprogram of a protected or task type override an inherited primitive of an implemented interface. (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding. Update the actual used in calls to Check_Overriding_Indicator. (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit, generate the proper reference to the parent unit, for cross-reference. (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with Is_Formal. Add -gnatd.l --Use Ada 95 semantics for limited function returns, (Add_Extra_Formal): Revise procedure to allow passing in associated entity, scope, and name suffix, and handle setting of the new Extra_Formals field. (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to pass new parameters. Add support for adding the new extra access formal for functions whose calls are treated as build-in-place. (Analyze_A_Return_Statement): Correct casing in error message. Move Pop_Scope to after Analyze_Function_Return, because an extended return statement really is a full-fledged scope. Otherwise, visibility doesn't work right. Correct use of "\" for continuation messages. (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than evilly trying to call Analyze_Object_Declaration directly. Otherwise, the node doesn't get properly marked as analyzed. (Analyze_Subprogram_Body): If subprogram is a function that returns an anonymous access type that denotes a task, build a Master Entity for it. (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify proper usage of null exclusion in a result definition. (Process_Formals): Code cleanup and new error message. (Process_Formals): Detect incorrect application of null exclusion to non-access types. (Conforming_Types): Handle conformance between [sub]types and itypes generated for entities that have null exclusions applied to them. (Maybe_Primitive_Operation): Add an additional type retrieval when the base type is an access subtype. This case arrises with null exclusions. (New_Overloaded_Entity): Do not remove the overriden entity from the homonym chain if it corresponds with an abstract interface primitive. (Process_Formals): Replace membership test agains Incomplete_Kind with a call to the synthesized predicate Is_Incomplete_Type. (Analyze_Subprogram_Body): Check wrong placement of abstract interface primitives. (Analyze_Subprogram_Declaration): Check that abstract interface primitives are abstract or null. (Analyze_Subprogram_Specification): Remove previous check for abstract interfaces because it was not complete. (Has_Interface_Formals): Removed. From-SVN: r118304
Ed Schonberg committed -
2006-10-31 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> Gary Dismukes <dismukes@adacore.com> * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to warn on infinite loops. Add \\ to some continuation messages (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment (Process_Bounds): If the bounds are integer literals that result from constant-folding, and they carry a user-defined type, preserve that type rather than treating this as an integer range. (Analyze_Exit_Statement): Test for E_Return_Statement in legality check. (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check. (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for left hand side of assignment. (Analyze_Assignment): Add suport to manage assigments to the attribute priority of a protected object. (Check_Possible_Current_Value_Condition): Allow fully qualified names not just identifiers. (Check_Possible_Current_Value_Condition): Acquire left operand of AND or AND THEN for possible tracking. (Analyze_Iteration_Scheme): Check for setting Current_Value for the case of while loops so we can track values in the loop body. From-SVN: r118303
Robert Dewar committed -
sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we generate the same errors compiling under -gnatc. 2006-10-31 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> Robert Dewar <dewar@adacore.com> * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we generate the same errors compiling under -gnatc. (Try_Object_Operation): If no candidate interpretation succeeds, but there is at least one primitive operation with the right name, report error in call rather than on a malformed selected component. (Analyze_Selected_Component): If the prefix is an incomplete type from a limited view, and the full view is available, use the full view to determine whether this is a prefixed call to a primitive operation. (Operator_Check): Verify that a candidate interpretation is a binary operation before checking the type of its second formal. (Analyze_Call): Add additional warnings for function call contexts not yet supported. (Analyze_Allocator): Move the check for "initialization not allowed for limited types" after analyzing the expression. This is necessary, because OK_For_Limited_Init looks at the structure of the expression. Before analysis, we don't necessarily know what sort of expression it is. For example, we don't know whether F(X) is a function call or an indexed component; the former is legal in Ada 2005; the latter is not. (Analyze_Allocator): Correct code for AI-287 -- extension aggregates were missing. We also didn't handle qualified expressions. Now also allow function calls. Use new common routine OK_For_Limited_Init. (Analyze_Type_Conversion): Do not perform some legality checks in an instance, because the error message will be redundant or spurious. (Analyze_Overloaded_Selected_Component): Do not do style check when setting an entity, since we do not know it is the right entity yet. (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res (Analyze_Overloaded_Selected_Component): Same change (Analyze_Selected_Component): Remove unnecessary prefix type retrieval since regular incomplete subtypes are transformed into corresponding subtypes of their full views. (Complete_Object_Operation): Treat name of transformed subprogram call as coming from source, for browsing purposes. (Try_Primitive_Operation): If formal is an access parameter, compare with base type of object to determine whether it is a primitive operation. (Operator_Check): If no interpretation of the operator matches, check whether a use clause on any candidate might make the operation legal. (Try_Class_Wide_Operation): Check whether the first parameter is an access type whose designated type is class-wide. From-SVN: r118302
Ed Schonberg committed -
2006-10-31 Robert Dewar <dewar@adacore.com> Thomas Quinot <quinot@adacore.com> * sem_ch13.adb: Storage pool cannot be given for access to subprogram type. (New_Stream_Subprogram): When processing an attribute definition clause for a stream-oriented subprogram, record an entity node occurring at the point of clause to use for checking the visibility of the clause, as defined by 8.3(23) as amended by AI-195. (New_Stream_Subprogram): New procedure, factoring behaviour from both New_Stream_Function and New_Stream_Procedure. (New_Stream_Function, New_Stream_Procedure): Removed. (Analyze_Attribute_Definition_Clause, case Address): Check new Alignment_Check check From-SVN: r118301
Robert Dewar committed -
2006-10-31 Ed Schonberg <schonberg@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator that has been constant-folded, preserve information of original tree, for ASIS uses. (Analyze_Formal_Derived_Type): Set the limited present flag of the newly generated private extension declaration if the formal derived type is synchronized. Carry synchronized present over to the generated private extension. (Validate_Derived_Type_Instance): Ensure that the actual of a synchronized formal derived type is a synchronized tagged type. (Instantiate_Formal_Package): When creating the instantiation used to validate the actual package of a formal declared without a box, check whether the formal itself depends on a prior actual. (Instantiate_Formal_Subprogram): Create new entities for the defining identifiers of the formals in the renaming declaration, for ASIS use. (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating a renaming declaration or a subtype declaration for an actual in an instance, capture location information of declaration in generic, for ASIS use. (Instantiate_Formal_Package): Add comments on needed additional tests. AI-317 (partial parametrization) is fully implemented. (Validate_Private_Type_Instance): Add check for actual which must have preelaborable initialization Use new // insertion for some continuation messages (Analyze_Formal_Object_Declaration): Change usage of Expression to Default_Expression. Add type retrieval when the declaration has an access definition. Update premature usage of incomplete type check. (Check_Access_Definition): New subsidiary routine. Check whether the current compilation version is Ada 05 and the supplied node has an access definition. (Instantiate object): Alphabetize local variables. Handle the creation of new renaming declarations with respect to the kind of definition used - either an access definition or a subtype mark. Guard against unnecessary error message in the context of anonymous access types after they have been resolved. Add check for required null exclusion in a formal object declaration. (Switch_View): A private subtype of a non-private type needs to be switched (the base type can have been switched without its private dependents because of the last branch of Check_Private_View. (Check_Private_View): Do not recompute Base_Type (T), instead use cached value from BT. (Instantiate_Type): Emit an error message whenever a class-wide type of a tagged incomplete type is used as a generic actual. (Find_Actual_Type): Extend routine to handle a component type in a child unit that is imported from a formal package in a parent. (Validate_Derived_Type_Instance): Check that analyzed formal and actual agree on constrainedness, rather than checking against ultimate ancestor (Instantiate_Subprogram_Body): Create a cross-reference link to the generic body, for navigation purposes. From-SVN: r118300
Ed Schonberg committed -
sem_ch11.adb (Analyze_Handled_Statements): Move final test for useless assignments here and conditionalize it on absence... 2006-10-31 Robert Dewar <dewar@adacore.com> * sem_ch11.adb (Analyze_Handled_Statements): Move final test for useless assignments here and conditionalize it on absence of exception handlers. (Analyze_Exception_Handlers): Small code reorganization of error detection code, for new handling of formal packages. From-SVN: r118299
Robert Dewar committed -
sem_attr.ads, [...] (Analyze_Access_Attribute): Diagnose properly an attempt to apply Unchecked_Access to a protected operation. 2006-10-31 Ed Schonberg <schonberg@adacore.com> Thomas Quinot <quinot@adacore.com> Javier Miranda <miranda@adacore.com> Gary Dismukes <dismukes@adacore.com> * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose properly an attempt to apply Unchecked_Access to a protected operation. (OK_Self_Reference): New subprogram to check the legality of an access attribute whose prefix is the type of an enclosing aggregate. Generalizes previous mechanism to handle attribute references nested arbitrarily deep within the aggregate. (Analyze_Access_Attribute): An access attribute whose prefix is a type can appear in an aggregate if this is a default-initialized aggregate for a self-referential type. (Resolve_Attribute, case Access): Ditto. Add support for new implementation defined attribute Stub_Type. (Eval_Attribute, case Attribute_Stub_Type): New case. (Analyze_Attribute, case Attribute_Stub_Type): New case. (Stream_Attribute_Available): Implement using new subprogram from sem_cat, Has_Stream_Attribute_Definition, instead of incorrect Has_Specified_Stream_Attribute flag. Disallow Storage_Size and Storage_Pool for access to subprogram (Resolve_Attribute, case 'Access et al): Take into account anonymous access types of return subtypes in extended return statements. Remove accessibility checks on anonymous access types when Unchecked_Access is used. (Analyze_Attribute): Add support for the use of 'Class to convert a class-wide interface to a tagged type. Add support for the attribute Priority. (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for whether the designated type is discriminated with a constrained partial view and require static matching in that case. Add local variable Des_Btyp. The Designated_Type of an access to incomplete subtype is either its non-limited view if coming from a limited with or its etype if regular incomplete subtype. * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Fix predicate to identify and allow cases of (expander-generated) references to tag of designated object of a RACW. (Validate_Static_Object_Name): In Ada 2005, a formal object is non-static, and therefore cannot appear as a primary in a preelaborable package. (Has_Stream_Attribute_Definition): New subprogram, abstracted from Has_Read_Write_Attributes. (Has_Read_Write_Attributes): Reimplement in termes of Has_Stream_Attribute_Definition. (Missing_Read_Write_Attributes): When checking component types in a record, unconditionally call Missing_Read_Write_Attributes recursively (remove guard checking for Is_Record_Type / Is_Access_Type). From-SVN: r118298
Ed Schonberg committed -
2006-10-31 Robert Dewar <dewar@adacore.com> * scng.adb (Scan, case of numeric literal): Better msg for identifier starting with a digit. From-SVN: r118297
Robert Dewar committed -
* rtsfind.adb: Remove s-polint from comment as it exists no more. * rtsfind.ads: Move entity RE_Get_Active_Partition_Id to package System.DSA_Services. Move all the entities in obsolete package System.PolyORB_Interface to System.Partition_Interface. (RE_Storage_Size): New function in System.Tasking. (RE_Get_Ceiling): New entity. (RE_Set_Ceiling): New entity. (RO_PE_Get_Ceiling): New entity. (RO_RE_Set_Ceiling): New entity. (Inherit_CPP_DT): New entity From-SVN: r118296
Arnaud Charlet committed -
restrict.ads, [...] (Restriction_Active): Now returns False if only a restriction warning is active for the given restriction. 2006-10-31 Arnaud Charlet <charlet@adacore.com> Robert Dewar <dewar@adacore.com> * restrict.ads, restrict.adb (Restriction_Active): Now returns False if only a restriction warning is active for the given restriction. This is desirable because we do not want to modify code in the case where only a warning is set. (Set_Profile_Restrictions): Make sure that a Profile_Warnings never causes overriding of real restrictions. Take advantage of new No_Restrictions constant. * raise.h: (__gnat_set_globals): Change profile. From-SVN: r118295
Arnaud Charlet committed -
2006-10-31 Robert Dewar <dewar@adacore.com> * repinfo.adb (List_Entities): Don't list entities from renaming declarations. From-SVN: r118294
Robert Dewar committed -
2006-10-31 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S on VMS, change "__" to '.' before checking the name. (Record_Ada_Source): Always add the source file name in the list of of sources, even if it is not the first time, as it is for another source index. (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single dot, instead of replacing only the first '_'. * prj-part.adb (Parse): Convert project file path to canonical form * prj-proc.adb (Recursive_Process): Make sure that, when a project is extended, the project id of the project extending it is recorded in its data, even when it has already been processed as an imported project. From-SVN: r118293
Vincent Celier committed -
2006-10-31 Vincent Celier <celier@adacore.com> * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter Packages_To_Check. From-SVN: r118292
Vincent Celier committed -
prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for unknown attribute in unknown package or in package... 2006-10-31 Vincent Celier <celier@adacore.com> * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for unknown attribute in unknown package or in package that does not need to be checked. (Parse_Package_Declaration): Do not issue warning for unknown package in quiet output. From-SVN: r118291
Vincent Celier committed -
2006-10-31 Robert Dewar <dewar@adacore.com> Javier Miranda <miranda@adacore.com> * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses (P_Type_Declaration): Remove barrier against the reserved word "limited" after "abstract" to give support to the new syntax of AARM 3.4 (2/2). (P_Type_Declaration): Minor code cleanup. Add support for synchronized private extensions. (P_Type_Declaration): Add the new actual Abstract_Present to every call to P_Interface_Type_Definition. (P_Interface_Type_Definition): Addition of one formal to report an error if the reserved word abstract has been previously found. (P_Identifier_Declarations): Update grammar rules. Handle parsing of an object renaming declaration with an access definition or subtype mark with a possible null exclusion. * par-ch9.adb: Minor error msg fix * par-load.adb: Add missing continuation mark to error msg * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation From-SVN: r118290
Robert Dewar committed -
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> Javier Miranda <miranda@adacore.com> * par-ch12.adb: Grammar update and cleanup. (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add support for synchronized derived type definitions. Add the new actual Abstract_Present to every call to P_Interface_Type_Definition. (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of a formal object declaration with an access definition or a subtype mark with a null exclusion. (P_Generic_Association): Handle association with box, and others_choice with box, to support Ada 2005 partially parametrized formal packages. From-SVN: r118289
Hristian Kirtchev committed -
2006-10-31 Robert Dewar <dewar@adacore.com> * par-ch10.adb (P_Context_Clause): Minor error message fix From-SVN: r118288
Robert Dewar committed -
sem_ch10.ads, [...] (Check_Redundant_Withs, [...]): If the context of a body includes a use clause for P.Q then a with_clause for P... 2006-10-31 Ed Schonberg <schonberg@adacore.com> * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs, Process_Body_Clauses): If the context of a body includes a use clause for P.Q then a with_clause for P in the same body is not redundant, even if the spec also has a with_clause on P. Add missing continuation mark to error msg (Build_Limited_Views): A limited view of a type is tagged if its declaration includes a record extension. (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit node, even if the subunit has errors. This avoids malfunction by Lib.Check_Same_Extended_Unit in the presence of syntax errors. (Analyze_Compilation_Unit): Add circuit to make sure we get proper generation of obsolescent messages for with statements (cannot do this too early, or we cannot implement avoiding the messages in the case of obsolescent units withing obsolescent units). (Install_Siblings): If the with_clause is on a remote descendant of an ancestor of the current compilation unit, find whether there is a sibling child unit that is immediately visible. (Remove_Private_With_Clauses): New procedure, invoked after completing the analysis of the private part of a nested package, to remove from visibility the private with_clauses of the enclosing package declaration. (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is now centralized in Generate_Reference. (Install_Limited_Context_Clauses): Remove superfluous error message associated with unlimited view visible through use and renamings. In addition, at the point in which the error is reported, we add the backslash to the text of the error to ensure that it is reported as a single error message. Use new // insertion for some continuation messages (Expand_Limited_With_Clause): Use copy of name rather than name itself, to create implicit with_clause for parent unit mentioned in original limited_with_clause. (Install_Limited_With_Unit): Set entity of parent identifiers if the unit is a child unit. For ASIS queries. (Analyze_Subunit): If the subunit appears within a child unit, make all ancestor child units directly visible again. From-SVN: r118287
Ed Schonberg committed -
2006-10-31 Vincent Celier <celier@adacore.com> * mlib-utl.adb (Initialized): Remove, no longer used (Initialize): Remove, no longer used (Ar): If Ar_Exec is null, get the location of the archive builder and, if there is one, the archive indexer. Fail if the archive builder cannot be found. (Gcc): If the driver path is unknown, get it. Fail if the driver cannot be found. From-SVN: r118286
Vincent Celier committed -
2006-10-31 Thomas Quinot <quinot@adacore.com> Eric Botcazou <ebotcazou@adacore.com> Arnaud Charlet <charlet@adacore.com> * Makefile.in: Set EH mechanism to ZCX for FreeBSD. (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if possible. (a-except.o): Pass it to the compiler. (gnatlib-shared-vms): Removed -nostartfiles switch in link step. (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific a-calend-mingw.adb version. * Makefile.rtl: Added s-dsaser. Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones] (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and Ada.Dispatching.Round_Robin. Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists * Make-lang.in: Remove all references to gt-ada-decl.h. Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler sources. Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects. Update dependencies. * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD From-SVN: r118285
Thomas Quinot committed -
lib-load.adb (Load_Unit): Skip the test for a unit not found when its file has already been loaded... 2006-10-31 Vincent Celier <celier@adacore.com> * lib-load.adb (Load_Unit): Skip the test for a unit not found when its file has already been loaded, according to the unit being loaded, not to the current value of Multiple_Unit_Index. From-SVN: r118284
Vincent Celier committed -
2006-10-31 Robert Dewar <dewar@adacore.com> * layout.adb (Layout_Record_Type): Deal with non-static subtypes of variant records (Layout_Variant_Record): Retrieve the discriminants from the entity rather than from the type definition, because in the case of a full type for a private type we need to take the discriminants from the partial view. (Layout_Component_List): When applying the Max operator to variants with a nonstatic size, check whether either operand is static and scale that operand from bits to storage units before applying Max. (Layout_Type): In VMS, if a C-convention access type has no explicit size clause (and does not inherit one in the case of a derived type), then the size is reset to 32 from 64. From-SVN: r118283
Robert Dewar committed -
2006-10-31 Robert Dewar <dewar@adacore.com> * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First From-SVN: r118282
Robert Dewar committed -
2006-10-31 Robert Dewar <dewar@adacore.com> * g-speche.ads, g-speche.adb: Add special case to recognize misspelling initial letter o as a zero. From-SVN: r118281
Robert Dewar committed -
2006-10-31 Thomas Quinot <quinot@adacore.com> * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components to No_Socket. (Selector_Type): Add default value of No_Socket for R_Sig_Socket and W_Sig_Socket. From-SVN: r118280
Thomas Quinot committed -
2006-10-31 Vincent Celier <celier@adacore.com> * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an absolute path name. (Locate_Regular_File): Ditto (Change_Dir): Remove, no longer used (Normalize_Pathname): Do not use Change_Dir to get the drive letter on Windows. Get it calling Get_Current_Dir. (OpenVMS): Remove imported boolean, no longer needed. (Normalize_Pathname)[VMS]: Do not resolve directory names. (Pid_To_Integer): New function to convert a Process_Id to Integer From-SVN: r118279
Vincent Celier committed -
2006-10-31 Vincent Celier <celier@adacore.com> * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined, instead of ADA_PROJECT_PATH, for the project path. (Gnatls): When displaying the project path directories, use host dir specs. * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path names in the project path, as absolute paths may correspond to multi-valued VMS logical names. From-SVN: r118278
Vincent Celier committed -
2006-10-31 Vincent Celier <celier@adacore.com> * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc, call it with -static-libgcc, as there are some platforms, such as Darwin, where one of these two switches is compulsory to link. From-SVN: r118277
Vincent Celier committed -
gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of handling executable extension manually and... 2006-10-31 Arnaud Charlet <charlet@adacore.com> Robert Dewar <dewar@adacore.com> * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of handling executable extension manually and duplicating code. * make.adb: Implement new -S switch (Gnatmake): Use new function Osint.Executable_Name instead of handling executable extension manually. * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix is specified, the executable name ends with this suffix. Take advantage of Osint.Executable_Name instead of duplicating code. * switch-m.adb: Recognize new gnatmake -S switch * targparm.ads, targparm.adb (Executable_Extension_On_Target): New variable. (Get_Target_Parameters): Set Executable_Extension_On_Target if available. * makeusg.adb: Add line for gnatmake -S switch From-SVN: r118276
Arnaud Charlet committed -
g-debpoo.adb (Is_Valid): Correctly compute Offset using Integer_Address arithmetic, as in Set_Valid. 2006-10-31 Vincent Celier <celier@adacore.com> * g-debpoo.adb (Is_Valid): Correctly compute Offset using Integer_Address arithmetic, as in Set_Valid. From-SVN: r118275
Vincent Celier committed -
2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> * g-catiio.ads, g-catiio.adb (Value): New function. Given an input String, try and parse a valid Time value. From-SVN: r118274
Hristian Kirtchev committed -
g-awk.adb (Default_Session, [...]): Compile this file in Ada 95 mode, because it violates the new rules for AI-318. 2006-10-31 Bob Duff <duff@adacore.com> Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * g-awk.adb (Default_Session, Current_Session): Compile this file in Ada 95 mode, because it violates the new rules for AI-318. * g-awk.ads: Use overloaded subprograms in every case where we used to have a default of Current_Session. This makes the code closer to be correct for both Ada 95 and 2005. * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005 code, relying on the fact that the compiler generates a warning instead of an error in -gnatg mode. * lib-xref.ads (Xref_Entity_Letters): Add entry for new E_Return_Statement entity kind. Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters. * par.adb (P_Interface_Type_Definition): Addition of one formal to report an error if the reserved word abstract has been previously found. (SS_End_Type): Add E_Return for new extended_return_statement syntax. * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for parenthesized range attribute usage (P_Expression_No_Right_Paren): Add missing comment about error recovery. * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant" in the syntax for extended_return_statement. This is not in the latest RM, but the ARG is expected to issue an AI allowing this. (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove N_Return_Object_Declaration. We now use N_Object_Declaration instead. (P_Return_Object_Declaration, P_Return_Subtype_Indication, P_Return_Statement): Parse the new syntax for extended_return_statement. * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected, Output_End_Missing): Add error-recovery code for the new extended_return_statement syntax; that is, the new E_Return entry on the scope stack. * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from limited to nonlimited, because otherwise we violate the new Ada 2005 rules about returning limited types in function Create_AST_Handler in s-asthan.adb. * sem.adb (Analyze): Add cases for new node kinds N_Extended_Return_Statement and N_Return_Object_Declaration. * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component type is in the same category as type of context before applying check, to prevent anomalies in instantiations. (Resolve_Aggregate): Remove test for limited components in aggregates. It's unnecessary in Ada 95, because if it has limited components, then it must be limited. It's wrong in Ada 2005, because limited aggregates are now allowed. (Resolve_Record_Aggregate): Move check for limited types later, because OK_For_Limited_Init requires its argument to have been resolved. (Get_Value): When copying the component default expression for a defaulted association in an aggregate, use the sloc of the aggregate and not that of the original expression, to prevent spurious elaboration errors, when the expression includes function calls. (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates were missing. We also didn't handle qualified expressions. Now also allow function calls. Use new common routine OK_For_Limited_Init. (Resolve_Extension_Aggregate): Minor fix to bad error message (started with space can upper case letter). * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set Has_Static_Discriminants flag (Record_Type_Declaration): Diagnose an attempt to declare an interface type with discriminants. (Process_Range_Expr_In_Decl): Do validity checks on range (Build_Discriminant_Constraints): Use updated form of Denotes_Discriminant. (Process_Subtype): If the subtype is a private subtype whose full view is a concurrent subtype, introduce an itype reference to prevent scope anomalies in gigi. (Build_Derived_Record_Type, Collect_Interface_Primitives, Record_Type_Declaration): The functionality of the subprograms Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces is now performed by a single routine. (Build_Derived_Record_Type): If the type definition includes an explicit indication of limitedness, then the type must be marked as limited here to ensure that any access discriminants will not be treated as having a local anonymous access type. (Check_Abstract_Overriding): Issue a detailed error message when an abstract subprogram was not overridden due to incorrect mode of its first parameter. (Analyze_Private_Extension_Declaration): Add support for the analysis of synchronized private extension declarations. Verify that the ancestor is a limited or synchronized interface or in the generic case, the ancestor is a tagged limited type or synchronized interface and all progenitors are either limited or synchronized interfaces. Derived_Type_Declaration): Check for presence of private extension when dealing with synchronized formal derived types. Process_Full_View): Enchance the check done on the usage of "limited" by testing whether the private view is synchronized. Verify that a synchronized private view is completed by a protected or task type. (OK_For_Limited_Init_In_05): New function. (Analyze_Object_Declaration): Move check for limited types later, because OK_For_Limited_Init requires its argument to have been resolved. Add -gnatd.l --Use Ada 95 semantics for limited function returns, in order to alleviate the upward compatibility introduced by AI-318. (Constrain_Corresponding_Record): If the constraint is for a component subtype, mark the itype as frozen, to avoid out-of-scope references to discriminants in the back-end. (Collect_Implemented_Interfaces): Protect the recursive algorithm of this subprogram against wrong sources. (Get_Discr_Value, Is_Discriminant): Handle properly references to a discriminant of limited type completed with a protected type, when the discriminant is used to constrain a private component of the type, and expansion is disabled. (Find_Type_Of_Object): Do not treat a return subtype that is an anonymous subtype as a local_anonymous_type, because its accessibility level is the return type of the enclosing function. (Check_Initialization): In -gnatg mode, turn the error "cannot initialize entities of limited type" into a warning. (OK_For_Limited_Init): Return true for generated nodes, since it sometimes violates the legality rules. (Make_Incomplete_Declaration): If the type for which an incomplete declaration is created happens to be the currently visible entity, preserve the homonym chain when removing it from visibility. (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of inherited subprograms. (Access_Definition): If this is an access to function that is the return type of an access_to_function definition, context is a type declaration and the scope of the anonymous type is the current one. (Analyze_Subtype_Declaration): Add the defining identifier of a regular incomplete subtype to the set of private dependents of the original incomplete type. (Constrain_Discriminated_Type): Emit an error message whenever an incomplete subtype is being constrained. (Process_Incomplete_Dependents): Transform an incomplete subtype into a corresponding subtype of the full view of the original incomplete type. (Check_Incomplete): Properly detect invalid usage of incomplete types and subtypes. From-SVN: r118273
Bob Duff committed -
g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the closest multiple of VECTOR_ALIGNMENT... 2006-10-31 Olivier Hainque <hainque@adacore.com> * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16. From-SVN: r118272
Olivier Hainque committed -
2006-10-31 Robert Dewar <dewar@adacore.com> Ed Schonberg <schonberg@adacore.com> * freeze.adb: Add handling of Last_Assignment field (Warn_Overlay): Supply missing continuation marks in error msgs (Freeze_Entity): Add check for Preelaborable_Initialization * g-comlin.adb: Add Warnings (Off) to prevent new warning * g-expect.adb: Add Warnings (Off) to prevent new warning * lib-xref.adb: Add handling of Last_Assignment field (Generate_Reference): Centralize handling of pragma Obsolescent here (Generate_Reference): Accept an implicit reference generated for a default in an instance. (Generate_Reference): Accept a reference for a node that is not in the main unit, if it is the generic body corresponding to an subprogram instantiation. * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for -gnatwq/Q. (Warn_On_Useless_Assignment): Suppress warning if enclosing inner exception handler. (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on use clauses, to avoid messages on packages used to qualify, and also to avoid messages from obsolescent units. (Warn_On_Useless_Assignments): Don't generate messages for imported and exported variables. (Warn_On_Useless_Assignments): New procedure (Output_Obsolescent_Entity_Warnings): New procedure (Check_Code_Statement): New procedure * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag Change name Is_Ada_2005 to Is_Ada_2005_Only (Last_Assignment): New field for useless assignment warning From-SVN: r118271
Robert Dewar committed -
2006-10-31 Vincent Celier <celier@adacore.com> * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target. When True, apply VMS treatment to children of packages A, G, I and S. For F320-016 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target From-SVN: r118270
Vincent Celier committed
-