OSDN Git Service

2011-08-30 Robert Dewar <dewar@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
index 593ef4a..81574bb 100644 (file)
@@ -1,3 +1,910 @@
+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.