+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch9.adb, s-tassta.adb, s-secsta.adb: Minor reformatting.
+
+2011-08-30 Yannick Moy <moy@adacore.com>
+
+ * exp_ch6_light.adb, exp_ch6_light.ads, exp_attr_light.adb,
+ exp_attr_light.ads, exp_ch7_light.adb, exp_ch7_light.ads,
+ exp_light.adb, exp_light.ads, exp_prag.adb, expander.adb,
+ gnat1drv.adb, exp_ch11.adb, exp_ch6.adb, exp_ch6.ads, exp_aggr.adb:
+ Revert change which introduced files for "light"
+ expansion, to be replaced by a single file for Alfa expansion.
+
+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * opt.ads, s-soflin.adb, exp_ch9.adb, sem_res.adb: Update comment.
+ Minor code reorg/reformatting.
+
+2011-08-30 Yannick Moy <moy@adacore.com>
+
+ * opt.adb, opt.ads (Full_Expander_Active): New function defines a
+ common shorthand for (Expander_Active and not ALFA_Mode) that can be
+ used for testing full expansion, that is active expansion not in the
+ reduced mode for Alfa
+ * exp_ch4.adb, exp_ch9.adb, exp_disp.adb, sem_ch10.adb, sem_ch12.adb,
+ sem_ch6.adb, sem_ch9.adb, sem_res.adb: Use newly defined "flag" instead
+ of the verbose (Expander_Active and not ALFA_Mode)
+
+2011-08-30 Tristan Gingold <gingold@adacore.com>
+
+ * s-parame-vms-alpha.ads, s-parame-hpux.ads, s-tassta.adb,
+ s-tarest.adb, s-parame-vms-ia64.ads, s-soflin.adb, s-secsta.adb,
+ s-secsta.ads, s-parame.ads, s-parame-vxworks.ads, s-parame-ae653.ads:
+ Renames Ratio to Percentage, and Sec_Stack_Ratio to Sec_Stack_Percentage
+
+2011-08-30 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_res.adb (Valid_Conversion): Revise test for implicit anonymous
+ access conversions to check that the conversion is a rewritten node,
+ rather than just having Comes_From_Source set to False, which wasn't
+ sufficient.
+
+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch9.adb, sem_ch9.adb, sem_ch6.adb, exp_disp.adb,
+ g-socket.ads: Minor reformatting.
+
+2011-08-30 Thomas Quinot <quinot@adacore.com>
+
+ * sem_util.adb: Minor reformatting.
+
+2011-08-30 Tristan Gingold <gingold@adacore.com>
+
+ * raise-gcc.c: Never catch exception if _UA_FORCE_UNWIND flag is set,
+ to be compliant with the ABI.
+
+2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_ch12.adb (Check_Private_View): Exchange the private and full view
+ of a designated type when the related access type is an actual in an
+ instance. This ensures that the full view of designated type is
+ available when inside the body of the instance.
+
+2011-08-30 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_util.adb (May_Be_Lvalue): To determine whether a reference may be
+ in a position to be modified, a slice is treated like an indexed
+ component.
+
+2011-08-30 Thomas Quinot <quinot@adacore.com>
+
+ * s-oscons-tmplt.c, g-socket.ads: Adjust maximum allowed value for
+ field tv_sec in struct timeval.
+
+2011-08-30 Yannick Moy <moy@adacore.com>
+
+ * exp_ch9.adb, exp_disp.adb, sem_ch9.adb, sem_res.adb: Protect several
+ blocks of code doing full expansion, previously only guarded by
+ Expander_Active, by anding the test that ALFA_Mode is not set
+
+2011-08-30 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (Analyze_Return_Type): If the return type is incomplete,
+ add the function to the list of private dependents, for subsequent
+ legality check on Taft amendment types.
+ * sem_ch12.adb (Analyze_Formal_Incomplete_Type): Initialize
+ Private_Dependents, as for other incomplete types.
+ * sem_util.adb (Wrong_Type): Avoid cascaded errors when a
+ Taft-amendment type is used as the return type of a function.
+
+2011-08-30 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup: replace code
+ which emits an error by a call to a new routine which report the error.
+ * exp_ch9.adb (Build_Wrapper_Spec): Build the wrapper even if the
+ entity does not cover an existing interface.
+ * errout.ads, errout.adb (Error_Msg_PT): New routine. Used to factorize
+ code.
+ * sem_ch6.adb (Check_Conformance): Add specific error for wrappers of
+ protected procedures or entries whose mode is not conformant.
+ (Check_Synchronized_Overriding): Code cleanup: replace code which emits
+ an error by a call to a new routine which report the error.
+
+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * gnat_rm.texi: Minor change.
+ * exp_attr_light.adb: Minor reformatting.
+
+2011-08-30 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb: Patch inheritance of aspects in
+ Complete_Private_Subtype, to avoid infinite loop.
+
+2011-08-30 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch3.adb (Add_Internal_Interface_Entities): If serious errors have
+ been reported and a subprogram covering an interface primitive is not
+ found then skip generating the internal entity. Done to avoid crashing
+ the frontend.
+ (Check_Abstract_Overriding): Change text of error of wrong formal of
+ protected subprogram or entry. Done for consistency to emit exactly the
+ same error reported by Check_Synchronized_Overriding. In addition, the
+ error is restricted to protected types (bug found working on AI05-0090)
+
+2011-08-30 Yannick Moy <moy@adacore.com>
+
+ * exp_aggr.adb, exp_ch11.adb, exp_prag.adb: Remove early exit during
+ expansion in Alfa mode.
+ * exp_ch6.adb, exp_ch6.ads (Expand_Actuals): Make subprogram public.
+ * exp_light.adb, exp_light.ads: New package defining light expansion.
+ * expander.adb (Expand): Call light expansion in Alfa mode
+ * exp_ch6_light.adb, exp_ch6_light.ads: Light expansion of chapter 6
+ constructs.
+ * exp_ch7_light.adb, exp_ch7_light.ads: Light expansion of chapter 7
+ constructs.
+ * exp_attr_light.adb, exp_attr_light.ads: Light expansion of attributes
+ * gnat1drv.adb (Adjust_Global_Switches): Comment
+
+2011-08-30 Yannick Moy <moy@adacore.com>
+
+ * lib-xref-alfa.adb: Minor refactoring.
+
+2011-08-30 Yannick Moy <moy@adacore.com>
+
+ * exp_ch9.adb (Expand_Entry_Barrier): Do not perform expansion in Alfa
+ mode.
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not perform
+ expansion in Alfa mode.
+ * sem_ch9.adb (Analyze_Entry_Body): Do not perform expansion in Alfa
+ mode.
+
+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * debug_a.adb: Update comment.
+
+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch5.adb, sem_ch3.adb, sem_ch5.adb, einfo.adb, checks.adb,
+ sem_util.adb, sem_util.ads, sem_res.adb, s-stposu.adb, sem_attr.adb,
+ exp_ch4.adb, exp_ch6.adb, lib-xref-alfa.adb,
+ sem_ch8.adb, sem_disp.adb, exp_ch3.adb: Minor reformatting
+
+2011-08-30 Robert Dewar <dewar@adacore.com>
+
+ * gnat_rm.texi: Add section on C.6(16) implementation advice for pragma
+ volatile.
+
+2011-08-30 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch3.adb (Expand_Freeze_Array_Type): Correct the call to
+ Build_Finalization_Master by supplying an insertion node and enclosing
+ scope. In its old version, the call did not generate a finalization
+ master.
+ (Expand_Freeze_Record_Type): Add local variable Has_AACC. Add code to
+ recognize anonymous access-to-controlled components. Rewrite the
+ machinery which creates finalization masters to service anonymous
+ access-to-controlled components of a record type. In its current state,
+ only one heterogeneous master is necessary to handle multiple anonymous
+ components.
+ (Freeze_Type): Comment reformatting.
+ * rtsfind.ads: Add RE_Set_Is_Heterogeneous to tables RE_Id and
+ RE_Unit_Table.
+ * s-stposu.adb (Allocate_Any_Controlled): Rewrite the machinery which
+ associates TSS primitive Finalize_Address with either the master itself
+ or with the internal hash table depending on the mode of operation of
+ the master.
+
+2011-08-30 Javier Miranda <miranda@adacore.com>
+
+ * exp_ch3.adb (Make_Eq_If): If the etype of the _parent component is an
+ interface type then do not generate code to compare this component.
+ Required since they have no components and their equality operator is
+ abstract.
+
+2011-08-30 Steve Baird <baird@adacore.com>
+
+ * sem_util.ads (Deepest_Type_Access_Level): New function; for the type
+ of a saooaaat (i.e, a stand-alone object of an anonymous access type),
+ returns the (static) accessibility level of the object. Otherwise, the
+ same as Type_Access_Level.
+ (Dynamic_Accessibility_Level): New function; given an expression which
+ could occur as the rhs of an assignment to a saooaaat (i.e., an
+ expression of an access-to-object type), return the new value for the
+ saooaaat's associated Extra_Accessibility object.
+ (Effective_Extra_Accessibility): New function; same as
+ Einfo.Extra_Accessibility except that object renames are looked through.
+ * sem_util.adb
+ (Deepest_Type_Access_Level): New function; see sem_util.ads description.
+ (Dynamic_Accessibility_Level): New function; see sem_util.ads
+ description.
+ (Effective_Extra_Accessibility): New function; see sem_util.ads
+ description.
+ * einfo.ads (Is_Local_Anonymous_Access): Update comments.
+ (Extra_Accessibility): Update comments.
+ (Init_Object_Size_Align): New procedure; same as Init_Size_Align
+ except RM_Size field (which is only for types) is unaffected.
+ * einfo.adb
+ (Extra_Accessibility): Expand domain to allow objects, not just formals.
+ (Set_Extra_Accessibility): Expand domain to allow objects, not just
+ formals.
+ (Init_Size): Add assertion that we are not trashing the
+ Extra_Accessibility attribute of an object.
+ (Init_Size_Align): Add assertion that we are not trashing the
+ Extra_Accessibility attribute of an object.
+ (Init_Object_Size_Align): New procedure; see einfo.ads description.
+ * sem_ch3.adb (Find_Type_Of_Object): Set Is_Local_Anonymous_Access
+ differently for the type of a (non-library-level) saooaaat depending
+ whether Ada_Version < Ada_2012. This is the only point where Ada_Version
+ is queried in this set of changes - everything else (in particular,
+ setting of the Extra_Accessibility attribute in exp_ch3.adb) is
+ driven off of the setting of the Is_Local_Anonymous_Access attribute.
+ The special treatment of library-level saooaaats is an optimization,
+ not required for correctnesss. This is based on the observation that the
+ Ada2012 rules (static and dynamic) for saooaaats turn out to be
+ equivalent to the Ada2005 rules in the case of a library-level saooaaat.
+ * exp_ch3.adb
+ (Expand_N_Object_Declaration): If Is_Local_Anonymous_Access is
+ false for the type of a saooaaat, declare and initialize its
+ accessibility level object and set the Extra_Accessibility attribute
+ of the saooaaat to refer to this object.
+ * checks.adb (Apply_Accessibility_Check): Add Ada 2012 saooaaat support.
+ * exp_ch4.adb (Expand_N_In): Replace some Extra_Accessibility calls with
+ calls to Effective_Extra_Accessibility in order to support
+ renames of saooaaats.
+ (Expand_N_Type_Conversion): Add new local function,
+ Has_Extra_Accessibility, and call it when determining whether an
+ accessibility check is needed.
+ It returns True iff Present (Effective_Extra_Accessibility (Id)) would
+ evaluate to True (without raising an exception).
+ * exp_ch5.adb
+ (Expand_N_Assignment_Statement): When assigning to an Ada2012
+ saooaaat, update its associated Extra_Accessibility object (if
+ it has one). This includes an accessibility check.
+ * exp_ch6.adb (Add_Call_By_Copy_Code): When parameter copy-back updates
+ a saooaaat, update its Extra_Accessibility object too (if it
+ has one).
+ (Expand_Call): Replace a couple of calls to Type_Access_Level
+ with calls to Dynamic_Access_Level to handle cases where
+ passing a literal (any literal) is incorrect.
+ * sem_attr.adb (Resolve_Attribute): Handle the static accessibility
+ checks associated with "Saooaat := Some_Object'Access;"; this must
+ be rejected if Some_Object is declared in a more nested scope
+ than Saooaat.
+ * sem_ch5.adb (Analyze_Assignment): Force accessibility checking for an
+ assignment to a saooaaat even if Is_Local_Anonymous_Access
+ returns False for its type (indicating a 2012-style saooaaat).
+ * sem_ch8.adb
+ (Analyze_Object_Renaming): Replace a call to Init_Size_Align
+ (which is only appropriate for objects, not types) with a call
+ of Init_Object_Size_Align in order to avoid trashing the
+ Extra_Accessibility attribute of a rename (the two attributes
+ share storage).
+ * sem_res.adb
+ (Valid_Conversion) Replace six calls to Type_Access_Level with
+ calls to Deepest_Type_Access_Level. This is a bit tricky. For an
+ Ada2012 non-library-level saooaaat, the former returns library level
+ while the latter returns the (static) accessibility level of the
+ saooaaat. A type conversion to the anonymous type of a saooaaat
+ can only occur as part of an assignment to the saooaaat, so we
+ know that such a conversion must be in a lhs context, so Deepest
+ yields the result that we need. If such a conversion could occur,
+ say, as the operand of an equality operator, then this might not
+ be right. Also add a test so that static accessibilty checks are
+ performed for converting to a saooaaat's type even if
+ Is_Local_Anonymous_Access yields False for the type.
+
+2011-08-30 Javier Miranda <miranda@adacore.com>
+
+ * sem_disp.adb (Check_Dispatching_Operation): Complete condition that
+ controls generation of a warning associated with late declaration of
+ dispatching functions. Required to avoid generating spurious
+ warnings.
+
+2011-08-30 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_ch6.adb (Check_Return_Subtype_Indication): Issue error if the
+ return object has an anonymous access type and the function's type is
+ a named access type.
+ * sem_ch8.adb (Analyze_Object_Renaming): Suppress error about renaming
+ conversions on implicit conversions, since such conversions can occur
+ for anonymous access cases due to expansion. Issue error for attempt
+ to rename an anonymous expression as an object of a named access type.
+ * sem_res.ads (Valid_Conversion): Add defaulted parameter Report_Errs,
+ to indicate whether this function should report errors on invalid
+ conversions.
+ * sem_res.adb (Resolve): For Ada 2012, in the case where the type of
+ the expression is of an anonymous access type and the expected type is
+ a named general access type, rewrite the expression as a type
+ conversion, unless this is an expression of a membership test.
+ (Valid_Conversion.Error_Msg_N): New procedure that conditions the
+ calling of Error_Msg_N on new formal Report_Errs.
+ (Valid_Conversion.Error_Msg_NE): New procedure that conditions the
+ calling of Error_Msg_NE on new formal Report_Errs.
+ (Valid_Conversion): Move declaration of this function to the package
+ spec, to allow calls from membership test processing. For Ada 2012,
+ enforce legality restrictions on implicit conversions of anonymous
+ access values to general access types, disallowing such conversions in
+ cases where the expression has a dynamic accessibility level (access
+ parameters, stand-alone anonymous access objects, or a component of a
+ dereference of one of the first two cases).
+ * sem_type.adb (Covers): For Ada 2012, allow an anonymous access type
+ in the context of a named general access expected type.
+ * exp_ch4.adb Add with and use of Exp_Ch2.
+ (Expand_N_In): Add processing for membership tests applied to
+ expressions of an anonymous access type. First, Valid_Conversion is
+ called to check whether the test is statically False, and then the
+ conversion is expanded to test that the expression's accessibility
+ level is no deeper than that of the tested type. In the case of
+ anonymous access-to-tagged types, a tagged membership test is applied
+ as well.
+ (Tagged_Membership): Extend to handle access type cases, applying the
+ test to the designated types.
+ * exp_ch6.adb (Expand_Call): When creating an extra actual for an
+ accessibility level, and the actual is a 'Access applied to a current
+ instance, pass the accessibility level of the type of the current
+ instance rather than applying Object_Access_Level to the prefix. Add a
+ ??? comment, since this level isn't quite right either (will eventually
+ need to pass an implicit level parameter to init procs).
+
+2011-08-30 Bob Duff <duff@adacore.com>
+
+ * s-taskin.ads: Minor comment fix.
+
+2011-08-30 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Check_Parameterless_Call): If the node is a selected
+ component and the selector is a dispatching operation, check if it is
+ a prefixed call before rewriting as a parameterless function call.
+
+2011-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc-interface/Makefile.in (../stamp-gnatlib1-$(RTSDIR)): Copy
+ tsystem.h into $(RTSDIR) instead of rts.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
+ reformatting.
+ * gcc-interface/Make-lang.in: Update dependencies.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * alfa.ads (Name_Of_Heap_Variable): New constant name.
+ * lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
+ table to hold dereferences.
+ (Add_ALFA_Xrefs): Take into account dereferences as special
+ reads/writes to the variable "HEAP".
+ (Enclosing_Subprogram_Or_Package): Move subprogram here.
+ (Generate_Dereference): New procedure to store a read/write dereferencew
+ in the table Drefs.
+ * put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
+ the special "HEAP" var.
+ * sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
+ in ALFA mode.
+ * sem_util.adb (Note_Possible_Modification): Store write dereference
+ in ALFA mode.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch3.adb (Freeze_Type): Generate an accessibility check which
+ ensures that the level of the subpool access type is not deeper than
+ that of the pool object.
+ * sem_util.adb (Object_Access_Level): Expand to handle defining
+ identifiers.
+ * sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
+ subpool handle name of a rewritten allocator.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
+ values, we generate multiple triples of parameters in the TypeCode.
+ Bump Choice_Index for each such triple so that a subsequent default
+ choice is associated with the correct index in the typecode.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * a-cdlili.adb (Iterate): Initialize properly an iterator over a null
+ container.
+ (First, Last): Handle properly an iterator over a null container.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
+ processing if we run across a node with no Scope. This can happen if
+ we're with-ing an library-level instance, and that instance got errors
+ that caused "instantiation abandoned".
+ * sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
+ an exception instead of using Assert, so it won't go into an infinite
+ loop, even when assertions are turned off.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * a-coorse.adb: Proper handling of empty ordered sets.
+
+2011-08-29 Johannes Kanig <kanig@adacore.com>
+
+ * debug.adb: Add comments.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * a-except.adb, a-except-2005.adb: Minor comment rewording and
+ reformatting.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * sem_ch3.adb (Array_Type_Declaration): Remove insertion of
+ declaration for Itypes in Alfa mode.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-cdlili.ads, a-coinve.ads, a-coorma.adb, a-coorma.ads, s-tassta.adb,
+ a-cborma.adb, a-cborma.ads, a-cohama.ads, a-coorse.ads, a-cbhama.ads,
+ a-cborse.ads, a-cobove.adb, a-cobove.ads, a-cbhase.ads: Minor
+ reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * exp_ch7.adb, exp_ch7.ads (Build_Exception_Handler): Move its spec to
+ package spec.
+ * exp_intr.adb (Expand_Unc_Deallocation): Use Build_Exception_Handler.
+ * a-except.adb, a-except-2005.adb (Rcheck_22): Do not defer aborts
+ while raising PE.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-cbhama.adb, a-cbhama.ads: Minor reformatting.
+
+2011-08-29 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
+ renamings of formal subprograms when the actual for a formal type is
+ class-wide.
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
+ to Target.
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
+ components of record type.
+ * a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
+ to Target.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * a-cbhama.adb, a-cbhama.ads, a-cborma.adb, a-cborma.ads, a-cobove.adb,
+ a-cobove.ads, a-coorma.adb, a-coorma.ads: Add iterator machinery to
+ container packages.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
+ reformatting.
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
+ components of record type.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
+ by the termination handler.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
+ created in Alfa mode, instead of inserting artificial declarations of
+ non-Itypes in the tree.
+ * sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
+ know if an Itype has a corresponding declaration, as defined in
+ itypes.ads.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * gnat1drv.adb: Minor rewrite.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * s-tasuti.adb (Make_Passive): Work around race condition in
+ Make_Independent, which can cause Wait_Count to be zero. So instead of
+ asserting that Wait_Count > 0, and then decrementing it, decrement it
+ only if Wait_Count > 0.
+ * s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
+ should be nonnegative, so declare them Natural instead of Integer.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
+ sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
+ a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
+ a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
+ exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
+
+2011-08-29 Vadim Godunko <godunko@adacore.com>
+
+ * s-parint.ads: Minor comment clarification.
+
+2011-08-29 Vincent Celier <celier@adacore.com>
+
+ * prj.adb (Initialize): Make sure that new reserved words after Ada 95
+ may be used as identifiers.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * a-coinho.ads: Minor reformating.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
+ container of a derived type.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,
+ a-ciorse.adb, a-ciorse.ads: Add iterator machinery to containers.
+
+2011-08-29 Pascal Obry <obry@adacore.com>
+
+ * exp_disp.adb: Minor comment fix.
+ (Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
+ to avoid warnings when compiling with -Wall.
+ (Make_Disp_Conditional_Select_Body): Likewise.
+ (Make_Disp_Timed_Select_Body): Likewise.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
+ an entity name, generate reference for it.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
+ iterator form.
+ * sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
+ the class-wide type.
+ * sem_ch5.adb: Move some rewriting to the expander, where it belongs.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Check_Constrained_Object): Do not create an actual
+ subtype for an object whose type is an unconstrained union.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
+ is allowed in a component definition, by AI95-406.
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * a-except-2005.adb: Alphabetize all routines.
+ (Triggered_By_Abort): New routine.
+ * a-except-2005.ads (Triggered_By_Abort): New routine.
+ * a-except.adb Alphabetize all routines.
+ (Triggered_By_Abort): New routine.
+ * a-except.ads (Triggered_By_Abort): New routine.
+ * exp_ch7.adb: Update all comments involving the detection of aborts in
+ finalization code.
+ (Build_Object_Declarations): Do not generate code to detect the
+ presence of an abort at the start of finalization code, use a runtime
+ routine istead.
+ * rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
+ RE_Unit_Table.
+ * sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
+ allocate a task on a subpool.
+ * s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
+ The flag disables all actions related to the maintenance of
+ Finalize_Address_Table when subpools are not in use.
+ (Allocate_Any_Controlled): Signal the machinery that subpools are in
+ use.
+ (Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
+ performs costly task locking when subpools are not in use.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
+ types and dispatching calls in Alfa mode.
+ * lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
+ correspondance between body and spec scopes, to reuse utility functions
+ (Traverse_Declarations_Or_Statements): Protect access to body for stub
+ by testing the presence of the library unit for the body
+ * sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
+ mode the expansion of accept statements is skipped
+ * sem_util.adb, sem_util.ads (Unique_Entity): New function returning
+ the unique entity corresponding to the one returned by
+ Unique_Defining_Entity applied to the enclosing declaration of the
+ argument.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
+ gdb when x is not a node (it can be a node list, name_id, etc). pp is
+ an alias for pn. ppp is an alias for pt.
+
+2011-08-29 Javier Miranda <miranda@adacore.com>
+
+ * exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
+ aggregate to take a consistent decision on the need to convert into
+ assignments aggregates that initialize constant objects.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch4.adb (Expand_Allocator_Expression): Add a call to
+ Build_Allocate_Deallocate_Proc in order to handle allocation of
+ non-controlled objects on subpools.
+ * impunit.adb: Remove s-finmas and s-spsufi since they were never meant
+ to be end-user visible.
+ * s-finmas.adb: Add with and use clause for System.HTable.
+ Add an instantiation of Simple_HTable which provides a mapping between
+ the address of a controlled object and the corresponding
+ Finalize_Address used to clean up the object. The table is used when a
+ master is operating in heterogeneous mode.
+ (Attach): Explain why the input node is not verified on being already
+ attached.
+ (Delete_Finalize_Address): New routine.
+ (Detach): Add pragma Assert which ensures that a node is already
+ attached.
+ (Finalize): Add local variable Cleanup. Rewrite the iteration scheme
+ since nodes are no longer removed on traversal. Explain why node
+ detachment is undesirable in this case.
+ (Get_Finalize_Address): New routine.
+ (Hash): New routine.
+ (Is_Empty_List): Removed.
+ (pm): Renamed to Print_Master. Add output for discriminant
+ Is_Homogeneous.
+ Comment reformatting.
+ (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
+ * s-finmas.ads: Various comments additions / improvements.
+ Type Finalization_Master has a discriminant which determines the mode of
+ operation.
+ (Delete_Finalize_Address): New routine.
+ (Get_Finalize_Address): New routine.
+ (pm): Renamed to Print_Master.
+ (Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
+ * s-stposu.adb: Add with clause for System.Address_Image; Add with and
+ use clause for System.IO.
+ (Allocate_Any_Controlled): Add machinery to set TSS primitive
+ Finalize_Address depending on the mode of allocation and the mode of
+ the master.
+ (Deallocate_Any_Controlled): Remove the relation pair object -
+ Finalize_Address regardless of the master mode. Add comment explaining
+ the reason.
+ (Detach): Ensure that fields Prev and Next are null after detachment.
+ (Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
+ scheme to check whether the list of subpools is empty. There is no
+ longer need to store the next subpool or advance the current pointer.
+ (Is_Empty_List): New routine.
+ (Print_Pool): New routine.
+ (Print_Subpool): New routine.
+ * s-stposu.ads: Various comments additions / improvements.
+ Field Master of type Root_Subpool is now a heterogeneous collection.
+ (Print_Pool): New routine.
+ (Print_Subpool): New routine.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
+ forms, using aspects of container types.
+ * sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
+ Has_Implicit_Dereference flags, that may be set on the partial view.
+ * sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
+ container type with an indexing aspect.
+ (Analyze_Quantified_Expression): Analyze construct with expansion
+ disabled, because it will be rewritten as a loop during expansion.
+ (Try_Container_Indexing): The prefix itself may be a container type
+ with an indexing aspect, as with a vector of vectors.
+ * sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
+ the original doamin of iteration, for name capture.
+ (Analyze_Iterator_Specification): If the domain is an expression that
+ needs finalization, create a separate declaration for it.
+ For an iterator with "of" retrieve default iterator info from aspect of
+ container type. For "in" iterator, retrieve type of Iterate function.
+ * sem_ch13.adb (Check_Iterator_Function): Fix typo.
+ (Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
+ analysis, to prevent spurious errors about late attributes.
+ * sprint.adb: Handle quantified expression with either loop or iterator
+ specification.
+ * a-convec.ads, a-convec.adb: Iterate function returns a reversible
+ iterator.
+
+2011-08-29 Vincent Celier <celier@adacore.com>
+
+ * make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
+ Binder or Linker of the main project file.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
+ unit.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch9.adb: Partial revert of previous change for Alfa mode
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch11.adb: Minor expansion of comment.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
+ interpretation, set the type before resolving the operands, because
+ legality checks on an exponention operand need to know the type of the
+ context.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
+ cleanups on a master if the instance is within a generic unit.
+ Complement to the corresponding fix to inline.adb for K520-030.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
+ occurrence.
+ * exp_intr.adb: Minor comment fix.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
+ Delay_Required was used as an uninitialized variable.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-cdlili.adb, a-cdlili.ads, a-coinve.adb, a-coinve.ads,
+ sem_util.adb, sem_util.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb,
+ a-coorse.ads, aspects.ads, sem_ch8.adb: Minor reformatting.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * system-freebsd-x86_64.ads (Backend_Overflow_Checks): Set true True.
+ Remove unused variables.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb: Remove Build_Explicit_Dereference.
+ * sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
+ from sem_res.adb, used in analysis of additional constructs.
+ (Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
+ expansion of iterators.
+ (Is_Object_Reference): Recognize variables rewritten as explicit
+ dereferences in Ada2012.
+ * snames.ads-tmpl: Add Has_Element, Forward_Iterator,
+ Reversible_Iterator names, for expansion of Ada2012 iterators.
+ * aspects.ads, aspects.adb (Find_Aspect): Utility.
+ * a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
+ linked list container.
+ * a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
+ * a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
+ containers.
+
+2011-08-29 Vincent Celier <celier@adacore.com>
+
+ * make.adb (Gnatmake): Get the maximum number of simultaneous
+ compilation processes after the Builder switches has been scanned, as
+ there may include -jnn.
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
+ GNAT_DRIVER_COMMAND_LINE to 255.
+
+2011-08-29 Pascal Obry <obry@adacore.com>
+
+ * freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
+ reformatting and style fix (class attribute casing).
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch11.adb: Yet another case where expansion should be common
+ between CodePeer and Alfa.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch9.adb: Partial revert of previous change for Alfa mode.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (Matches_Limited_With_View): The limited views of an
+ incomplete type and its completion match.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch13.adb: Adjust previous change.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_prag.adb, prj.adb, sem_util.adb, sem_res.adb, gnat1drv.adb,
+ exp_ch4.adb, sem_ch8.adb: Minor code reorganization
+ Minor reformatting.
+
+2011-08-29 Emmanuel Briot <briot@adacore.com>
+
+ * make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
+ initialize aggregated projects.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
+ depth of candidates to resolve a potentially spurious ambiguity between
+ two visible subprograms.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * sem_prag.adb (Analyze_Pragma): Allow Test_Case pragma without
+ Requires/Ensures.
+ * sem_util.adb (Get_Ensures_From_Test_Case_Pragma,
+ Get_Requires_From_Test_Case_Pragma): Allow Test_Case pragma without
+ Requires/Ensures.
+
+2011-08-29 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat1drv.adb (Adjust_Global_Switches): Improve previous change.
+ Add comment.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * sem_res.adb: Minor reformatting.
+
+2011-08-29 Johannes Kanig <kanig@adacore.com>
+
+ * exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
+ mode.
+ * gnat1drv.adb (Adjust_Global_Switches): Set
+ Use_Expressions_With_Actions to False in ALFA mode.
+ * sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
+ ALFA mode.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
+ * exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
+ * gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
+ tagged types and dispatching calls in Alfa mode.
+
+2011-08-29 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
+ we do not report an error on an Empty node.
+
+2011-08-29 Geert Bosch <bosch@adacore.com>
+
+ * Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
+ a-nlrear.o and a-nurear.o.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * freeze.adb: Minor code reorganization.
+ Minor reformatting.
+ * sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
+ sem_ch6.adb: Minor reformatting
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * s-except.ads, s-except.adb: Provide dummy body.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * sem_warn.adb (Within_Postcondition): Take into account the case of
+ an Ensures component in a Test_Case.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
+ * rtsfind.ads (RTU_Id): Replaces System_Exceptions by
+ System_Exceptions_Debug
+ (RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
+ * a-except.adb: With and use System.Exceptions_Debug instead of
+ System.Exceptions.
+ * a-except-2005.adb: Likewise.
+ * s-assert.adb: Likewise.
+ * s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
+ * Makefile.rtl: Add s-excdeb. Adjust compilation rule.
+ * gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
+ s-excdeb. Update dependencies.
+ (GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
+ as these no longer need external libraries.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve_Op_Expon): Additional check to reject an
+ exponentiation operator on universal values in a context that requires
+ a fixed-point type.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
+ before calling notify_handled_exception.
+ * a-exextr.adb: Fix comment.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
+ Finalize_Address of the access type's finalization master.
+ (Expand_N_Allocator): Add code to set attribute Finalize_Address of the
+ access type's finalization master. Add a guard to prevent
+ Associated_Storage_Pool from being set on .NET/JVM.
+ * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
+ attribute Finalize_Address of the access type's finalization master.
+ * exp_ch7.adb (Make_Finalize_Address_Call): New routine.
+ * exp_ch7.ads (Make_Finalize_Address_Call): New routine.
+ * rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
+ RE_Unit_Table.
+ * s-finmas.adb: Add with clause for System.Address_Image. Add with and
+ use clause for System.IO
+ (Detach): Relax the assertion, to be reinstated later.
+ (Finalize): Rewrite the iteration loop to avoid pointer comparison.
+ Relax the assertion on Finalize_Address, to be reinstated later.
+ (Is_Empty_List): New routine.
+ (pm): New debug routine.
+ (Set_Finalize_Address): New routine.
+ * s-finmas.ads (pm): New debug routine.
+ (Set_Finalize_Address): New routine.
+ * s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
+ Remove convention C.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
+ (Initialize_TCB): Remove Exc_Stack_Ptr initialization.
+ (Finalize_TCB): Remove its finalization.
+ (Initialize): Remove assignment of GET_Exc_Stack_Addr
+ * s-soflin.adb (NT_Exc_Stack): Remove
+ (Get_Exc_Stack_Addr_NT): Likewise.
+ (Get_Exc_Stack_Addr_Soft): Likewise.
+ * s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
+ (Get_Exc_Stack_Addr): Likewise.
+ (Get_Exc_Stack_Addr_Soft): Likewise
+ * s-taspri-vms.ads (Exc_Stack_T): Remove.
+ (Exc_Stack_Ptr_T): Likewise.
+ (Private_Data): Remove Exc_Stack_Ptr component.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * raise-gcc.c (get_ip_from_context): New function. Factorize code.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
+
+2011-08-29 Geert Bosch <bosch@adacore.com>
+
+ * s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
+ L2_Norm, Swap_Column): New generic subprograms
+ * s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
+ L2_Norm, Swap_Column): Implement new subprograms in order to
+ eliminate dependency on BLAS and LAPACK libraries in
+ Ada.Numerics.Generic_Real_Arrays and eventually also the complex
+ version. Forward_Eliminate/Back_Substitute can be used to put a
+ matrix in row echelon or reduced row echelon form using partial
+ pivoting.
+ * a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
+ Swap_Column): Instantiate from System.Generic_Array_Operations.
+ ("*", "abs"): Implement by instantiation from Generic_Array_Operations.
+ (Sqrt): Local function for simple computation of square root without
+ adding dependencies on Generic_Elementary_Functions.
+ (Swap): New subprogram to exchange floating point numbers.
+ (Inverse): Reimplement using Jordan-Gauss elimination.
+ (Jacobi): New procedure implementing Jacobi's method for computation
+ of eigensystems, based on Rutishauser's implementation.
+ (L2_Norm): Implement directly using the inner product.
+ (Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
+ decreasing eigenvalue as required by the Ada RM.
+ (Swap_Column): New helper procedure for Sort_Eigensystem.
+ Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
+ Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
+ Sort_Eigensystems.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * put_scos.adb (Put_SCOs): Do not emit a newline for an empty
+ statements line.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * s-finmas.adb (Finalize): Check Finalize_Address of the master rather
+ than the current node.
+ * s-finmas.ads: Move field Finalize_Address from type FM_Node to
+ Finalization_Master. The list headers have two fields instead of three.
+ This should fix alignment issue but subpool allocations are now
+ unusable. Alphabetize subprograms.
+ * s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
+ the size of the header when converting the beginning of the object to
+ a FM_Node. Set the master's Finalize_Address attribute if not already
+ set.
+ (Deallocate_Any_Controlled): Use the offset rather than the size of the
+ header when converting the beginning of the object to a FM_Node.
+
+2011-08-29 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
+ reraise when compiling for CodePeer.
+
+2011-08-29 Arnaud Charlet <charlet@adacore.com>
+
+ * a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
+ now needed by a-convec.adb. Fix warning.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
+ processing of TSS routine Finalize_Address when compiling in
+ CodePeer_Mode.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
+ sem_warn.adb: Minor reformatting.
+
+2011-08-29 Emmanuel Briot <briot@adacore.com>
+
+ * prj-conf.adb (Get_Config_Switches): Also collect the list of
+ languages from aggregated projects.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
+ Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
+ Traverse_Package_Declaration, Traverse_Subprogram_Body,
+ Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
+ for stubs are traversed too when parameter is set
+ (Traverse_All_Compilation_Units): Traverse without going inside stubs
+ (Traverse_Declarations_Or_Statements): Do the special traversing for
+ stubs when required.
+ * sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
+ return subprogram or package body from stub.
+ (Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
+ stubs without prior subprogram decl.
+
+2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * gnat_ugn.texi: Fix typo.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
+ which accounts for size vs alignment issues and calculates the size of
+ the list header.
+ (Deallocate_Any_Controlled): Ditto.
+ (Nearest_Multiple_Rounded_Up): New routine.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
+ * a-exexda.adb (Set_Exception_C_Msg): Ditto.
+ (Set_Exception_Msg): Ditto.
+ * a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
+ Private_Data.
+ * a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
+ Use Save_Occurrence instead of Save_Occurrence_No_Private.
+ (Raise_With_Msg): Remove Cleanup_Flag.
+ * a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
+ Clean_Flag and Private_Data components.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
+ in CodePeer mode.
+ * sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
+ of an explicitly declared type, so that the base types of the original
+ type and this generated type are the same, and a "type" (not a subtype
+ like previously).
+ * errout.adb (Special_Msg_Delete): Do not issue messages "Size too
+ small" in Alfa mode, like in CodePeer mode.
+ * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
+ clauses in Alfa mode.
+
+2011-08-29 Javier Miranda <miranda@adacore.com>
+
+ * exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
+ function to the package spec.
+ * sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
+ internally generated bodies of null procedures locate the internally
+ generated spec enforcing mode conformance.
+ (Is_Interface_Conformant): Ensure that the controlling formal of the
+ primitives match.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
+ reject the pragma if it appears to apply to a formal subprogram.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
+ inner expression, to prevent double evaluation.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr.adb (Propagate_Exception): Remove all the parameters as
+ they were unused.
+ * a-exexpr-gcc.adb (Propagate_Exception): Ditto.
+ * a-except-2005.adb (Propagate_Exception): Adjust spec.
+ (Raise_Current_Excep): Adjust call.
+ (Raise_From_Signal_Handler): Call now simply call Raise_Current_Excep.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * exp_disp.adb: Minor reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr.adb (Setup_Exception): Removed.
+ * a-exexpr-gcc.adb (Setup_Exception): Removed.
+ * a-except.adb (Exception_Propagation): Removed.
+ * a-except-2005.adb (Setup_Exception): Removed.
+ (Reraise): Remove call to Setup_Exception.
+ (Reraise_Occurrence): Ditto.
+ (Reraise_Occurrence_Always): Ditto.
+ (Reraise_Occurrence_No_Defer): Ditto.
+ (Transfer_Occurrence): Ditto.
+ * a-exexda.adb (Set_Exception_C_Msg): Remove call to Setup_Exception.
+ (Set_Exception_Msg): Ditto.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-convec.adb, exp_disp.adb: Minor reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
+
+2011-08-29 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
+ Exception_Handlers to No_List instead of Empty_List in the case where
+ there are no handlers.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * gcc-interface/gigi.h (enum standard_datatypes): Add
+ ADT_reraise_zcx_decl
+ (reraise_zcx_decl): New macro.
+ * gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
+ (gigi): Set reraise_zcx_decl.
+ (Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
+ (gnat_to_gnu): Handle N_Raise_Statement.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch6.adb, exp_ch3.adb, s-stposu.adb, a-undesu.ads,
+ a-undesu.adb: Minor reformatting.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_disp.adb (Check_Premature_Freezing): When building a dispatch
+ table, accept an unfrozen untagged component if it is an actual for a
+ formal incomplete type.
+ * a-convec.ads, a-convec.adb: Instantiate Ada.Iterator_Interfaces to
+ provide new iterator forms over vectors.
+ Introduce type Iterator in package body to implement operations of
+ Reversible_Iterator interface.
+ * a-iteint.ads: Make package pure so it is usable with new container
+ packages, that are categorized Remote_Types.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-exexpr-gcc.adb, a-synbar.adb, sem_ch13.adb: Minor reformatting.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * sem_aggr.adb (Resolve_Aggr_Expr): Call this routine even in the case
+ of <>, because this is the routine that checks for dimensionality
+ errors (for example, for a two-dimensional array, (others => <>) should
+ be (others => (others => <>)).
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * impunit.adb: Add new run-time units.
+ * freeze.adb, exp_ch7.ads, exp_ch7.adb, exp_util.ads, exp_util.adb,
+ s-stposu.ads, s-stposu.adb: Code clean up.
+ Handle protected class-wide or task class-wide types
+ Handle C/C++/CIL/Java types.
+ * s-spsufi.adb, s-spsufi.ads: New files.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * sem_ch13.adb (Analyze_Aspect_Specifications): Reject test-case on
+ library-level subprogram.
+ * sem_prag.adb (Check_Test_Case): Stricter rules for test-case
+ placement.
+ (Analyze_Pragma): Change name "Normal" for "Nominal" in test-case
+ component.
+ * snames.ads-tmpl: Change name "Normal" for "Nominal" in test-case
+ component.
+ * gnat_rm.texi: Update doc for Test_Case pragma.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr-gcc.adb (Unwind_Exception): Remove default value, made it
+ convention C.
+ (GCC_Exception_Access): New type.
+ (Unwind_DeleteException): New imported procedure
+ (Foreign_Exception): Import it.
+ (GNAT_GCC_Exception): Simply have the occurrence inside.
+ (To_GCC_Exception): New function.
+ (To_GNAT_GCC_Exception): New function.
+ (GNAT_GCC_Exception_Cleanup): New procedure..
+ (Propagate_GCC_Exception): New procedure.
+ (Reraise_GCC_Exception): New procedure.
+ (Setup_Current_Excep): New procedure.
+ (CleanupUnwind_Handler): Change type of UW_Exception parameter.
+ (Unwind_RaiseException): Ditto.
+ (Unwind_ForcedUnwind): Ditto.
+ (Remove): Removed.
+ (Begin_Handler): Change type of parameter.
+ (End_Handler): Ditto. Now delete the exception if still present.
+ (Setup_Key): Removed.
+ (Is_Setup_And_Not_Propagated): Removed.
+ (Set_Setup_And_Not_Propagated): Ditto.
+ (Clear_Setup_And_Not_Propagated): Ditto.
+ (Save_Occurrence_And_Private): Ditto.
+ (EID_For): Add 'not null' constraint on parameter.
+ (Setup_Exception): Does nothing.
+ (Propagate_Exception): Simplified.
+ * exp_ch11.adb (Expand_N_Raise_Statement): In back-end exception model,
+ re-raise is not expanded anymore.
+ * s-except.ads (Foreign_Exception): New exception - placeholder for
+ non Ada exceptions.
+ * raise-gcc.c (__gnat_setup_current_excep): Declare
+ (CXX_EXCEPTION_CLASS): Define (not yet used)
+ (GNAT_EXCEPTION_CLASS): Define.
+ (is_handled_by): Handle foreign exceptions.
+ (PERSONALITY_FUNCTION): Call __gnat_setup_current_excep.
+
+2011-08-29 Jose Ruiz <ruiz@adacore.com>
+
+ * a-synbar.adb (Synchronous_Barrier): Some additional clarification.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * a-synbar-posix.adb: Minor reformatting.
+
+2011-08-29 Jose Ruiz <ruiz@adacore.com>
+
+ * a-exetim-posix.adb, a-exetim-mingw.adb, a-exetim-mingw.ads,
+ a-exetim-default.ads (Interrupt_Clocks_Supported,
+ Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
+ definitions to be compliant with AI-0171. The target systems do not
+ support separate account for the execution time of interrupt handlers.
+
+2011-08-29 Jose Ruiz <ruiz@adacore.com>
+
+ * a-synbar.adb (Wait): Change the order of evaluation of the conditions
+ in the barrier to put first the easiest to evaluate (and the one which
+ will be True more often). More efficient.
+
+2011-08-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * s-atocou-x86.adb: Fix constraint in machine code insertion.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * aspects.ads, aspects.adb: Add new aspects for various pragmas and
+ attributes that are now aspects, as specified by AI05-0229-1.
+ * sem_ch13.adb (Analyze_Aspect_Specifications,
+ Check_Aspect_At_Freeze_Point): Analyze the new aspects. Turn them into
+ pragmas or attribute references, as appropriate.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-synbar.ads, a-synbar.adb, a-synbar-posix.adb,
+ a-synbar-posix.ads: Minor reformatting.
+
+2011-08-29 Yannick Moy <moy@adacore.com>
+
+ * snames.ads-tmpl: Add name Force.
+
+2011-08-29 Pascal Obry <obry@adacore.com>
+
+ * prj-nmsc.adb: Minor reformatting.
+
+2011-08-29 Jose Ruiz <ruiz@adacore.com>
+
+ * a-exetim.ads (Interrupt_Clocks_Supported,
+ Separate_Interrupt_Clocks_Supported, Clock_For_Interrupts): Add these
+ definitions to be compliant with AI-0171.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * a-ngelfu.adb: Add comments.
+
+2011-08-29 Geert Bosch <bosch@adacore.com>
+
+ * a-ngelfu.adb (Tan): Do not raise Constraint_Error if the argument is
+ the closest machine number to Pi / 2.0.
+
+2011-08-29 Jose Ruiz <ruiz@adacore.com>
+
+ * impunit.adb (Non_Imp_File_Names_12): Add a-synbar for new Ada 2012
+ package Ada.Synchronous_Barriers.
+ * a-synbar.ads, a-synbar.adb, a-synbar-posix.ads, a-synbar-posix.adb:
+ Add new specs and bodies for Ada.Synchronous_Barriers. There is a
+ default implementation using protected objects and another one
+ a-synbar-posix using POSIX barriers as the underlying support.
+ * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for Linux (x86,
+ x86_64, ia64) and MIPS IRIX): Use the a-synbar-posix implementation of
+ Ada.Synchronous_Barriers which uses POSIX barriers (more efficient).
+ Clean up dependencies.
+ * Makefile.rtl (GNATRTL_TASKING_OBJS): Add a-synbar.o
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch7.adb, make.adb, sem_res.adb, exp_intr.adb,
+ exp_dist.adb: Minor code reorganization.
+ Minor reformatting.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * sem_cat.adb (Validate_RACW_Primitive): The return type of an RACW
+ primitive operation must support external streaming if it is not a
+ controlling access result.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * sinfo.ads, sem_ch7.adb: Minor reformatting.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * sem_ch4.adb (Analyze_Allocator): Check No_Nested_Finalization
+ restriction on allocators, as required by AI05-0013-1.
+ * restrict.ads: Minor comment fix.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr.adb, a-except-2005.ads (Jmpbuf_Address): Move to a-exexpr.adb
+ (To_Jmpbuf_Address): Ditto
+ (builtin_longjmp): Ditto
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * sem_res.adb: Minor reformatting.
+
+2011-08-29 Vincent Celier <celier@adacore.com>
+
+ * make.adb (Gnatmake): Move special processing for VM targets after the
+ call to Get_Target_Parameters.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * sem_ch12.adb, par-ch12.adb: Minor reformatting.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_res.adb (Resolve_Allocator): Implement Ada2012-B052. Detect cases
+ where an anonymous access discriminant of a limited designated type
+ appears in a non-immutably limited discriminated type and issue an
+ error message. Add local variable Desig_T and replace all occurrences
+ of Designated_Type.
+
+2011-08-29 Jose Ruiz <ruiz@adacore.com>
+
+ * a-rttiev.adb (Set_Handler): Update comment to indicate that our
+ implementation is compliant to RM D.15(15/2) after the modification
+ imposed by AI05-0094-1 (binding interpretation).
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch9.adb, s-tasren.adb, exp_sel.adb, exp_sel.ads, exp_ch11.adb,
+ s-interr-hwint.adb, s-tpobop.adb, sem_ch13.adb: Minor reformatting.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * par-endh.adb (Check_End): For an END where it is mandatory to repeat
+ the scope name, do not report a missing label as a style violation (it
+ will be diagnosed as an illegality).
+ * exp_dist.adb (Add_Params_For_Variant_Components): Fix handling of
+ variant records: Get_Enum_Lit_From_Pos already returns a usage
+ occurrence of the literal, no need to use New_Occurrence_Of. Set Etype
+ on Expr in Integer_Literal case so that it can be used by
+ Build_To_Any_Call.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * exp_sel.ads (Build_Abort_BLock_Handler): New function spec.
+ Adjust comment.
+ * exp_sel.adb (Build_Abort_Block): Use Build_Abort_Block_Handler.
+ (Build_Abort_Block_Handler): New function to build an Abort_Signal
+ exception handler.
+ * exp_ch9.adb (Expand_N_Asynchronous_Select): Call
+ Build_Abort_Block_Handler to build the exception handler. Do not
+ undefer aborts for the Abort_Signal exception handler if back-end
+ exception mechanism.
+ * exp_ch11.adb (Expand_Exception_Handlers): Do not undefer aborts if
+ back_end exceptions for all others and abort_signal.
+ * s-except.ads (ZCX_By_Default): New constant.
+ * a-except-2005.adb (Raise_Exception): Do not defer abort if ZCX.
+ (Raise_Exception_Always): Ditto.
+ (Raise_From_Signal_Handler): Ditto.
+ (Raise_With_Location_And_Msg): Ditto.
+ (Raise_With_Msg): Ditto.
+ (Reraise): Ditto.
+ (Reraise_Occurence): Ditto.
+ (Reraise_Occurrence_Always): Ditto.
+ * s-tasren.adb (Exceptional_Complete_Rendezvous): Defer aborts if ZCX.
+ * s-tpobop.adb: (Exceptional_Complete_Body): Undefer abort if ZCX.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * sem_util.ads (Get_Enum_Lit_From_Pos): Clarify documentation.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * snames.adb-tmpl, sem_ch13.adb: Minor reformatting
+ Minor code reorganization.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * usage.adb (-gnatwy): Fix documentation: this switch applies to Ada
+ 2012, not just Ada 2005.
+
+2011-08-29 Vincent Celier <celier@adacore.com>
+
+ * gnat_ugn.texi: Indicate that when the compiler is called by gnatmake
+ with a project file or with gprbuid, if -gnatep= is specified, the
+ builder may need to be invoked with -x.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr-gcc.adb: Minor comment fix.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch8.adb: Minor reformatting.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * par-ch2.adb (P_Identifier): Warn that "some" is reserved in Ada 2012.
+ * par-ch4.adb (P_Quantified_Expression): Remove unnecessary code for
+ treating "some" as unreserved in earlier Ada versions. This is now
+ handled in Snames.Is_Keyword_Name. Parse "for some" using Tok_Some,
+ rather than Name_Some, since Tok_Some is now recognized as reserved.
+ * scans.adb (Initialize_Ada_Keywords): Handle Tok_Some like any other
+ reserved word.
+ * scans.ads: Minor comment fixes.
+ * snames.adb-tmpl (Is_Keyword_Name): Handle Ada 2012 reserved words as
+ for other language versions.
+ * scn.adb (Scan_Reserved_Identifier): Remove unnecessary code for
+ treating "some" as unreserved in earlier Ada versions. This is now
+ handled in Snames.Is_Keyword_Name.
+ * par-ch3.adb (P_Defining_Identifier): Warn that "some" is reserved in
+ Ada 2012.
+ (P_Subtype_Mark_Resync): Remove unnecessary code for treating "some" as
+ unreserved in earlier Ada versions. This is now handled in
+ Snames.Is_Keyword_Name.
+ * snames.ads-tmpl (Ada_2012_Reserved_Words): Handle Ada 2012 reserved
+ words as for other language versions.
+ * gnat_ugn.texi (-gnatwy): Fix documentation: this switch applies to
+ Ada 2012, not just Ada 2005.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch13.adb: Additional semantic checks for aspects involved in
+ iterators.
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-comutr.ads, a-comutr.adb, a-cimutr.ads, a-cimutr.adb,
+ a-cbmutr.ads, a-cbmutr.adb (Find_In_Subtree): Remove superfluous
+ Container parameter.
+ (Ancestor_Find): ditto.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * par-endh.adb: Minor reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * a-exexpr-gcc.adb (Unwind_Action) Rewrite as an integer with constants.
+ (GNAT_GCC_Exception): Remove N_Cleanups_To_Trigger component.
+ (Adjust_N_CLeanups_For): Remove.
+ (CleanupUnwind_Handler): Call Unhandled_Exception_Terminate when end of
+ stack is reached.
+ (Propgate_Exception): Adjust.
+ * raise-gcc.c: Add a few static/const.
+ (Adjust_N_Cleanups_For): Remove declaration.
+ (PERSONALITY_FUNCTION): Remove code dealing with N_Cleanups_To_Trigger.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb: Use type of function return when rewriting as object
+ declaration.
+
+2011-08-29 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_type.adb: Minor reformatting.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * makeutl.adb: Minor reformatting.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Analyze_Object_Renaming): If the renamed object is a
+ function call of a limited type, the expansion of the renaming is
+ complicated by the presence of various temporaries and subtypes that
+ capture constraints of the renamed object.
+ Rewrite node as an object declaration, whose expansion is simpler.
+ Given that the object is limited there is no copy involved and no
+ performance hit.
+
+2011-08-29 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch5.adb, sinfo.ads, make.adb, s-pooglo.adb, sem_ch12.adb,
+ freeze.adb, sem_ch6.adb, par-ch12.adb: Minor reformatting.
+
+2011-08-29 Tristan Gingold <gingold@adacore.com>
+
+ * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads,
+ system-tru64.ads, system-irix-n32.ads, system-vxworks-arm.ads,
+ system-linux-hppa.ads, system-linux-s390.ads,
+ system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads,
+ system-vms_64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads,
+ system-aix64.ads, system-lynxos-ppc.ads, system-linux-sh4.ads,
+ system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads,
+ system-vxworks-ppc.ads, system-hpux.ads, system-darwin-ppc.ads,
+ system-solaris-sparc.ads, system-lynxos-x86.ads,
+ system-vxworks-m68k.ads, system-hpux-ia64.ads, system-irix-o32.ads,
+ system-solaris-x86_64.ads, system-mingw-x86_64.ads,
+ system-vxworks-mips.ads, system-linux-sparc.ads, system-vms-ia64.ads,
+ system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads,
+ system-vxworks-x86.ads: Remove GCC_ZCX_Support
+ * s-taprop-posix.adb, s-taprop-irix.adb, s-taprop-vxworks.adb,
+ s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb: Ditto.
+ * opt.ads: Adjust comment.
+ * targparm.ads, targparm.adb: Remove GCC_ZCX_Support_On_Target.
+ * gnat1drv.adb: Do not check for GCC_ZCX_Support_On_Target.
+ * system.ads: Move GCC_ZCX_Support to obsolete entries.
+
+2011-08-29 Emmanuel Briot <briot@adacore.com>
+
+ * makeutl.adb (Do_Complete): Resolve symbolic links when a relative
+ file name is specified on the gnatmake or gprbuild command line, and
+ before we search for that file in the project.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_type.adb (Within_Instance): New predicate in Collect_Interps,
+ used to determine whether a possible interpretation for an overloadable
+ entity is declared within the current instantiation and should be
+ included in the candidate set.
+
+2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
+
+ * gnat_rm.texi, gnat_ugn.texi: Clean ups.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve_Actuals): Use base type to determine whether an
+ access subtype is access_to_subprogram, when applying checks for
+ RM 3.10.2 (27).
+
+2011-08-29 Matthew Heaney <heaney@adacore.com>
+
+ * a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Splice_Subtree): Only check
+ for sibling when common parent.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * get_scos.adb: Literals of Pragma_Id are pragma names prefixed with
+ "pragma_".
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Enable freeze actions
+ for the return type when in ASIS mode.
+
+2011-08-29 Vincent Celier <celier@adacore.com>
+
+ * make.adb (Gnatmake): Get the default search dirs, then the target
+ parameters after getting the Builder switches, as the Builder switches
+ may include --RTS= and that could change the default search dirs.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch7.adb (Make_Adjust_Call): Rewrite to mimic the structure of
+ Make_Final_Call. Move the processing for class-wide types before the
+ processing for derivations from [Limited_]Controlled.
+ (Make_Final_Call): Move the processing for class-wide types before the
+ processing for derivations from [Limited_]Controlled.
+ * s-stposu.adb (Allocate_Any_Controlled): Correct the membership check.
+ Add code to account for alignments larger than the list header. Add a
+ comment illustrating the structure of the allocated object + padding +
+ header.
+ (Deallocate_Any_Controlled): Add code to account for alignments larger
+ than the list header.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * sinfo.ads, sinfo.adb: New node kind
+ N_Formal_Incomplete_Type_Definition, related flags.
+ par-ch12.adb (P_Formal_Type_Declaration, G_Formal_Type_Definition):
+ Parse formal incomplete types.
+ * sem.adb (Analyze): Formal_Incomplete_Type_Definitions are handled in
+ sem_ch12.
+ * sem_ch7.adb (Analyze_Package_Specification, Unit_Requires_Body):
+ Formal incomplete types do not need completion.
+ * sem_ch12.adb (Analyze_Formal_Incomplete_Type,
+ Validate_Incomplete_Type_Instance): New procedures to handle formal
+ incomplete types.
+ * freeze.adb (Freeze_Entity): Do not freeze the subtype of an actual
+ that corresponds to a formal incomplete type.
+ * sprint.adb: Handle formal incomplete type declarations.
+ * exp_util.adb (Insert_Actions): An incomplete_type_definition is not
+ an insertion point.
+
+2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * a-fihema.ads, a-fihema.adb: Unit removed.
+ * a-undesu.ads, a-undesu.adb: New unit implementing
+ Ada.Unchecked_Deallocate_Subpool.
+ * einfo.adb: Remove Associated_Collection from the node usage.
+ Add Finalization_Master to the node usage.
+ (Associated_Collection): Removed.
+ (Finalization_Master): New routine.
+ (Set_Associated_Collection): Removed.
+ (Set_Finalization_Master): New routine.
+ (Write_Field23_Name): Remove Associated_Collection from the output. Add
+ Finalization_Master to the output.
+ * einfo.ads: Remove attribute Associated_Collection and its uses in
+ entities.
+ Add new attribute Finalization_Master along with its uses in entitites.
+ (Associated_Collection): Removed along with its pragma import.
+ (Finalization_Master): New routine along with a pragma import.
+ (Set_Associated_Collection): Removed along with its pragma import.
+ (Set_Finalization_Master): New routine along with a pragma import.
+ * exp_ch3.adb (Expand_Freeze_Array_Type): Replace call to
+ Build_Finalization_Collection with Build_Finalization_Master.
+ (Expand_Freeze_Record_Type): Move the generation of Finalize_Address
+ before the bodies of the predefined routines. Add comment explaining
+ this. Replace call to Build_Finalization_Collection with
+ Build_Finalization_Master.
+ (Freeze_Type): Replace call to Build_Finalization_Collection with
+ Build_Finalization_Master.
+ (Make_Finalize_Address_Body): Comment reformatting.
+ (Make_Predefined_Primitive_Specs): Code reformatting.
+ (Stream_Operation_OK): Update comment mentioning finalization
+ collections. Replace RE_Finalization_Collection with
+ RE_Finalization_Master.
+ * exp_ch4.adb (Complete_Controlled_Allocation): Replace call to
+ Associated_Collection with Finalization_Master. Replace call to
+ Build_Finalization_Collection with Build_Finalization_Master.
+ (Expand_Allocator_Expression): Replace call to Associated_Collection
+ with Finalization_Master. Replace call to Set_Associated_Collection with
+ Set_Finalization_Master. Remove the generation of
+ Set_Finalize_Address_Ptr.
+ (Expand_N_Allocator): Replace call to Associated_Collection with
+ Finalization_Master. Remove the generation of Set_Finalize_Address_Ptr.
+ * exp_ch6.adb (Add_Collection_Actual_To_Build_In_Place_Call): Renamed to
+ Add_Finalization_Master_Actual_To_Build_In_Place_Call. Update the
+ comment on usage. Replace call to Needs_BIP_Collection with
+ Needs_BIP_Finalization_Master Remplace BIP_Collection with
+ BIP_Finalization_Master. Update all comments which mention finalization
+ collections. Replace Associated_Collection with
+ Finalization_Master. Replace Build_Finalization_Collection with
+ Build_Finalization_Master.
+ (BIP_Formal_Suffix): Update BIP_Collection's case.
+ (Build_Heap_Allocator): Update the related comment. Rename local
+ variable Collect to Fin_Mas_Id and update its occurrences. Update
+ comments which mention finalization collections. Replace
+ Set_Associated_Collection with Set_Finalization_Master.
+ (Expand_Call): Update the code which detects a special piece of library
+ code for .NET/JVM.
+ (Make_Build_In_Place_Call_In_Allocator): Replace the call to
+ Add_Collection_Actual_To_Build_In_Place_Call with
+ Add_Finalization_Master_Actual_To_Build_In_Place_Call. Remove the code
+ which generates a call to Make_Set_Finalize_Address_Ptr_Call.
+ (Make_Build_In_Place_Call_In_Anonymous_Context): Replace call to
+ Add_Collection_Actual_To_Build_In_Place_Call with
+ Add_Finalization_Master_Actual_To_Build_In_Place_Call.
+ (Make_Build_In_Place_Call_In_Assignment): Replace call to
+ Add_Collection_Actual_To_Build_In_Place_Call with
+ Add_Finalization_Master_Actual_To_Build_In_Place_Call.
+ (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
+ * exp_ch6.ads: Rename BIP_Collection to BIP_Finalization_Master.
+ (Needs_BIP_Collection): Renamed to Needs_BIP_Finalization_Master.
+ * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Update comment on usage.
+ Rename local variable Collect to Fin_Mas_Id and update its occurrences.
+ Replace call to Set_Associated_Collection with Set_Finalization_Master.
+ (Build_Finalization_Collection): Renamed to Build_Finalization_Master.
+ Replace the call to Associated_Collection with Finalization_Master.
+ Rename local variable Coll_Id to Fin_Mas_Id and update its occurrences.
+ Update the way finalization master names are generated. Update the
+ retrieval of the correct access type which will carry the pool and
+ master attributes.
+ (Make_Final_Call): Reimplement the way [Deep_]Finalize is retrieved.
+ (Make_Finalize_Address_Body): Abstract types do not need
+ Finalize_Address. Code reformatting.
+ (Make_Finalize_Address_Stmts): Update comment on usage.
+ (Make_Set_Finalize_Address_Ptr_Call): Removed.
+ (Process_Declarations): Update comments.
+ * exp_ch7.ads (Build_Finalization_Collection): Renamed to
+ Build_Finalization_Master. Update associated comment.
+ (Make_Set_Finalize_Address_Ptr_Call): Removed.
+ * exp_ch13.adb: Update comments which mention finalization collections.
+ (Expand_N_Free_Statement): Replace the call to Associated_Collection
+ with Finalization_Master.
+ * exp_util.adb (Build_Allocate_Deallocate_Proc): Reimplemented to
+ create calls to routines Allocate_Any_Controlled and
+ Deallocate_Any_Controlled.
+ (Find_Finalize_Address): New routine.
+ (Is_Allocate_Deallocate_Proc): Update the RTE entities used in the
+ comparison.
+ (Requires_Cleanup_Actions): Update the comment on freeze node
+ inspection.
+ * exp_util.ads: Remove comment on generated code for
+ Build_Allocate_Deallocate_Proc. The code is now quite complex and it
+ is better to simply look in the body.
+ * freeze.adb (Freeze_All): Update the comment of finalization
+ collections. Replace the call to Associated_Collection with
+ Finalization_Master. Replace the call to Build_Finalization_Collection
+ with Build_Finalization_Master.
+ * impunit.adb: Add a-undesu and s-stposu to the list of units.
+ * Makefile.rtl: Add files a-undesu, s-finmas and s-stposu. Remove file
+ a-fihema.
+ * rtsfind.adb (Get_Unit_Name): Remove the processing for children of
+ Ada.Finalization. Add processing for children of System.Storage_Pools.
+ * rtsfind.ads: Remove the naming of second level children of
+ Ada.Finalization.
+ Remove Ada_Finalization_Heap_Management from the list of units.
+ Remove subtype Ada_Finalization_Child.
+ Remove the following subprogram entities:
+
+ RE_Allocate
+ RE_Deallocate
+ RE_Finalization_Collection
+ RE_Finalization_Collection_Ptr
+ RE_Set_Finalize_Address_Ptr
+
+ Add the naming of second level children of System.Storage_Pools.
+ Add System_Finalization_Masters and System_Storage_Pools_Subpools to
+ the list of units.
+ Add subtype System_Storage_Pools_Child.
+ Add the following subprogram entities to System.Finalization_Masters:
+
+ RE_Finalization_Master
+ RE_Finalization_Master_Ptr
+
+ Add the following subprogram entities to System.Storage_Pools.Subpools:
+
+ RE_Allocate_Any_Controlled
+ RE_Deallocate_Any_Controlled
+ RE_Root_Storage_Pool_With_Subpools
+ RE_Root_Subpool
+ RE_Subpool_Handle
+
+ Move the following subprogram entities from
+ Ada.Finalization.Heap_Management to System.Finalization_Masters:
+
+ RE_Add_Offset_To_Address
+ RE_Attach
+ RE_Base_Pool
+ RE_Detach
+
+ * sem_ch3.adb (Access_Type_Declaration): Replace the call to
+ Set_Associated_Collection with Set_Finalization_Master.
+ * sem_ch6.adb (Create_Extra_Formals): Update the way extra formal
+ BIP_Finalization_Master is created.
+ * s-finmas.adb: New unit System.Finalization_Masters.
+ * s-finmas.ads: New unit System.Finalization_Masters.
+ * s-stopoo.ads, s-stopoo.adb: Minor code reformatting.
+ * s-stposu.ads, s-stposu.adb: New unit implementing
+ System.Storage_Pools.Subpools.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * tbuild.adb: Add assertion.
+
+2011-08-29 Thomas Quinot <quinot@adacore.com>
+
+ * s-pooglo.adb: Minor reformatting.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch5.adb (Expand_N_Assignment_Statement): if the left-hand side is
+ an indexed component of a packed array whose element type is a record
+ with a representation clause different from that of the right-hand
+ side, generate a temporary to minimuze the number of bit-field
+ operations generated.
+
+2011-08-29 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_util.adb (Insert_Actions): Use clauses can be part of lists of
+ declarations, and thus are likely insertion points for actions.
+
+2011-08-29 Bob Duff <duff@adacore.com>
+
+ * einfo.ads: Minor comment fix.
+
2011-08-29 Robert Dewar <dewar@adacore.com>
* frontend.adb, gnat1drv.adb: Minor reformatting.