+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
* exp_ch5.adb (Expand_Iterator_Loop): Handle properly a loop over a
container of a derived type.
-2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
-
- * impunit.adb, s-stposu.adb, s-stposu.ads, exp_ch4.adb, s-finmas.adb,
- s-finmas.ads: Revert previous change.
-
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cidlli.adb, a-cidlli.ads, a-cihama.adb, a-cihama.ads,