OSDN Git Service

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