X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2Fada%2FChangeLog;h=cc26c9f3793db8fa8fa982b6e60665f8902198e1;hb=d553a695b917d3240fcf8ca5ea9e09ad8dd8a5f3;hp=1ec581c459ef97be7501852404cc5998223b90ba;hpb=ef74daead6d1668980566524b3a49dcc8f51295c;p=gcc.git diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 1ec581c459e..cc26c9f3793 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,859 @@ +2017-01-23 Claire Dross + + * exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes + which return Universal_Integer, force the overflow check flag for + Length and Range_Length for types as big as Long_Long_Integer. + +2017-01-23 Claire Dross + + * exp_spark.adb (Expand_SPARK_Attribute_Reference): For + attributes which return Universal_Integer, introduce a conversion + to the expected type with the appropriate check flags set. + * sem_res.adb (Resolve_Range): The higher bound can be in Typ's + base type if the range is null. It may still be invalid if it + is higher than the lower bound. This is checked later in the + context in which the range appears. + +2017-01-23 Pierre-Marie de Rodat + + * scos.ads: Introduce a constant to represent ignored + dependencies in SCO_Unit_Table_Entry. + +2017-01-23 Hristian Kirtchev + + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove extra + spaces from error messages. + +2017-01-23 Ed Schonberg + + * exp_ch3.adb (Check_Large_Modular_Array): New procedure, + subsidiary to Expand_N_Object_ Declaration, to compute a guard on + an object declaration for an array type with a modular index type + with the size of Long_Long_Integer. Special processing is needed + in this case to compute reliably the size of the object, and + eventually to raise Storage_Error, when wrap-around arithmetic + might compute a meangingless size for the object. + +2017-01-23 Justin Squirek + + * a-wtenau.adb, par-endh.adb, sem_prag.adb, + sem_type.adb: Code cleanups. + +2017-01-23 Bob Duff + + * sem_res.adb (Resolve_Call): In the part of the code where + it is deciding whether to turn the call into an indexed + component, avoid doing so if the call is to an instance of + Unchecked_Conversion. Otherwise, the compiler turns it into an + indexed component, and resolution of that turns it back into a + function call, and so on, resulting in infinite recursion. + * sem_util.adb (Needs_One_Actual): If the first formal has a + default, then return False. + +2017-01-21 Eric Botcazou + + * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc) + optimizations when the type is modular and the offsets are equal. + +2017-01-20 Thomas Quinot + + * sem_warn.adb (Warn_On_Useless_Assignment): Adjust wording of warning + message. + +2017-01-20 Nicolas Roche + + * terminals.c: Ignore failures on setpgid and tcsetpgrp commands. + +2017-01-20 Bob Duff + + * sem_eval.adb (Compile_Time_Compare): Disable the expr+literal + (etc) optimizations when the type is modular. + +2017-01-20 Yannick Moy + + * sem_ch6.adb (Move_Pragmas): move some pragmas, + but copy the SPARK_Mode pragma instead of moving it. + (Build_Subprogram_Declaration): Ensure that the generated spec + and original body share the same SPARK_Pragma aspect/pragma. + * sem_util.adb, sem_util.ads (Copy_SPARK_Mode_Aspect): New + procedure to copy SPARK_Mode aspect. + +2017-01-20 Bob Duff + + * sem_ch3.adb (Analyze_Declarations): Disable Resolve_Aspects + even in ASIS mode. + * sem_ch13.adb (Resolve_Name): Enable setting the entity to + Empty even in ASIS mode. + +2017-01-20 Hristian Kirtchev + + * exp_ch9.adb: minor style fixes in comments. + * sem_ch9.adb (Analyze_Delay_Relative): in GNATprove mode a delay + relative statement introduces an implicit dependency on + Ada.Real_Time.Clock_Time. + * sem_util.adb: Minor reformatting. + +2017-01-20 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Alignment + must be treated as delayed aspect even if the expression is + a literal, because the aspect affects the freezing and the + elaboration of the object to which it applies. + +2017-01-20 Tristan Gingold + + * s-osinte-vxworks.ads (Interrup_Range): New subtype. + +2017-01-20 Ed Schonberg + + * lib-xref.adb (Generate_Reference): Do not warn about the + presence of a pragma Unreferenced if the entity appears as the + actual in a procedure call that does not come from source. + +2017-01-20 Pascal Obry + + * expect.c, terminals.c: Fix some warnings about unused variables. + * gsocket.h, adaint.c, adaint.h: Fix some more warnings in the C part + of the runtime. + +2017-01-20 Bob Duff + + * exp_attr.adb (Constrained): Apply an access check (check that + the prefix is not null) when the prefix denotes an object of an + access type; that is, when there is an implicit dereference. + +2017-01-20 Gary Dismukes + + * s-rident.ads (constant Profile_Info): Remove + No_Calendar from GNAT_Extended_Ravenscar restrictions. + +2017-01-20 Tristan Gingold + + * s-maccod.ads: Add pragma No_Elaboration_Code_All + +2017-01-20 Hristian Kirtchev + + * ghost.adb (Mark_Ghost_Clause): New routine. + (Prune_Node): Do not prune compilation unit nodes. + (Remove_Ignored_Ghost_Code): Prune the compilation unit node directly. + This does not touch the node itself, but does prune all its fields. + * ghost.ads (Mark_Ghost_Clause): New routine. + * sem_ch8.adb (Analyze_Use_Package): Emit an error when a use + package clause mentions Ghost and non-Ghost packages. Mark a + use package clause as Ghost when it mentions a Ghost package. + (Analyze_Use_Type): Emit an error when a use type clause mentions + Ghost and non-Ghost types. Mark a use type clause as Ghost when + it mentions a Ghost type. + * sem_ch10.adb (Analyze_With_Clause): Mark a with clause as + Ghost when it withs a Ghost unit. + +2017-01-20 Javier Miranda + + * sem_res.adb (Resolve_Call): If a function call + returns a limited view of a type and at the point of the call the + function is not declared in the extended main unit then replace + it with the non-limited view, which must be available. If the + called function is in the extended main unit then no action is + needed since the back-end handles this case. + +2017-01-20 Eric Botcazou + + * sem_ch7.adb (Contains_Subp_Or_Const_Refs): Rename into... + (Contains_Subprograms_Refs): ...this. Adjust comment + for constants. (Is_Subp_Or_Const_Ref): Rename into... + (Is_Subprogram_Ref): ...this. + (Has_Referencer): Rename Has_Non_Subp_Const_Referencer variable into + Has_Non_Subprograms_Referencer and adjust comment. Remove + incorrect shortcut for package declarations and bodies. + +2017-01-20 Ed Schonberg + + * sem_ch3.adb (Complete_Private_Subtype): If the scope of the + base type differs from that of the completion and the private + subtype is an itype (created for a constraint on an access + type e.g.), set Delayed_Freeze on both to prevent out-of-scope + anomalies in gigi. + +2017-01-20 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): + When inheriting the SPARK_Mode of a prior expression function, + look at the properly resolved entity rather than the initial + candidate which may denote a homonym. + +2017-01-20 Ed Schonberg + + * sem_prag.adb (Rewrite_Assertion_Kind): If the name is + Precondition or Postcondition, and the context is pragma + Check_Policy, indicate that this Pre-Ada2012 usage is deprecated + and suggest the standard names Assertion_Policy /Pre /Post + instead. + +2017-01-20 Hristian Kirtchev + + * sem_ch10.adb, sem_cat.adb: Minor reformatting. + +2017-01-20 Javier Miranda + + * sem_ch3.adb (Access_Type_Declaration): Protect access to the + Entity attribute. + * sem_ch10.adb (Install_Siblings): Skip processing malformed trees. + * sem_cat.adb (Validate_Categoriztion_Dependency): Skip processing + malformed trees. + +2017-01-20 Ed Schonberg + + * sem_ch13.adb (Analyze_Aspect_Specification, case + Dynamic_Predicate): If the entity E is a subtype that inherits + a static predicate for its parent P,, the inherited and the + new predicate combine in the generated predicate function, + and E only has a dynamic predicate. + +2017-01-20 Tristan Gingold + + * s-boustr.ads, s-boustr.adb: New package. + * Makefile.rtl: Add s-boustr. + +2017-01-20 Hristian Kirtchev + + * inline.adb (Process_Formals): Qualify the + expression of a return statement when it yields a universal type. + +2017-01-20 Hristian Kirtchev + + * freeze.adb (Freeze_All): Freeze the default + expressions of all eligible formal parameters that appear in + entries, entry families, and protected subprograms. + +2017-01-20 Ed Schonberg + + * sem_ch3.adb (Check_Nonoverridable_Aspects); Refine check + for illegal inherited Implicit_Dereference aspects with renamed + discriminants. + +2017-01-20 Javier Miranda + + * debug.adb (switch d.6): do not avoid declaring unreferenced itypes. + * nlists.ads (Lock_Lists, Unlock_Lists): New subprograms. + * nlists.adb (Lock_Lists, Unlock_Lists): New subprograms. + (Set_First, Set_Last, Set_List_Link, Set_Next, Set_Parent, + Set_Prev, Tree_Read): Adding assertion. + * atree.ads (Lock_Nodes, Unlock_Nodes): New subprograms. + * atree.adb (Lock_Nodes, Unlock_Nodes): New subprograms. + (Set_Analyzed, Set_Check_Actuals, Set_Comes_From_Source, + Set_Ekind, Set_Error_Posted, Set_Has_Aspects, + Set_Is_Ignored_Ghost_Node, Set_Original_Node, Set_Paren_Count, + Set_Parent, Set_Sloc, Set_Nkind, Set_FieldNN, Set_NodeNN, + Set_ListNN, Set_ElistNN, Set_NameN, Set_StrN, Set_UintNN, + Set_UrealNN, Set_FlagNNN, Set_NodeN_With_Parent, + Set_ListN_With_Parent): Adding assertion. + +2017-01-20 Ed Schonberg + + * sem_prag.adb (Process_Convention): Diagnose properly a pragma + import that applies to several homograph subprograms. when one + of them is declared by a subprogram body. + +2017-01-20 Justin Squirek + + * exp_ch6.adb (Expand_Call): Remove optimization + that nulls out calls to null procedures. + +2017-01-20 Yannick Moy + + * inline.adb (Expand_Inlined_Call): Keep more + precise type of actual for inlining whenever possible. In + particular, do not switch to the formal type in GNATprove mode in + some case where the GNAT backend might require it for visibility. + +2017-01-20 Ed Schonberg + + * sem_ch3.adb (Check_Non_Overridable_Aspects): An inherited + aspect Implicit_Dereference can be inherited by a full view if + the partial view has no discriminants, because there is no way + to apply the aspect to the partial view. + (Build_Derived_Record_Type): If derived type renames discriminants + of the parent, the new discriminant inherits the aspect from + the old one. + * sem_ch4.adb (Analyze_Call): Handle properly a parameterless + call through an access discriminant designating a subprogram. + * sem_ch5.adb (Analyze_Assignment): (Analyze_Call): Handle + properly a parameterless call through an access discriminant on + the left-hand side of an assignment. + * sem_res.adb (resolve): If an interpreation involves a + discriminant with an implicit dereference and the expression is an + entity, resolution takes place later in the appropriate routine. + * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Recognize + access discriminants that designate a subprogram type. + +2017-01-20 Pascal Obry + + * a-locale.adb, a-locale.ads: Update Ada.Locales for RM 2012 COR:1:2016 + +2017-01-20 Yannick Moy + + * sem_ch10.adb (Check_No_Elab_Code_All): Do not issue an error + on implicitly with'ed units in GNATprove mode. + * sinfo.ads (Implicit_With): Document use of flag for implicitly + with'ed units in GNATprove mode. + +2017-01-20 Ed Schonberg + + * sem_cat.adb (Validate_Static_Object_Name): In a preelaborated + unit Do not report an error on a non-static entity that appears + in the context of a spec expression, such as an aspect expression. + +2017-01-20 Hristian Kirtchev + + * einfo.adb: Flag298 now denotes Is_Underlying_Full_View. + (Is_Underlying_Full_View): New routine. + (Set_Is_Underlying_Full_View): New routine. + (Write_Entity_Flags): Add an entry for Is_Underlying_Full_View. + * einfo.ads Add new attribute Is_Underlying_Full_View. + (Is_Underlying_Full_View): New routine along with pragma Inline. + (Set_Is_Underlying_Full_View): New routine along with pragma Inline. + * exp_util.adb (Build_DIC_Procedure_Body): Do not consider + class-wide types and underlying full views. The first subtype + is used as the working type for all Itypes, not just array base types. + (Build_DIC_Procedure_Declaration): Do not consider + class-wide types and underlying full views. The first subtype + is used as the working type for all Itypes, not just array + base types. + * freeze.adb (Freeze_Entity): Inherit the freeze node of a full + view or an underlying full view without clobbering the attributes + of a previous freeze node. + (Inherit_Freeze_Node): New routine. + * sem_ch3.adb (Build_Derived_Private_Type): Mark an underlying + full view as such. + (Build_Underlying_Full_View): Mark an underlying full view as such. + * sem_ch7.adb (Install_Private_Declarations): Mark an underlying + full view as such. + +2017-01-20 Yannick Moy + + * sinfo.ads: Document lack of Do_Division_Check flag + on float exponentiation. + +2017-01-19 Javier Miranda + + * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the + identifier attribute of a block-statement node. Required to avoid + assertion failure when building the new containers library. + +2017-01-19 Bob Duff + + * exp_ch3.adb: Update comment. + +2017-01-19 Vincent Celier + + * gprep.adb (Gnatprep): Parse the definition file without + "replace in comments" even when switch -C is used. + +2017-01-19 Justin Squirek + + * exp_ch9.adb (Is_Pure_Barrier): Create function + Is_Count_Attribute to identify an expansion of the 'Count + attribute. + +2017-01-19 Ed Schonberg + + * sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the + statements within an element iterator loop are only analyzed + agter the loop is rewritten. Within a generic the analysis must + be performed in any case to complete name capture. + +2017-01-19 Bob Duff + + * sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first, + before checking for unrecognized pragmas. + Initialize Pname on its declarations; that's always good style. + +2017-01-19 Claire Dross + + * exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the + body into the tree for GNATprove by setting its Parent field. The + components invariants of composite types are not checked by + the composite type's invariant procedure in GNATprove mode. + (Build_Invariant_Procedure_Declaration): Semi-insert the + declaration into the tree for GNATprove by setting its Parent + field. + * freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add + the component invariants to the array type invariant procedure + so that the procedure can be used to check the array type + invariants if any. + (Freeze_Record_Type): In GNATprove mode, do + not add the component invariants to the record type invariant + procedure so that the procedure can be used to check the record + type invariants if any. + +2017-01-19 Hristian Kirtchev + + * lib-xref-spark_specific.adb: Minor reformatting. + * exp_ch7.adb (Add_Parent_Invariants): Do not process array types. + +2017-01-19 Javier Miranda + + * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as + Build_Back_End_Aggregate. + (Generate_Aggregate_For_Derived_Type): Code cleanup. + (Prepend_Stored_Values): Code cleanup. + +2017-01-19 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): Check for an + incomplete return type after attempting to freeze it, so that + other freeze actiona are generated in the proper order. + +2017-01-19 Ed Schonberg + + * sem_aggr.adb (Resolve_Aggregate): If the type is a string + type, ie. a type whose component is a character type, and the + aggregate is positional, do not convert into a string literal + if the index type is not an integer type, because the original + type may be required in an enclosing operation. + +2017-01-19 Bob Duff + + * binde.adb, debug.adb: Enable new elaboration order algorithm + by default. -dp switch reverts to the old algorithm. + +2017-01-19 Hristian Kirtchev + + * sem_ch3.adb Add with and use clauses for Exp_Ch7. + (Analyze_Declarations): Create the DIC and Invariant + procedure bodies s after all freezing has taken place. + (Build_Assertion_Bodies): New routine. + * sem_ch7.adb Remove the with and use clauses for Exp_Ch7 + and Exp_Util. + (Analyze_Package_Specification): Remove the + generation of the DIC and Invariant procedure bodies. This is + now done by Analyze_Declarations. + * sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant + procedures are never treated as primitives. + +2017-01-19 Yannick Moy + + * frontend.adb: Analyze inlined bodies and check elaboration + rules in GNATprove mode too. + * sem_elab.adb (Delay_Element): Add Boolean component to save + indication that call is in SPARK code. (Check_Elab_Calls): + Check elaboration rules in GNATprove mode, and correctly set + the current value of SPARK_Mode. + * lib-xref-spark_specific.adb + (Add_SPARK_Xrefs): Simplify iteration over dereferences. + +2017-01-19 Ed Schonberg + + * exp_ch4.adb (Expand_Concatenate): Do no enable overflow + checks on the expression for the high bound of concatenation + when checks are disabled, to suppress warnings about potential + constraint errors in restricted runtimes. + +2017-01-19 Hristian Kirtchev + + * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the + representation-to-position function as inlined. + * sem_cat.adb (Set_Categorization_From_Scope): Do not modify + the purity of an internally generated entity if it has been + explicitly marked as pure for optimization purposes. + * exp_aggr.adb: Minor reformatting. + +2017-01-19 Javier Miranda + + * exp_ch6.adb (Expand_Call): Remove side effects on + actuals that are allocators with qualified expression since the + initialization of the object is performed by means of individual + statements (and hence it must be done before the call). + +2017-01-19 Ed Schonberg + + * sem_ch3.adb (Analyze_Declarations): Minor reformatting. + (Build_Derived_Enumeration_Type): If the derived type inherits a + dynamic predicate from its parent, the bounds of the type must + freeze because an explicit constraint is constructed for the + type and the corresponding range is elaborated now. + +2017-01-19 Arnaud Charlet + + * sem_attr.ads: minor fix of inconsistent casing in comment + * lib-writ.ads: minor align comments in columns + * sem_ch3.adb: Minor reformatting. + * spark_xrefs.ads: minor fix typo in SPARK-related comment + * table.ads: minor style fix in comment + * lib-xref-spark_specific.adb + (Add_SPARK_Xrefs): simplify processing of SPARK cross-references. + * sem_ch12.adb: minor whitespace fix + * freeze.adb: Add comment. + * sem_util.adb (Unique_Name): for instances of + generic subprograms ignore the name of the wrapper package. + +2017-01-19 Javier Miranda + + * exp_aggr.adb (Resolve_Record_Aggregate): + Factorize code needed for aggregates of limited and unlimited + types in a new routine. + (Pass_Aggregate_To_Back_End): New subprogram. + +2017-01-19 Yannick Moy + + * sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map. + +2017-01-19 Ed Schonberg + + * sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram + public, for use elsewhere. + * sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within + an Inlined_body, recognize a call that uses object notation + and has not been rewritten as a regular call because regular + expansion has not taken place. + +2017-01-19 Bob Duff + + * checks.adb (Apply_Type_Conversion_Checks): Disable small optimization + in case of generic formal discrete types, because it causes crashes in + the compiler when built with assertions on. + +2017-01-19 Hristian Kirtchev + + * lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads, + sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting. + +2017-01-19 Bob Duff + + * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): + Increment Warnings_Detected. It was decrementing, which is + wrong since we just issued a warning message. + * binderr.ads (Errors_Detected, Warnings_Detected): Declare + these variables to be of subtype Nat instead of Int, because + they should never be negative. + +2017-01-19 Javier Miranda + + * contracts.adb (Build_Postconditions_Procedure): Replace + Generate_C_Code by Modify_Tree_For_C. + * exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate): + Replace Generate_C_Code by Modify_Tree_For_C. + * exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by + Modify_Tree_For_C. + * exp_ch11.adb (Expand_N_Exception_Declaration): Replace + Generate_C_Code by Modify_Tree_For_C. + * exp_ch4.adb (Expand_Allocator_Expression): Replace + Generate_C_Code by Modify_Tree_For_C. + * exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code + by Modify_Tree_For_C. + * exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace + Generate_C_Code by Modify_Tree_For_C. + * sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code + by Modify_Tree_For_C. + * sinfo.ads (Modify_Tree_For_C): Adding documentation. + +2017-01-19 Javier Miranda + + * sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New + subprogram. + (Is_Inlinable_Expression_Function): New subprogram. + * exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved + to Sem_Util. + (Is_Inlinable_Expression_Function): Moved to Sem_Util. + +2017-01-19 Ed Schonberg + + * sem_ch4.adb (Diagnose_Call): Improve error message when a + selected component has a prefix that might be interpreted + as a parameterless function call, but none of the candidate + interpretations is parameterless, and there is a hidden homonym + of the prefix that is a package. + * sem_ch8.adb (Find_Selected_Component): If the prefix might be + interpreted as a parameterless function call and its analysis + fails, do not call Analyze_Selected_Component. + +2017-01-19 Steve Baird + + * sem_util.ads: Add new Use_Full_View Boolean parameter to + Get_Index_Bounds. + * sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with + calls to a newly-defined Scalar_Range_Of_Right_View function. + +2017-01-19 Arnaud Charlet + + * gnat1drv.adb: minor fix of unbalanced parens in comment + * lib-xref.ads (Traverse_Compilation_Unit): declaration moved + to visible part of the package to allow re-use in GNATprove. + * lib-xref-spark_specific.adb (Traverse_Stub): routine refactored + from repeated code of Traverse_Compilation_Unit. + (Traverse_Declaration_Or_Statement): fixed detection of + generic subprograms and packages; also, iteration over case + statement alternatives rewritten to avoid testing if the first + alternative is present (since it must be present due to Ada + syntax restrictions). + +2017-01-19 Hristian Kirtchev + + * exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as + returning by reference not just for subprogram body stubs, + but for all subprogram cases. + * sem_util.adb: Code reformatting. + (Requires_Transient_Scope): Update the call to Results_Differ. + (Results_Differ): Update the parameter profile and the associated + comment on usage. + +2017-01-19 Ed Schonberg + + * sem_dim.adb (Analyze_Dimension): Analyze object declaration and + identifier nodes that do not come from source, to handle properly + dimensionality check within an inlined body which inclddes both + original operands and rewritten operands. This removes spurious + dimensionality errors in the presence of front-end inlining, + as well as in SPARK mode. + +2017-01-16 Jakub Jelinek + + PR driver/49726 + * gcc-interface/lang.opt (gant, gnatO, gnat): Add Driver flag. + +2017-01-13 Rainer Orth + + * gcc-interface/Makefile.in (SPARC/Solaris): Fix typo. + +2017-01-13 Arnaud Charlet + + * doc/gnat_ugn/getting_started_with_gnat.rst, + doc/gnat_ugn/inline_assembler.rst, + doc/gnat_ugn/building_executable_programs_with_gnat.rst, + doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, + doc/gnat_ugn/about_this_guide.rst, + doc/gnat_ugn/platform_specific_information.rst, + doc/gnat_ugn/example_of_binder_output.rst, + doc/gnat_ugn/gnat_and_program_execution.rst, + doc/gnat_ugn/gnat_utility_programs.rst, + doc/gnat_ugn/the_gnat_compilation_model.rst, + doc/gnat_rm/implementation_defined_attributes.rst, + doc/gnat_rm/compatibility_and_porting_guide.rst, + doc/gnat_rm/standard_library_routines.rst, + doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, + doc/gnat_rm/implementation_defined_pragmas.rst, + doc/gnat_rm/the_gnat_library.rst, + doc/gnat_rm/obsolescent_features.rst, + doc/gnat_rm/about_this_guide.rst, + doc/gnat_rm/the_implementation_of_standard_i_o.rst, + doc/gnat_rm/implementation_of_ada_2012_features.rst, + doc/gnat_rm/interfacing_to_other_languages.rst, + doc/gnat_rm/implementation_defined_aspects.rst, + doc/gnat_rm.rst: Update documentation. + * gnat_rm.texi, gnat_ugn.texi: Regenerated. + +2017-01-13 Ed Schonberg + + * einfo.ads: minor grammar fixes in comment of Normalized_Position_Max. + * scil_ll.adb: Minor style fix in comment. + * sem_ch8.adb (Analyze_Expanded_Name): Perform dimension analysis + even if entity is already set, because the node may be renalyzed + after inlining transformations. + +2017-01-13 Javier Miranda + + * sem_res.adb (Resolve_Call): Do not establish a transient scope + for a call to inlinable expression function (since the call will + be replaced by its returned object). + * exp_ch6.ads (Is_Inlinable_Expression_Function): New subprogram. + * exp_ch6.adb (Expression_Of_Expression_Function): New subprogram. + (Expand_Call): For inlinable expression function call replace the + call by its returned object. + (Is_Inlinable_Expression_Function): New subprogram. + +2017-01-13 Gary Dismukes + + * checks.adb: Minor typo fix and reformatting. + +2017-01-13 Javier Miranda + + * contracts.adb (Contract_Only_Subprograms): Remove formal. + (Copy_Original_Specification): Removed. + (Skip_Contract_Only_Subprogram): Move here checks previously + located in the caller of this routine (to leave the code more clean). + (Build_Contract_Only_Subprogram): Code cleanup. + * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): Removed. + (Get_Contract_Only_Missing_Body_Name): Removed. + +2017-01-13 Javier Miranda + + * sem_ch6.adb (Cloned_Expression): New subprogram. + (Freeze_Expr_Types): Complete previous patch since the expression + of an expression-function may have iterators and loops with + defining identifiers which, as part of the preanalysis of the + expression, may be left decorated with itypes that will not be + available in the tree passed to the backend. + +2017-01-13 Ed Schonberg + + * checks.adb (Apply_Type_Conversion_Checks): Optimize a type + conversion to Integer of an expression that is an attribute + reference 'Pos on an enumeration type. + +2017-01-13 Bob Duff + + * atree.ads: Minor comment fix. + +2017-01-13 Justin Squirek + + * sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function + calls in accessibility check on return statement. + +2017-01-13 Hristian Kirtchev + + * sem_ch6.adb (Analyze_Subprogram_Body_Helper): + Ensure that the input body is a subprogram body before trying to + determine whether it denoted an expression function. Note that + subprogram body stubs cannot denote expression functions. + +2017-01-13 Gary Dismukes + + * bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting + and typo fixes. + +2017-01-13 Javier Miranda + + * einfo.ads (Component_Bit_Offset): Fix documentation. + * sem_ch13.adb (Check_Record_Representation_Clause): Skip check + on record holes for components with unknown compile-time offsets. + +2017-01-13 Bob Duff + + * ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag. + * g-locfil.ads: Minor comment fix. + +2017-01-13 Bob Duff + + * binde.adb (Elab_New): New elaboration order algorithm + that is expected to cause fewer ABE issues. This is a work in + progress. The new algorithm is currently disabled, and can be + enable by the -dp switch, or by modifying the Do_Old and Do_New + etc. flags and rebuilding. Experimental code is included to + compare the results of the old and new algorithms. + * binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we + can have multiple of these tables, so the old and new algorithms + can coexist. + * bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in' + parameter of type array. This avoids the global variable, and + allows bounds checking (which is normally defeated by the tables + packages). It also ensures that the Elab_Order is read-only + to Bindgen. + * bindgen.adb: Pass Elab_Order as an 'in' parameter to all + subprograms that need it, as above. + * debug.adb: Document new -dp switch. Modify doc of old -do + switch. + * gnatbind.adb (Gnatbind): Make use of new interfaces to Binde + and Bindgen. Move writing of closure (-R and -Ra switches) + to Binde; that's more convenient. + +2017-01-13 Ed Schonberg + + * sem_ch6.adb (Analyze_Expression_Function): If the expression + function is a completion, all entities referenced in the + expression are frozen. As a consequence, a reference to an + uncompleted private type from an enclosing scope is illegal. + +2017-01-13 Javier Miranda + + * sem_ch6.adb (Freeze_Expr_Types): New subprogram. + (Analyze_Subprogram_Body_Helper): At the occurrence of an + expression function declaration that is a completion, its + expression causes freezing (AI12-0103). + +2017-01-13 Vadim Godunko + + * a-coinho-shared.adb: Fix memory leaks in Constant_Reference and + Reference functions of Ada.Containers.Indefinite_Holders. + +2017-01-13 Bob Duff + + * s-os_lib.ads: Minor comment fixes. + +2017-01-13 Hristian Kirtchev + + * exp_ch3.adb (Default_Initialize_Object): Do not default + initialize an object when it is of a task type and restriction + No_Tasking is in effect because the initialization is obsolete. + * exp_ch9.adb (Build_Master_Entity): Do not generate a master when + restriction No_Tasking is in effect. + (Build_Master_Renaming): Do not rename a master when restriction + No_Tasking is in effect. + +2017-01-13 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies + the legality of An others clause applies as well to a choice in + an Iterated_component_ association. + (Resolve_Iterated_Component_Association): An others choice + is legal. + * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An + Iterated_Component_Association is not static. + +2017-01-13 Hristian Kirtchev + + * exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case + control is passed to the expresion handler before the new mode + is set. + * sem_ch12.adb (Analyze_Package_Instantiation, + Analyze_Subprogram_Instantiation): Mark the Ghost mode as set + in case control is passed to the expresion handler before the + new mode is set. + +2017-01-13 Hristian Kirtchev + + * sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb, + exp_aggr.adb: Minor reformatting. + +2017-01-13 Gary Dismukes + + * inline.adb: Minor reformatting and typo fix. + +2017-01-13 Ed Schonberg + + * sem_util.ads, sem_util.adb (Choice_List): Move function here + from sem_aggr.adb, for use elsewhere. + * sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List. + * sem_aggr.adb (Resolve_Array_Aggregate): Remove + Iterated_Component_Present. + * exp_aggr.adb: Use Choice_List throughout, to handle + Iterated_Component_Associations. + (Gen_Loop): Generate proper loop for an + Iterated_Component_Association: loop variable has the identifier + of the original association. Generate a loop even for a single + component choice, in order to make loop parameter visible in + expression. + (Flatten): An Iterated_Component_Association is not static. + +2017-01-13 Yannick Moy + + * exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of + float exponentiation for statically known small negative values + is the reciprocal of the exponentiation for the opposite value + of the exponent. + * s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float): + Ensure that the value of float exponentiation for negative values + is the reciprocal of the exponentiation for the opposite value + of the exponent. + * inline.adb (Expand_Inlined_Call): Fix the count + for the number of generated gotos. + +2017-01-13 Yannick Moy + + * inline.adb: Code cleanup. + * sem_util.adb (Is_OK_Volatile_Context): Add + expression in delay statement as OK for volatile context. + +2017-01-13 Ed Schonberg + + * sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation + mode a choice that is a subtype with a static predicate is + replaced by the values it covers. This transformation must not + be performed in ASIS mode, to preserve the source for analysis. + +2017-01-13 Justin Squirek + + * nlists.ads: Correct minor typo. + 2017-01-13 Gary Dismukes * sem_ch13.adb: Minor reformatting and typo fix.