summaryrefslogtreecommitdiff
path: root/gcc/ada/makeutl.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-06 09:19:23 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-06 09:19:23 +0000
commitdb00d7ec391560a89dad3971bd426bfb3da0d209 (patch)
tree9f5d781e78737728fca3d5a3b4e8bb2eb23708d7 /gcc/ada/makeutl.ads
parent21ec6442052f5a2c9f387418cf82e808b8beb8ba (diff)
downloadgcc-db00d7ec391560a89dad3971bd426bfb3da0d209.tar.gz
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com> Bob Duff <duff@adacore.com> Gary Dismukes <dismukes@adacore.com> * errout.adb (Unwind_Internal_Type): Use predicate Is_Access__Protected_Subprogram_Type. * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant (Freeze_Entity, packed array case): Do not override explicitly set alignment and size clauses. (Freeze_Entity): An entity declared in an outer scope can be frozen if the enclosing subprogram is a child unit body that acts as a spec. (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type. (Freeze_Record_Type): New Ada 2005 processing for reverse bit order Remove all code for DSP option * layout.adb (Layout_Record_Type): Use First/ Next_Component_Or_Discriminant (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type, to handle properly the anonymous access case. * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type for all access attributes, because overload resolution should work the same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This causes the error message for the ambiguous "X'Access = Y'Access" and "X'Unrestricted_Access = Y'Access" and so forth to match. (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type, now that anonymous access to protected operations have their own kind. (Resolve_Attribute): In case of dispatching call check the violation of restriction No_Dispatching_Calls. (Check_Array_Type): Check new -gnatyA array index style option * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an attempt to derive from a synchronized tagged type. (Analyze_Type_Declaration): If there is a incomplete tagged view of the type, inherit the class-wide type already created, because it may already have been used in a self-referential anonymous access component. (Mentions_T): Recognize self-referential anonymous access components that use (a subtype of) the class-wide type of the enclosing type. (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass Derived_Type for Prev formal on call to Check_Anonymous_Access_Components rather than Empty. (Make_Incomplete_Type_Declaration): Add test for case where the type has a record extension in deciding whether to create a class-wide type, rather than just checking Tagged_Present. (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies to stand-alone object declarations as well as component declarations. (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to prevent accidental overwriting when enclosing package appears in a limited_with_clause. (Array_Type_Declaration): If the component type is an anonymous access, the associated_node for the itype is the type declaration itself. (Add_Interface_Tag_Components): Modified to support concurrent types with abstract interfaces. (Check_Abstract_Interfaces): New subprogram that verifies the ARM rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2). (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration to complete the decoration of synchronized interface types. Add also a call to Check_Abstract_Interfaces to verify the ARM rules. (Derive_Interface_Subprograms): Modified to support concurrent types with abstract interfaces. (Analyze_Subtype_Indication): Resolve the range with the given subtype mark, rather than delaying the full resolution depending on context. (Analyze_Component_Declaration,Analyze_Interface_Declaration, Analyze_Object_Declaration,Analyze_Subtype_Declaration, Array_Type_Declaration,Build_Derived_Record_Type, Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion, Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type, Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are called only when appropriate. (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type to private type. (Analyze_Subtype_Declaration): For an access subtype declaration, create an itype reference for the anonymous designated subtype, to prevent scope anonmalies in gigi. (Build_Itype_Reference): New utility, to simplify construction of such references. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123559 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/makeutl.ads')
0 files changed, 0 insertions, 0 deletions