+2015-03-24 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention
+ on generic type.
+
+2015-03-24 Gary Dismukes <dismukes@adacore.com>
+
+ * inline.adb: Minor typo fix.
+
+2015-03-24 Arnaud Charlet <charlet@adacore.com>
+
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst,
+ doc/gnat_ugn/gnat_utility_programs.rst
+ doc/gnat_rm/implementation_defined_attributes.rst
+ doc/gnat_rm/implementation_defined_pragmas.rst
+ doc/gnat_rm/representation_clauses_and_pragmas.rst
+ doc/gnat_rm/about_this_guide.rst
+ doc/gnat_rm/implementation_of_ada_2012_features.rst: Doc improvements.
+ * gnat_rm.texi, gnat_ugn.texi: Regenerate.
+
+2015-03-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/65522
+ * adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC.
+
+2015-03-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/65451
+ * gcc-interface/utils.c (gnat_pushdecl): Tidy up and improve comment.
+ Make sure to chain only main variants through TYPE_NEXT_PTR_TO.
+
+ * gcc-interface/trans.c (Attribute_to_gnu): Revert latest change.
+
+2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils2.c (gnat_invariant_expr): Return null if the type
+ of the expression ends up being composite.
+
+2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (is_from_limited_with_of_main): New predicate.
+ (gnat_to_gnu_entity) <E_Subprogram_Type>: Invoke it on return and
+ parameter types to detect circularities in ASIS mode.
+ * gcc-interface/trans.c (Attribute_to_gnu): Mention AI05-0151.
+
+2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Abstract_State>: Do not
+ short-circuit the regular handling.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * exp_unst.adb (Note_Uplevel_Reference): Eliminate duplicate
+ references.
+ (Actual_Ref): New function.
+ (AREC_String): Minor reformatting.
+ (Unnest_Subprogram): Use Actual_Ref.
+ * frontend.adb (Frontend): Turn off Unnest_Subprogram_Mode
+ before call to Instantiate_Bodies.
+
+2015-03-13 Ed Schonberg <schonberg@adacore.com>
+
+ * freeze.adb (Freeze_Profile): If the return type of a function
+ being frozen is an untagged limited view and the function is
+ abstract, mark the type as frozen because there is no later
+ point at which the profile of the subprogram will be elaborated.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * einfo.adb, einfo.ads, atree.adb, atree.ads, atree.h: Add seventh
+ component to entities. Add new fields Field36-41 and Node36-41.
+
+2015-03-13 Claire Dross <dross@adacore.com>
+
+ * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * exp_util.adb (Is_Volatile_Reference): Compile time known
+ value is never considered to be a volatile reference.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch3.adb (Analyze_Object_Contract): Suppress "constant
+ cannot be volatile" for internally generated object (such as
+ FIRST and LAST constants).
+
+2015-03-13 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Validate_Access_Subprogram_Instance): If a
+ convention is specified for the formal parameter, verify that
+ the actual has the same convention.
+ * sem_prag.adb (Set_Convention_From_Pragma): Allow convention
+ pragma to be set on a generic formal type.
+ * sem_util.adb (Set_Convention): Ignore within an instance,
+ as it has already been verified in the generic unit.
+
+2015-03-13 Claire Dross <dross@adacore.com>
+
+ * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline
+ subprograms with unconstrained record parameters containing
+ Itype declarations.
+ * sinfo.ads Document GNATprove assumption that type should match
+ in the AST.
+ * sem_ch6.adb (Analyze_Subprogram_Body_Contract):
+ Do not check for Refined_Depends and Refined_Globals contracts
+ as they are optional.
+
+2015-03-13 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Instantiate_Type): For a floating-point type,
+ capture dimension info if any, because the generated subtype
+ declaration does not come from source and will not process dimensions.
+ * sem_dim,adb (Analyze_Dimension_Extension_Or_Record_Aggregate):
+ Do not analyze expressions with an initialization procedure
+ because aggregates will have been checked at the point of record
+ declaration.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * aspects.ads, aspects.adb: Add entries for aspect Unimplemented.
+ * einfo.ads, einfo.adb (Is_Unimplemented): New flag.
+ * sem_ch13.adb: Add dummy entry for aspect Unimplemented.
+ * snames.ads-tmpl: Add entry for Name_Unimplemented.
+
+2015-03-13 Gary Dismukes <dismukes@adacore.com>
+
+ * style.adb (Missing_Overriding): Apply the
+ Comes_From_Source test to the Original_Node of the subprogram
+ node, to handle the case of a null procedure declaration that
+ has been rewritten as an empty procedure body.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * exp_util.ads: Minor fix to comment.
+ * sem_ch3.adb (Constrain_Index): Correct pasto from previous
+ change.
+
+2015-03-13 Robert Dewar <dewar@adacore.com>
+
+ * exp_util.ads, exp_util.adb (Force_Evaluation): Add Related_Id and
+ Is_Low/High_Bound params.
+ * sem_ch3.adb (Constrain_Index): Use new Force_Evaluation calling
+ sequence to simplify generation of FIRST/LAST temps for bounds.
+
+2015-03-12 Olivier Hainque <hainque@adacore.com>
+
+ * gcc-interface/trans.c (Attribute_to_gnu) <Code_Address case>:
+ On targets where a function symbol designates a function descriptor,
+ fetch the function code address from the descriptor.
+ (USE_RUNTIME_DESCRIPTORS): Provide a default definition.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * sem_warn.adb: Minor reformatting.
+ * init.c: Minor tweaks.
+
+2015-03-04 Dmitriy Anisimko <anisimko@adacore.com>
+
+ * a-coinho-shared.adb: Fix clear of already empty holder.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * exp_unst.adb (Check_Dynamic_Type): Ignore library level types.
+ (Check_Uplevel_Reference_To_Type): Ignore call inside generic.
+ (Note_Uplevel_Reference): Ignore call inside generic.
+ (Note_Uplevel_Reference): Fix check for no entity field.
+ (Unnest_Subprogram): Ignore call inside generic.
+ (Find_Current_Subprogram): Use Defining_Entity, not Defining_Unit_Name.
+ (Visit_Node): Ignore calls to Imported subprograms.
+ (Visit_Node): Fix problem in finding subprogram body in some cases.
+ (Add_Form_To_Spec): Use Defining_Entity, not Defining_Unit_Name.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * einfo.adb (Is_ARECnF_Entity): Removed.
+ (Last_Formal): Remove special handling of Is_ARECnF_Entity.
+ (Next_Formal): Remove special handling of Is_ARECnF_Entity.
+ (Next_Formal_With_Extras): Remove special handling of Is_ARECnF_Entity.
+ (Number_Entries): Minor reformatting.
+ * einfo.ads (Is_ARECnF_Entity): Removed.
+ * exp_unst.adb (Unnest_Subprogram): Remove setting of
+ Is_ARECnF_Entity.
+ (Add_Extra_Formal): Use normal Extra_Formal circuit.
+ * sprint.adb (Write_Param_Specs): Properly handle case where
+ there are no source formals, but we have at least one Extra_Formal
+ present.
+
+2015-03-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_aggr.adb (Resolve_Record_Aggregate,
+ Add_Discriminant_Values): If the value is a reference to the
+ current instance of an enclosing type, use its base type to check
+ against prefix of attribute reference, because the target type
+ may be otherwise constrained.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * atree.h: Add entries for Flag287-Flag309.
+ * einfo.adb: Add (unused) flags Flag287-Flag309.
+
+2015-03-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_util.adb (Collect_Interfaces, Collect): When gathering
+ interfaces of ancestors, handle properly a subtype of a private
+ extension.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
+ (Next_Formal): Don't return ARECnF formal.
+ (Last_Formal): Don't consider ARECnF formal.
+ (Next_Formal_With_Extras): Do consider ARECnF formal.
+ * einfo.ads (Is_ARECnF_Entity): New flag (ARECnF is an extra formal).
+ * exp_unst.adb (Create_Entities): Set Is_ARECnF_Entity flag.
+
+2015-03-04 Javier Miranda <miranda@adacore.com>
+
+ * exp_ch6.adb (Expand_Simple_Function_Return): When the returned
+ object is a class-wide interface object and we generate the
+ accessibility described in RM 6.5(8/3) then displace the pointer
+ to the object to reference the base of the object (to get access
+ to the TSD of the object).
+
+2015-03-04 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_prag.adb (Analyze_Abstract_State): Use routine
+ Malformed_State_Error to issue general errors.
+ (Analyze_Pragma): Diagnose a syntax error related to a state
+ declaration with a simple option.
+ (Malformed_State_Error): New routine.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * a-strsup.adb (Super_Slice): Deal with super flat case.
+ * einfo.ads: Minor reformatting.
+ * s-imgdec.adb (Set_Decimal_Digits): Add comment about possibly
+ redundant code.
+
+2015-03-04 Claire Dross <dross@adacore.com>
+
+ * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
+ a-cforse.ads, a-cofove.ads: Use Default_Initial_Condition on formal
+ containers.
+
+2015-03-04 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_warn.adb (Check_References): When checking for an unused
+ in-out parameter of a class- wide type, use its type to determine
+ whether it is private, in order to avoid a spurious warning when
+ subprogram spec and body are in different units.
+
+2015-03-04 Yannick Moy <moy@adacore.com>
+
+ * sem_attr.adb: Improve warning messages.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch6.adb (Expand_N_Subprogram_Body): Avoid trying to unnest
+ generic subprograms.
+ * exp_unst.adb (Check_Dynamic_Type): Handle record types properly
+ (Note_Uplevel_Reference): Ignore uplevel references to non-types
+ (Get_Level): Consider only subprograms, not blocks.
+ (Visit_Node): Set proper condition for generating ARECnF entity.
+ Ignore indirect calls. Ignore calls to subprograms
+ outside our nest.
+ (Unnest_Subprogram): Minor changes in dealing with ARECnF entity.
+ (Add_Form_To_Spec): Properly set Last_Entity field.
+ (Unnest_Subprogram): Set current subprogram scope for analyze calls.
+ Handle case of no uplevel refs in outer subprogram
+ Don't mark uplevel entities as aliased.
+ Don't deal with calls with no ARECnF requirement.
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * s-valrea.adb (Scan_Real): Remove redundant tests from scaling loops.
+ * s-imgdec.adb (Set_Decimal_Digits): Remove redundant Max
+ operation in computing LZ.
+ * sem_attr.adb: Minor typo fix
+
+2015-03-04 Robert Dewar <dewar@adacore.com>
+
+ * exp_ch7.adb: Minor reformatting.
+ * exp_unst.adb (Build_Tables): Fix minor glitch for no separate
+ spec case.
+ * erroutc.adb (Delete_Msg): add missing decrement of info msg counter.
+
+2015-03-04 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch6.adb (Build_Pragma_Check_Equivalent): Suppress
+ references to formal parameters subject to pragma Unreferenced.
+ (Suppress_Reference): New routine.
+ * sem_attr.adb (Analyze_Attribute): Reimplement the analysis
+ of attribute 'Old. Attributes 'Old and 'Result now share
+ common processing.
+ (Analyze_Old_Result_Attribute): New routine.
+ (Check_Placement_In_Check): Removed.
+ (Check_Placement_In_Contract_Cases): Removed.
+ (Check_Placement_In_Test_Case): Removed.
+ (Check_Use_In_Contract_Cases): Removed.
+ (Check_Use_In_Test_Case): Removed.
+ (In_Refined_Post): Removed.
+ (Is_Within): Removed.
+ * sem_warn.adb (Check_Low_Bound_Tested): Code cleanup.
+ (Check_Low_Bound_Tested_For): New routine.
+
+2015-03-04 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch3.adb (Expand_N_Object_Declaration):
+ Generate a runtime check to test the expression of pragma
+ Default_Initial_Condition when the object is default initialized.
+
+2015-03-02 Robert Dewar <dewar@adacore.com>
+
+ * scng.adb (Scan): Ignore illegal character in relaxed
+ semantics mode.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch4.adb (Analyze_Set_Membership); Retain Overloaded flag
+ on left operand, so it can be properly resolved with type of
+ alternatives of right operand.
+ * sem_res.adb (Resolve_Set_Membership): Handle properly an
+ overloaded left-hand side when the alternatives on the right
+ hand side are literals of some universal type. Use first
+ non-overloaded alternative to find expected type.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch7.adb (Make_Set_Finalize_Address_Call): Use underlying
+ type to retrieve designated type, because the purported access
+ type may be a partial (private) view, when it is declared in
+ the private part of a nested package, and finalization actions
+ are generated when completing compilation of enclosing unit.
+
+2015-03-02 Robert Dewar <dewar@adacore.com>
+
+ * back_end.adb (Call_Back_End): Remove previous patch,
+ the back end now gets to see the result of -gnatd.1
+ (Unnest_Subprogram_Mode) processing.
+ * elists.ads, elists.adb (List_Length): New function.
+ * exp_unst.ads, exp_unst.adb: Major changes, first complete version.
+ * sem_util.adb (Check_Nested_Access): Handle formals in
+ Unnest_Subprogram_Mode.
+ (Adjust_Named_Associations): Minor reformatting.
+ * sprint.adb (Sprint_Node_Actual): Fix failure to print aliased
+ for parameters.
+
+2015-03-02 Robert Dewar <dewar@adacore.com>
+
+ * atree.ads, atree.adb (Uint24): New function
+ (Set_Uint24): New procedure.
+ * atree.h (Uint24): New macro for field access.
+ * back_end.adb (Call_Back_End): For now, don't call back end
+ if unnesting subprogs.
+ * einfo.adb (Activation_Record_Component): New field
+ (Subps_Index): New field.
+ * einfo.ads (Activation_Record_Component): New field
+ (Subps_Index): New field Minor reordering of comments into alpha order.
+ * exp_unst.ads, exp_unst.adb: Continued development.
+
+2015-03-02 Gary Dismukes <dismukes@adacore.com>
+
+ * exp_disp.ads: Minor reformatting.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Chain_Use_Clause): Do not chain use clause from
+ ancestor to list of use clauses active in descendant unit if we
+ are within the private part of an intervening parent, to prevent
+ circularities in use clause list.
+
+2015-03-02 Javier Miranda <miranda@adacore.com>
+
+ * exp_ch9.adb (Build_Corresponding_Record): Propagate type
+ invariants to the corresponding record type.
+ * exp_disp.ad[sb] (Set_DT_Position_Value): New subprogram
+ which sets the value of the DTC_Entity associated with a given
+ primitive of a tagged type and propagates the value to the
+ wrapped subprogram.
+ (Set_DTC_Entity_Value): Propagate the DTC
+ value to the wrapped entity.
+ * sem_ch13.adb (Build_Invariant_Procedure): Append the code
+ associated with invariants of progenitors.
+ * sem_ch3.adb (Build_Derived_Record_Type): Inherit type invariants
+ of parents and progenitors.
+ (Process_Full_View): Check hidden inheritance of class-wide type
+ invariants.
+ * sem_ch7.adb (Analyze_Package_Specification): Do not generate
+ the invariant procedure for interface types; build the invariant
+ procedure for tagged types inheriting invariants from their
+ progenitors.
+ * sem_prag.adb (Pragma_Invariant) Allow invariants in interface
+ types but do not build their invariant procedure since their
+ invariants will be propagated to the invariant procedure of
+ types covering the interface.
+ * exp_ch6.adb, exp_disp.adb, sem_ch3.adb, sem_ch7.adb,
+ sem_ch8.adb, sem_disp.adb: Replace all calls to Set_DT_Position
+ by calls to Set_DT_Position_Value.
+
+2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_attr.adb (Analyze_Attribute): Factor out heavily indented
+ code in Denote_Same_Function. Do not analyze attribute 'Result
+ when it is inside procedure _Postconditions. Remove a misplaced
+ warning diagnostic. Code cleanup.
+ (Denote_Same_Function): New routine.
+ * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Code
+ cleanup. Warn on pre/postconditions on an inlined subprogram.
+ (Analyze_Pragma, Refined_Post case): Warn on pre/postconditions on
+ an inlined subprogram.
+ (Analyze_Pre_Post_Condition_In_Decl_Part): Code cleanup. Warn on
+ pre/post condition on an inlined subprogram.
+ (Analyze_Test_Case_In_Decl_Part): Code cleanup. Warn on
+ pre/postconditions on an inlined subprogram.
+ (Check_Postcondition_Use_In_Inlined_Subprogram): New routine.
+
+2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_prag.adb (Ensure_Aggregate_Form):
+ Ensure that the name denoted by the Chars of a pragma argument
+ association has the proper Sloc when converted into an aggregate.
+
+2015-03-02 Bob Duff <duff@adacore.com>
+
+ * sem_ch6.adb (Check_Private_Overriding): Capture
+ Incomplete_Or_Partial_View in a constant. This is cleaner and
+ more efficient.
+
+2015-03-02 Gary Dismukes <dismukes@adacore.com>
+
+ * einfo.ads, exp_unst.ads: Minor reformatting.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * a-strsea.adb (Find_Token): Ensure that the range of iteration
+ does not perform any improper character access. This prevents
+ erroneous access in the unusual case of an empty string target
+ and a From parameter less than Source'First.
+
+2015-03-02 Robert Dewar <dewar@adacore.com>
+
+ * elists.adb (List_Length): Fix incorrect result.
+
+2015-03-02 Bob Duff <duff@adacore.com>
+
+ * sem_ch6.adb (Check_Private_Overriding): Refine the legality
+ checks here. It used to check that the function is merely
+ overriding SOMEthing. Now it checks that the function is
+ overriding a corresponding public operation. This is a correction
+ to the implementation of the rule in RM-3.9.3(10).
+
+2015-03-02 Robert Dewar <dewar@adacore.com>
+
+ * debug.adb: Document new debug flag -gnatd.1.
+ * einfo.ads, einfo.adb (Has_Nested_Subprogram): New flag.
+ (Has_Uplevel_Reference): New flag (Is_Static_Type): New flag.
+ (Uplevel_Reference_Noted):New flag (Uplevel_References): New field.
+ * elists.ads elists.adb (List_Length): New function.
+ * exp_ch6.adb (Expand_N_Subprogram_Body): Call Unnest_Subprogram
+ when appropriate (Process_Preconditions): Minor code
+ reorganization and reformatting
+ * exp_unst.ads, exp_unst.adb: New files.
+ * gnat1drv.adb (Adjust_Global_Switches): Set
+ Unnest_Subprogram_Mode if -gnatd.1
+ * namet.ads, namet.adb (Name_Find_Str): New version of Name_Find with
+ string argument.
+ * opt.ads (Unnest_Subprogram_Mode): New flag.
+ * par-ch3.adb (P_Identifier_Declarations): Fixes to -gnatd.2 handling.
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set
+ Has_Nested_Subprogram flag.
+ * sem_ch8.adb (Find_Direct_Name): New calling sequence for
+ Check_Nested_Access.
+ (Find_Selected_Component): Minor comment addition.
+ * sem_util.adb (Check_Nested_Access): New version for use with Exp_Unst.
+ (Note_Possible_Modification): New calling sequence for
+ Check_Nested_Access.
+ * sem_util.ads (Check_Nested_Access): New version for use with Exp_Unst.
+ * gcc-interface/Make-lang.in (GNAT1_OBJS): Add exp_unst.o
+
+2015-03-02 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * gcc-interface/utils.c (gnat_pushdecl): For non-artificial pointer
+ types, preserve the original type and create copies just like the C
+ front-end does. For artificial ones, do not define a name for
+ the original type.
+ (create_type_decl): When gnat_pushdecl made the input type the
+ original type for the new declaration, do not define a stub
+ declaration for it.
+ * gcc-interface/utils2.c (build_binary_op): Accept two different
+ pointer types when they point to the same type.
+
+2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_util.adb (Possible_Bit_Aligned_Component): Do not process
+ an unanalyzed node.
+ * sem_util.adb (Kill_Current_Values): Do not invalidate and
+ de-null a constant.
+
+2015-03-02 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor
+ reformatting.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb: extend use of Available_Subtype.
+
+2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_prag.adb (Duplication_Error): Remove the special handling
+ of 'Class or _Class in the context of pre/postconditions.
+ (Process_Class_Wide_Condition): Remove the special handling of
+ 'Class or _Class in the context of pre/postconditions.
+ * sem_util.adb (Original_Aspect_Pragma_Name): Names Pre_Class
+ and Post_Class no longer need to be converted to _Pre and _Post.
+ * sem_util.ads (Original_Aspect_Pragma_Name): Update the comment
+ on usage.
+
+2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * exp_ch6.adb (Process_Preconditions): Modify the
+ mechanism that find the first source declaration to correct exit
+ the loop once it has been found.
+
+2015-03-02 Gary Dismukes <dismukes@adacore.com>
+
+ * a-strsea.adb: Minor typo fix.
+
+2015-03-02 Bob Duff <duff@adacore.com>
+
+ * einfo.ads: Minor comment fixes.
+
+2015-03-02 Gary Dismukes <dismukes@adacore.com>
+
+ * einfo.adb, checks.adb: Minor reformatting and typo fixes.
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_aggr.adb (Get_Assoc_Expr): If the Default_Component_Value
+ is defined for the array type, use it instead of a Default_Value
+ specified for the component type itself.
+
+2015-03-02 Thomas Quinot <quinot@adacore.com>
+
+ * exp_attr.adb (Expand_N_Attribute_Reference, case Input): When
+ expanding a 'Input attribute reference for a class-wide type,
+ do not generate a separate object declaration for the controlling
+ tag dummy object; instead, generate the expression inline in the
+ dispatching call. Otherwise, the declaration (which involves a
+ call to String'Input, returning a dynamically sized value on the
+ secondary stack) will be expanded outside of proper secondary
+ stack mark/release operations, and will thus cause a secondary
+ stack leak.
+
+2015-03-02 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * checks.adb (Add_Validity_Check): Change the names of all
+ formal parameters to better illustrate their purpose. Update
+ the subprogram documentation. Update all occurrences of the
+ formal parameters. Generate a pre/postcondition pragma by
+ calling Build_Pre_Post_Condition.
+ (Build_PPC_Pragma): Removed.
+ (Build_Pre_Post_Condition): New routine.
+ * einfo.adb Node8 is no longer used as Postcondition_Proc. Node14
+ is now used as Postconditions_Proc. Flag240 is now renamed to
+ Has_Expanded_Contract. (First_Formal): The routine can now
+ operate on generic subprograms.
+ (First_Formal_With_Extras): The routine can now operate on generic
+ subprograms.
+ (Has_Expanded_Contract): New routine.
+ (Has_Postconditions): Removed.
+ (Postcondition_Proc): Removed.
+ (Postconditions_Proc): New routine.
+ (Set_Has_Expanded_Contract): New routine.
+ (Set_Has_Postconditions): Removed.
+ (Set_Postcondition_Proc): Removed.
+ (Set_Postconditions_Proc): New routine.
+ (Write_Entity_Flags): Remove the output of Has_Postconditions. Add
+ the output of Has_Expanded_Contract.
+ (Write_Field8_Name): Remove the output of Postcondition_Proc.
+ (Write_Field14_Name): Add the output of Postconditions_Proc.
+ * einfo.ads New attributes Has_Expanded_Contract and
+ Postconditions_Proc along with occurrences in entities.
+ Remove attributes Has_Postconditions and Postcondition_Proc
+ along with occurrences in entities.
+ (Has_Expanded_Contract): New routine along with pragma Inline.
+ (Has_Postconditions): Removed along with pragma Inline.
+ (Postcondition_Proc): Removed along with pragma Inline.
+ (Postconditions_Proc): New routine along with pragma Inline.
+ (Set_Has_Expanded_Contract): New routine along with pragma Inline.
+ (Set_Has_Postconditions): Removed along with pragma Inline.
+ (Set_Postcondition_Proc): Removed along with pragma Inline.
+ (Set_Postconditions_Proc): New routine along with pragma Inline.
+ * exp_ch6.adb (Add_Return): Code cleanup. Update the
+ generation of the call to the _Postconditions routine of
+ the procedure. (Expand_Non_Function_Return): Reformat the
+ comment on usage. Code cleanup. Update the generation of
+ the call to the _Postconditions routine of the procedure or
+ entry [family].
+ (Expand_Simple_Function_Return): Update the
+ generation of the _Postconditions routine of the function.
+ (Expand_Subprogram_Contract): Reimplemented.
+ * exp_ch6.ads (Expand_Subprogram_Contract): Update the parameter
+ profile along the comment on usage.
+ * exp_ch9.adb (Build_PPC_Wrapper): Code cleanup.
+ (Expand_N_Task_Type_Declaration): Generate pre/postconditions
+ wrapper when the entry [family] has a contract with
+ pre/postconditions.
+ * exp_prag.adb (Expand_Attributes_In_Consequence): New routine.
+ (Expand_Contract_Cases): This routine and its subsidiaries now
+ analyze all generated code.
+ (Expand_Old_In_Consequence): Removed.
+ * sem_attr.adb Add with and use clause for Sem_Prag.
+ (Analyze_Attribute): Reimplment the analysis of attribute 'Result.
+ (Check_Use_In_Test_Case): Use routine Test_Case_Arg to obtain
+ "Ensures".
+ * sem_ch3.adb (Analyze_Declarations): Analyze the contract of
+ a generic subprogram.
+ (Analyze_Object_Declaration): Do not create a contract node.
+ (Derive_Subprogram): Do not create a contract node.
+ * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Do
+ not create a contract node.
+ (Analyze_Completion_Contract): New routine.
+ (Analyze_Function_Return): Alphabetize.
+ (Analyze_Generic_Subprogram_Body): Alphabetize. Do not create a
+ contract node. Do not copy pre/postconditions to the original
+ generic template.
+ (Analyze_Null_Procedure): Do not create a contract node.
+ (Analyze_Subprogram_Body_Contract): Reimplemented.
+ (Analyze_Subprogram_Body_Helper): Do not mark the enclosing scope
+ as having postconditions. Do not create a contract node. Analyze
+ the subprogram body contract of a body that acts as a compilation
+ unit. Expand the subprogram contract after the declarations have
+ been analyzed.
+ (Analyze_Subprogram_Contract): Reimplemented.
+ (Analyze_Subprogram_Specification): Do not create a contract node.
+ (List_Inherited_Pre_Post_Aspects): Code cleanup.
+ * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Update the
+ comment on usage.
+ (Analyze_Subprogram_Contract): Update the
+ parameter profile and the comment on usage.
+ * sem_ch7.adb (Analyze_Package_Body_Helper): Do not create a
+ contract node.
+ (Analyze_Package_Declaration): Do not create a
+ contract node.
+ (Is_Subp_Or_Const_Ref): Ensure that the prefix has an entity.
+ * sem_ch8.adb (Analyze_Subprogram_Renaming): Do not create a
+ contract node.
+ * sem_ch9.adb (Analyze_Entry_Declaration): Do not create a
+ contract node.
+ * sem_ch10.adb (Analyze_Compilation_Unit): Move local variables to
+ their proper section and alphabetize them. Analyze the contract of
+ a [generic] subprogram after all Pragmas_After have been analyzed.
+ (Analyze_Subprogram_Body_Stub_Contract): Alphabetize.
+ * sem_ch12.adb (Analyze_Generic_Package_Declaration): Do not
+ create a contract node.
+ (Analyze_Generic_Subprogram_Declaration):
+ Alphabetize local variables. Do not create a contract
+ node. Do not generate aspects out of pragmas for ASIS.
+ (Analyze_Subprogram_Instantiation): Instantiate
+ the contract of the subprogram. Do not create a
+ contract node. (Instantiate_Contract): New routine.
+ (Instantiate_Subprogram_Body): Alphabetize local variables.
+ (Save_Global_References_In_Aspects): New routine.
+ (Save_References): Do not save the global references found within
+ the aspects of a generic subprogram.
+ * sem_ch12.ads (Save_Global_References_In_Aspects): New routine.
+ * sem_ch13.adb (Analyze_Aspect_Specifications): Do not use
+ Original_Node for establishing linkages.
+ (Insert_Pragma): Insertion in a subprogram body takes precedence over
+ the case where the subprogram body is also a compilation unit.
+ * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Use
+ Get_Argument to obtain the proper expression. Install the generic
+ formals when the related context is a generic subprogram.
+ (Analyze_Depends_In_Decl_Part): Use Get_Argument to obtain
+ the proper expression. Use Corresponding_Spec_Of to obtain
+ the spec. Install the generic formal when the related context
+ is a generic subprogram.
+ (Analyze_Global_In_Decl_Part): Use Get_Argument to obtain the proper
+ expression. Use Corresponding_Spec_Of to obtain the spec. Install the
+ generic formal when the related context is a generic subprogram.
+ (Analyze_Initial_Condition_In_Decl_Part): Use Get_Argument
+ to obtain the proper expression. Remove the call to
+ Check_SPARK_Aspect_For_ASIS as the analysis is now done
+ automatically.
+ (Analyze_Pragma): Update all occurrences
+ to Original_Aspect_Name. Pragmas Contract_Cases, Depends,
+ Extensions_Visible, Global, Postcondition, Precondition and
+ Test_Case now carry generic templates when the related context
+ is a generic subprogram. The same pragmas are no longer
+ forcefully fully analyzed when the context is a subprogram
+ that acts as a compilation unit. Pragmas Abstract_State,
+ Initial_Condition, Initializes and Refined_State have been clean
+ up. Pragmas Post, Post_Class, Postcondition, Pre, Pre_Class
+ and Precondition now use the same routine for analysis. Pragma
+ Refined_Post does not need to check the use of 'Result or
+ the lack of a post-state in its expression. Reimplement the
+ analysis of pragma Test_Case.
+ (Analyze_Pre_Post_Condition): New routine.
+ (Analyze_Pre_Post_Condition_In_Decl_Part):
+ Reimplemented.
+ (Analyze_Refined_Depends_In_Decl_Part): Use Get_Argument to obtain the
+ proper expression.
+ (Analyze_Refined_Global_In_Decl_Part): Use Get_Argument to obtain
+ the proper expression.
+ (Analyze_Test_Case_In_Decl_Part): Reimplemented.
+ (Check_Pre_Post): Removed.
+ (Check_Precondition_Postcondition): Removed.
+ (Check_SPARK_Aspect_For_ASIS): Removed.
+ (Check_Test_Case): Removed.
+ (Collect_Subprogram_Inputs_Outputs): Use Get_Argument
+ to obtain the proper expression. Use Corresponding_Spec_Of to
+ find the proper spec.
+ (Create_Generic_Template): New routine.
+ (Duplication_Error): New routine.
+ (Expression_Function_Error): New routine.
+ (Find_Related_Subprogram_Or_Body): Moved to the spec
+ of Sem_Prag. Emit precise error messages. Account for cases of
+ rewritten expression functions, generic instantiations, handled
+ sequence of statements and pragmas from aspects.
+ (Get_Argument): New routine.
+ (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed.
+ (Preanalyze_CTC_Args): Removed.
+ (Process_Class_Wide_Condition): New routine.
+ * sem_prag.ads (Analyze_Test_Case_In_Decl_Part): Update
+ the parameter profile along with the comment on usage.
+ (Find_Related_Subprogram_Or_Body): Moved from the body of Sem_Prag.
+ (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed.
+ (Test_Case_Arg): New routine.
+ * sem_util.adb Add with and use clauses for Sem_Ch6.
+ (Add_Contract_Item): This routine now creates a contract
+ node the first time an item is added. Remove the duplicate
+ aspect/pragma checks.
+ (Check_Result_And_Post_State): Reimplemented.
+ (Corresponding_Spec_Of): New routine.
+ (Get_Ensures_From_CTC_Pragma): Removed.
+ (Get_Requires_From_CTC_Pragma): Removed.
+ (Has_Significant_Contract): New routine.
+ (Inherit_Subprogram_Contract): Inherit only if the source
+ has a contract.
+ (Install_Generic_Formals): New routine.
+ (Original_Aspect_Name): Removed.
+ (Original_Aspect_Pragma_Name): New routine.
+ * sem_util.ads (Check_Result_And_Post_State): Reimplemented.
+ (Corresponding_Spec_Of): New routine.
+ (Get_Ensures_From_CTC_Pragma): Removed.
+ (Get_Requires_From_CTC_Pragma): Removed.
+ (Has_Significant_Contract): New routine.
+ (Install_Generic_Formals): New routine.
+ (Original_Aspect_Name): Removed.
+ (Original_Aspect_Pragma_Name): New routine.
+ * sem_warn.adb Add with and use clauses for Sem_Prag.
+ (Within_Postcondition): Use Test_Case_Arg to extract "Ensures".
+
+2015-03-02 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch8.adb (Available_Subtype): Optimization in
+ Find_Selected_Component: when safe, use existing subtype of
+ array component, possibly discriminant-dependent, rather than
+ creating new subtype declaration for it. In this fashion different
+ occurrences of the component have the same subtype, rather than
+ just equivalent ones. Simplifies value tracing in GNATProve.
+
+2015-03-01 Arnaud Charlet <charlet@adacore.com>
+
+ PR ada/65259
+
+ * doc/gnat_ugn/gnat_project_manager.rst,
+ doc/gnat_ugn/platform_specific_information.rst: Remove reference to
+ image, too troublesome with texi format.
+ * gnat_ugn.texi: Regenerate.
+
+2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
+
+ PR libgomp/64625
+ * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8): Remove.
+ (DEF_FUNCTION_TYPE_VAR_12): Likewise.
+ (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
+
+2015-02-23 Thomas Schwinge <thomas@codesourcery.com>
+
+ * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8): Fix number of
+ arguments parameter.
+ (DEF_FUNCTION_TYPE_VAR_12): Likewise.
+
+2015-02-22 Arnaud Charlet <charlet@adacore.com>
+
+ * doc/Makefile: postprocess texinfo files to update @dircategory
+ and update texi files under gcc/ada.
+ * gnat_ugn.texi, gnat_rm.texi: Regenerated.
+
+2015-02-22 Arnaud Charlet <charlet@adacore.com>
+
+ * doc/gnat_ugn/project-manager-figure.png,
+ doc/gnat_ugn/rtlibrary-structure.png: New.
+
+2015-02-22 Tom de Vries <tom@codesourcery.com>
+
+ PR ada/65100
+ * gnat-style.texi (@subsection Loop Statements): Replace @noindent by
+ @item, and fix warning '@itemize has text but no @item'.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Analyze_Pragma, case Obsolescent): Pragma
+ legally applies to an abstract subprogram declaration.
+ * freeze.adb: Minor comment addition.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * errout.ads: Document replacement of Name_uPre/Post/Type_Invariant.
+ * erroutc.adb (Set_Msg_Str): Replace _xxx.
+ (Pre/Post/Type_Invariant) by xxx'Class.
+ * erroutc.ads (Set_Msg_Str): Replace _xxx.
+ (Pre/Post/Type_Invariant) by xxx'Class.
+ * sem_prag.adb (Fix_Error): Remove special casing of
+ Name_uType_Invariant.
+ (Analyze_Pre_Post_Condition_In_Decl_Part): Remove special casing of
+ Name_uPre and Name_uPost in aspect case (done in Errout now).
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * g-alveop.adb: Minor style fixes.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * freeze.adb (Warn_Overlay): Guard against blow up with address
+ clause.
+
+2015-02-20 Bob Duff <duff@adacore.com>
+
+ * exp_attr.adb (May_Be_External_Call): Remove this. There is no need
+ for the compiler to guess whether the call is internal or external --
+ it is always external.
+ (Expand_Access_To_Protected_Op): For P'Access, where P
+ is a protected subprogram, always create a pointer to the
+ External_Subprogram.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * a-dispat.adb, a-stcoed.ads: Minor reformatting.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch13.adb (Build_Discrete_Static_Predicate): Allow static
+ predicate for non-static subtype.
+ (Build_Predicate_Functions): Do not assume subtype associated with a
+ static predicate must be static.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * errout.adb (Set_Msg_Node): Better handling of internal names
+ (Set_Msg_Node): Kill message when we cannot eliminate internal name.
+ * errout.ads: Document additional case of message deletion.
+ * namet.adb (Is_Internal_Name): Refined to consider wide
+ strings in brackets notation and character literals not to be
+ internal names.
+ * sem_ch8.adb (Find_Selected_Component): Give additional error
+ when selector name is a subprogram whose first parameter has
+ the same type as the prefix, but that type is untagged.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * g-allein.ads, g-alveop.adb, g-alveop.ads, opt.ads: Minor reformatting
+
+2015-02-20 Tristan Gingold <gingold@adacore.com>
+
+ * opt.ads (GNAT_Mode_Config): New variable.
+ * opt.adb (Set_Opt_Config_Switches): Consider GNAT_Mode_Config
+ to set Assertions_Enabled.
+ * switch-c.adb (Scan_Front_End_Switches): Set GNAT_Mode_Config
+ for -gnatg.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add an additional
+ comment regarding the handling of unterminated fixed-point
+ constants.
+ * s-valuns.ads (Scan_Raw_Unsigned): Add comments
+ corresponding to those previously added for
+ System.Val_LLU.Scan_Raw_Long_Long_Unsigned.
+
+2015-02-20 Olivier Hainque <hainque@adacore.com>
+
+ * g-allein.ads, g-alveop.ads, g-alveop.adb: Code clean ups.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * sem_prag.adb: Minor comment clarification.
+
+2015-02-20 Olivier Hainque <hainque@adacore.com>
+
+ * g-allein.ads (vec_ctf, vec_vcsfx, vec_vcfux): Remove.
+ * g-alleve.ads, g-alleva.adb (vcfux): Likewise.
+ * g-alveop.ads (vec_vcfsx, vec_vcfux): Just rename the ll versions.
+ (vec_ctf): Now renamings as well.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * switch-c.adb, bindgen.adb: Minor reformatting.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Analyze_Pragma, case Type_Invariant):
+ Invariant'class is allowed on an abstract type.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Access_Definition): If the access definition is
+ for a protected component and defines an access to protected
+ subprogram, do not create an itype reference for it because a
+ full type declaration will be built in order to generate the
+ proper equivalent type.
+ (Analyze_Subtype_Declaration): Add information of incomplete
+ subtypes, for Ada 2012 extended uses of incomplete types.
+
+2015-02-20 Gary Dismukes <dismukes@adacore.com>
+
+ * sem_res.adb: Minor reformatting.
+
+2015-02-20 Vincent Celier <celier@adacore.com>
+
+ * switch-c.adb (Scan_Front_End_Switches): When comparing runtime
+ path name for several switches --RTS, use the normalized path
+ names.
+
+2015-02-20 Vincent Celier <celier@adacore.com>
+
+ * bindgen.adb: Minor reformatting and code reorganization.
+
+2015-02-20 Jose Ruiz <ruiz@adacore.com>
+
+ * a-stcoed.ads: Add spec for this package (Unimplemented_Unit).
+ * impunit.adb (Non_Imp_File_Names_12): Mark unit a-stcoed.ads as
+ defined by Ada 2012.
+
+2015-02-20 Arnaud Charlet <charlet@adacore.com>
+
+ * sysdep.c, expect.c, s-oscons-tmplt.c, gsocket.h, adaint.c: Remove
+ obsolete references to RTX, nucleus, VMS.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_prag.adb (Fix_Error): For an illegal Type_Invariant'Class
+ aspect, use name that mentions Class explicitly, rather than
+ compiler-internal name.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * debug.adb: Add documentation for -gnatd.2 (allow statements
+ in decl sequences).
+ * par-ch3.adb (P_Identifier_Declarations): Handle
+ statement appearing where declaration expected more cleanly.
+ (Statement_When_Declaration_Expected): Implement debug flag
+ -gnatd.2.
+
+2015-02-20 Jose Ruiz <ruiz@adacore.com>
+
+ * a-dinopr.ads: Add spec for this package (Unimplemented_Unit).
+ * a-dispat.ads (Yield): Include procedure added in Ada 2012.
+ * a-dispat.adb (Yield): Implement procedure added in Ada 2012.
+ * impunit.adb (Non_Imp_File_Names_05): Mark unit a-dinopr.ads as
+ defined by Ada 2005.
+ * snames.ads-tmpl (Name_Non_Preemptive_FIFO_Within_Priorities):
+ This is the correct name for the dispatching policy (FIFO was
+ missing).
+
+2015-02-20 Javier Miranda <miranda@adacore.com>
+
+ * sem_res.adb (Resolve_Type_Conversion): If the type of the
+ operand is the limited-view of a class-wide type then recover
+ the class-wide type of the non-limited view.
+
+2015-02-20 Arnaud Charlet <charlet@adacore.com>
+
+ * gcc-interface/Makefile.in: Remove references to nucleus.
+ * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Procedure): Set
+ extern_flag to true for Inline_Always subprograms with
+ Intrinsic convention.
+
+2015-02-20 Yannick Moy <moy@adacore.com>
+
+ * sem_prag.ads: Minor typo in comment.
+
+2015-02-20 Pascal Obry <obry@adacore.com>
+
+ * s-osprim-mingw.adb: Fix Get_Base_Time parameter mode.
+
+2015-02-20 Vincent Celier <celier@adacore.com>
+
+ * makeutl.adb (Get_Directories.Add_Dir): Add a directory only
+ if it exists.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * sem_eval.ads: Minor reformatting.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * freeze.adb (Size_Known): Do not set the packed size for
+ independent type or component.
+ (Freeze_Array_Type): Check for Independent[_Components] with packing
+ or explicit component size clause.
+ * gnat1drv.adb (Post_Compilation_Validation_Checks): Do the validation
+ of independence pragmas only for non-GCC back-ends.
+ * sem_ch13.adb (Initialize): Likewise for the initialization.
+ * sem_prag.adb (Record_Independence_Check): New procedure to record an
+ independence check in the table.
+ (Analyze_Pragma): Use it throughout instead of doing it manually.
+ * gcc-interface/decl.c (gnat_to_gnu_field): Add support for
+ independent type or component.
+
+2015-02-20 Thomas Quinot <quinot@adacore.com>
+
+ * adaint.c (__gnat_readdir): For Solaris, use 64 bit variants of
+ struct direct and readdir. This is required for NFS filesystems
+ mounted from servers that use 64-bit cookies.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Subprogram_Instantiaion): New subprogram
+ Build_Subprogram_Renaming, to create renaming of subprogram
+ instance in the the declaration of the wrapper package rather
+ than in its body, so that it is available for analysis of aspects
+ propagated from generic to instantiation.
+ (Check_Mismatch): An actual for a formal package that is an
+ incomplete type matches a formal type that is incomplete.
+ (Instantiate_Package_Body): Move code that builds subprogram
+ renaming to Analyze_Subprogram_Instantiation.
+ (Instantiate_Type): The generated subtype is a limited view if
+ the actual is a limited view.
+ (Load_Parent_Of_Generic): Retrieve instance declaration from
+ its new position within wrapper package.
+
+2015-02-20 Arnaud Charlet <charlet@adacore.com>
+
+ * s-parame-vxworks.adb, s-os_lib.ads: Update comments.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * s-osinte-vxworks.ads (To_Timespec): Add comment about the
+ issue of negative arguments.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat1drv.adb: Minor consistency fix.
+
+2015-02-20 Pascal Obry <obry@adacore.com>
+
+ * s-osprim-mingw.adb (Get_Base_Time): Properly release lock in all
+ paths.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * inline.adb (Expand_Inlined_Call): Skip again calls to subprogram
+ renamings.
+ * exp_ch6.adb (Expand_Call): Use back-end inlining
+ instead of expansion for simple subprogram renamings.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * exp_util.adb: Minor reformatting.
+
+2015-02-20 Vincent Celier <celier@adacore.com>
+
+ * switch-c.adb (Scan_Front_End_Switches): Do not fail when --RTS=
+ is specified several times with different values that indicates
+ the same runtime directory.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_attr.adb (Check_Not_Incomplete_Type): Clean up code to
+ handle properly illegal uses of attributes on prefixes on an
+ incomplete type, both when the type of the prefix is locally
+ incomplete, and when it is a limited view of a type whose
+ non-limited view is not available.
+ (Analyze_Attribute): Add calls to Check_Not_Incomplete_Type for
+ 'Address and others.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch6.adb: Fix minor typo in comment.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sinfo.ads: Add comment.
+
+2015-02-20 Olivier Hainque <hainque@adacore.com>
+
+ * opt.ads: Replace Opt.Suppress_All_Inlining by two separate
+ flags controlling the actual FE inlining out of pragma Inline
+ and pragma Inline_Always.
+ * adabkend.adb (Scan_Compiler_Arguments): Set both flags to True
+ on -fno-inline, which disables all inlining in compilers with
+ an Ada back-end and without back-end inlining support.
+ * back_end.adb (Scan_Back_End_Switches): Set the Inline related
+ flag to True on -fno-inline and leave Inline_Always alone for
+ gcc back-ends.
+ * back_end.ads (Scan_Compiler_Arguments): Adjust spec wrt the
+ names of the Opt flags it sets.
+ * gnat1drv.adb (Adjust_Global_Switches): Remove test on
+ Opt.Suppress_All_Inlining in the Back_End_Inlining computation.
+ * sem_prag.adb (Make_Inline): Remove early return conditioned
+ on Opt.Suppress_All_Inlining.
+ * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the flags to
+ disable the calls to Build_Body_To_Inline otherwise triggered
+ by pragma Inline or Inline_Always. This will prevent actual
+ front-end inlining of the subprogram on calls.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch3.adb (Default_Initialize_Object): Call Add_Inlined_Body on the
+ Abort_Undefer_Direct function.
+ * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise.
+ * exp_intr.adb (Expand_Unc_Deallocation): Likewise.
+ * exp_prag.adb (Expand_Pragma_Abort_Defer): Likewise.
+ * exp_ch4.adb (Expand_N_Selected_Component): Adjust call to
+ Add_Inlined_Body.
+ * exp_ch6.adb (Expand_Call): Adjust calls to Add_Inlined_Body.
+ Remove call to Register_Backend_Call and move code resetting
+ Needs_Debug_Info on inlined subprograms to...
+ * inline.ads (Add_Inlined_Body): Add N parameter.
+ (Register_Backend_Call): Delete.
+ * inline.adb (Add_Inlined_Body): ...here and simplify.
+ Register the call with Backend_Calls directly.
+ (Register_Backend_Call): Delete.
+ * s-stalib.ads (Abort_Undefer_Direct): Restore pragma Inline.
+
+2015-02-20 Eric Botcazou <ebotcazou@adacore.com>
+
+ * s-stalib.ads: Fix typo.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch3.adb (Default_Initialize_Object): If the object has a
+ delayed freeze, the actions associated with default initialization
+ must be part of the freeze actions, rather that being inserted
+ directly after the object declaration.
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * lib-load.adb: Minor comment update.
+
+2015-02-20 Vincent Celier <celier@adacore.com>
+
+ * prj-proc.adb (Process_Case_Construction): When there are
+ incomplete withed projects and the case variable is unknown,
+ skip the case construction.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch6.adb (Expand_Actuals): Add caller-side invariant checks
+ when an actual is a view conversion, either because the call is
+ to an inherited operation, or because the actual is an explicit
+ type conversion to an ancestor type. Fixes ACATS 4.0D: C732001
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * einfo.ads: Minor comment updates Fix missing pragma Inline
+ for Set_Partial_View_Has_Unknown_Discr.
+ * einfo.adb (Write_Entity_Flags): Add missing entry for
+ Partial_View_Has_Unknown_Discr.
+ * sem_ch3.adb: Minor reformatting.
+
+2015-02-20 Vincent Celier <celier@adacore.com>
+
+ * opt.ads: Minor cleanup: remove mention of gprmake.
+ * s-stalib.ads (Abort_Undefer_Direct): Do not inline.
+ * s-tataat.adb: Do not call System.Tasking.Self but directly
+ System.Task_Primitives.Operations.Self.
+
+2015-02-20 Arnaud Charlet <charlet@adacore.com>
+
+ * gnat_rm.texi, gnat_ugn.texi: Now automatically generated from
+ sphinx in the doc directory.
+ * doc: New directory containing sphinx versions of gnat_rm and gnat_ugn
+
+2015-02-20 Robert Dewar <dewar@adacore.com>
+
+ * sem_res.adb: Minor reformatting.
+ * exp_ch9.adb (Build_Protected_Spec): Copy Aliased setting when
+ building spec.
+ * sem_ch13.adb (Analyze_Aspect_Specifications): Exclude Boolean
+ aspects from circuitry setting delay required to false if the
+ argument is an integer literal.
+
+2015-02-20 Ed Schonberg <schonberg@adacore.com>
+
+ * einfo.ads. einfo.adb (Partial_View_Has_Unknown_Discr): New flag
+ on type entities, to enforce AI12-0133: default initialization
+ of types whose partial view has unknown discriminants does not
+ get an invariant check, because clients of the unit can never
+ declare objects of such types.
+ * sem_ch3.adb (Find_Type_Name); Set new flag
+ Partial_View_Has_Unknown_Discr when needed.
+ * exp_ch3.adb (Expand_N_Object_Declaration): Use flag to suppress
+ generation of invariant call on default-initialized object.
+
+2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_param): Do not strip the padding
+ if the parameter either is passed by reference or if the alignment
+ would be lowered.
+
+2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (is_cplusplus_method): Use Is_Primitive flag to
+ detect primitive operations of tagged and untagged types.
+
+2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity): Do not bother about alias
+ sets in presence of derivation for subprogram types.
+
+2015-02-08 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils.c (begin_subprog_body): Assert that the body is
+ present in the same context as the declaration.
+
+2015-02-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/64340
+ * gcc-interface/trans.c (gigi): Recreate optimization_default_node
+ and optimization_current_node after tweaking global_options.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * prj-proc.adb, sem_aux.adb, exp_ch9.adb, errout.adb, prj-dect.adb,
+ prj-nmsc.adb: Minor reformatting.
+
+2015-02-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_type.adb (Covers): In ASIS_Mode the Corresponding_Record
+ of a protected type may not be available, so to check conformance
+ with an interface type, examine the interface list in the type
+ declaration directly.
+ (Write_Overloads): Improve information for indirect calls,
+ for debugger use.
+
+2015-02-05 Ed Schonberg <schonberg@adacore.com>
+
+ * exp_ch3.adb (Make_Tag_Assignment): Do not perform this
+ expansion activity in ASIS mode.
+
+2015-02-05 Javier Miranda <miranda@adacore.com>
+
+ * errout.adb (Error_Msg_PT): Add missing error.
+ * sem_ch6.adb (Check_Synchronized_Overriding): Check the missing
+ RM rule. Code cleanup.
+ * exp_ch9.adb (Build_Wrapper_Spec): Propagate "constant" in
+ anonymous access types. Found working on the tests. Code cleanup.
+
+2015-02-05 Vincent Celier <celier@adacore.com>
+
+ * prj-dect.adb (Parse_Attribute_Declaration): Continue scanning
+ when there are incomplete withs.
+ * prj-nmsc.adb (Process_Naming): Do not try to get the value
+ of an element when it is nil.
+ (Check_Naming): Do not check a nil suffix for illegality
+ * prj-proc.adb (Expression): Do not process an empty term.
+ * prj-strt.adb (Attribute_Reference): If attribute cannot be
+ found, parse a possible index to avoid cascading errors.
+
+2015-02-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_aux.adb (Is_Derived_Type): A subprogram_type generated
+ for an access_to_subprogram declaration is not a derived type.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * errout.adb (Error_Msg_Internal): For non-serious error set
+ Fatal_Error to Ignored.
+ * lib-load.adb (Load_Unit): Minor comment updates.
+ * sem_ch10.adb (Analyze_With_Clause): Propagate Fatal_Error
+ setting from with'ed unit to with'ing unit.
+ * sem_prag.adb (Analyze_Pragma, case Warnings): Document handling
+ of ambiguity.
+
+2015-02-05 Yannick Moy <moy@adacore.com>
+
+ * sem_prag.adb, par-prag.adb: Minor code clean up.
+
+2015-02-05 Yannick Moy <moy@adacore.com>
+
+ * par-prag.adb (Pragma_Warnings): Update for extended form
+ of pragma Warnings. The "one" argument case may now have 2 or
+ 3 arguments.
+ * sem_prag.adb (Analyze_Pragma/Pragma_Warnings): Update for
+ extended form of pragma Warnings. Pragma with tool name is either
+ rewritten as null or as an equivalent form without tool name,
+ before reanalysis.
+ * snames.ads-tmpl (Name_Gnatprove): New name.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * sem_ch13.adb (Add_Invariants): Don't assume invariant is
+ standard Boolean.
+ * sem_prag.adb (Analyze_Pragma, case Check): Don't assume
+ condition is standard Boolean, it can be non-standard derived
+ Boolean.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * checks.adb (Enable_Range_Check): Disconnect attempted
+ optimization for the case of range check for subscript of
+ unconstrained array.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * par-ch13.adb (With_Present): New function
+ (Aspect_Specifications_Present): Handle WHEN in place of WITH
+ (Get_Aspect_Specifications): Comment update.
+ * par.adb: Comment updates.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * errout.adb (Handle_Serious_Error): New setting of Fatal_Error.
+ * frontend.adb (Frontend): New setting of Fatal_Error.
+ * lib-load.adb (Create_Dummy_Package_Unit): New setting of
+ Fatal_Error.
+ (Load_Main_Source): New setting of Fatal_Error
+ (Load_Unit): New setting of Fatal_Error.
+ * lib-writ.adb (Add_Preprocessing_Dependency): New setting of
+ Fatal_Error.
+ (Ensure_System_Dependency): New setting of Fatal_Error.
+ * lib.adb (Fatal_Error): New setting of Fatal_Error
+ (Set_Fatal_Error): New setting of Fatal_Error.
+ * lib.ads: New definition of Fatal_Error and associated routines.
+ * par-ch10.adb (P_Compilation_Unit): New setting of Fatal_Error.
+ * par-load.adb (Load): New setting of Fatal_Error.
+ * rtsfind.adb (Load_RTU): New setting of Fatal_Error.
+ * sem_ch10.adb (Analyze_Compilation_Unit): New setting of
+ Fatal_Error.
+ (Optional_Subunit): New setting of Fatal_Error.
+ (Analyze_Proper_Body): New setting of Fatal_Error.
+ (Load_Needed_Body): New setting of Fatal_Error.
+
+2015-02-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb (Resolve_Call): If the function being called has
+ out parameters do not check for language version if the function
+ comes from a predefined unit, as those are always compiled in
+ Ada 2012 mode.
+
+2015-02-05 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch3.adb (Process_Full_View): Verify that the full view
+ of a type extension must carry an explicit limited keyword if
+ the partial view does (RM 7.3 (10.1)).
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads,
+ sem_warn.ads: Minor reformatting.
+ * exp_ch13.adb (Expand_N_Freeze_Entity): Add guard for aspect
+ deleted by -gnatI.
+ * sem_prag.adb (Analyze_Pragma, case Type_Invariant): Give
+ error for abstract type.
+
+2015-02-05 Yannick Moy <moy@adacore.com>
+
+ * opt.ads (Warn_On_Suspicious_Contract): Update comment
+ describing use.
+ * sem_attr.adb (Analyze_Attribute/Attribute_Update): Warn on
+ suspicious uses of 'Update.
+ * sem_warn.adb, sem_warn.ads (Warn_On_Suspicious_Update): New
+ function issues warning on suspicious uses of 'Update.
+ * g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads: Mark
+ package spec and body as SPARK_Mode Off.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * sem_prag.adb (Set_Elab_Unit_Name): New name for Set_Unit_Name
+ (Analyze_Pragma): Change Set_Unit_Name to Set_Elab_Unit_Name
+ (Set_Elab_Unit_Name): Generate reference for Elaborate[_All]
+ * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
+ for exported entity.
+
+2015-02-05 Hristian Kirtchev <kirtchev@adacore.com>
+
+ * sem_prag.adb (Check_Pragma_Conformance): Add
+ local variable Arg. Ensure that all errors are associated with
+ the pragma if it appears without an argument. Add comments on
+ various cases.
+
+2015-02-05 Robert Dewar <dewar@adacore.com>
+
+ * lib-xref.adb: Minor reformatting.
+
+2015-02-05 Tristan Gingold <gingold@adacore.com>
+
+ PR ada/64349da/64349
+ * env.c: Fix thinko: handle Darwin case before default one.
+
+2015-01-30 Robert Dewar <dewar@adacore.com>
+
+ * a-assert.adb: Minor reformatting.
+ * sem_ch13.adb: Minor comment clarification.
+ * types.ads: Minor comment update.
+ * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Avoid blow up
+ when we have a predicate that is nothing but an inherited dynamic
+ predicate.
+
+2015-01-30 Jerome Guitton <guitton@adacore.com>
+
+ * gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to
+ include cert link spec.
+
+2015-01-30 Robert Dewar <dewar@adacore.com>
+
+ * einfo.ads: Minor comment fix.
+ * freeze.adb (Freeze_Profile): Add test for suspicious import
+ in pure unit.
+ * sem_prag.adb (Process_Import_Or_Interface): Test for suspicious
+ use in Pure unit is now moved to Freeze (to properly catch
+ Pure_Function exemption).
+
+2015-01-30 Bob Duff <duff@adacore.com>
+
+ * sem_res.ads: Minor comment fix.
+ * sem_type.adb: sem_type.adb (Remove_Conversions): Need to
+ check both operands of an operator.
+
+2015-01-30 Yannick Moy <moy@adacore.com>
+
+ * a-assert.ads, a-assert.adb: Mark package spec in SPARK. Set assertion
+ policy for Pre to Ignore.
+ (Assert): Add precondition.
+
+2015-01-30 Robert Dewar <dewar@adacore.com>
+
+ * sem_prag.adb (Process_Import_Or_Interface): Warn if used in
+ Pure unit.
+ * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Clarify
+ documentation for some special cases of invalid attempts at
+ based integers.
+
+2015-01-30 Gary Dismukes <dismukes@adacore.com>
+
+ * errout.ads: Minor reformatting.
+
+2015-01-30 Yannick Moy <moy@adacore.com>
+
+ * inline.adb (Process_Formals): Use the sloc of
+ the inlined node instead of the sloc of the actual parameter,
+ when replacing formal parameters by the actual one.
+
+2015-01-30 Arnaud Charlet <charlet@adacore.com>
+
+ * g-expect.adb (Get_Command_Output): Use infinite timeout when
+ calling Expect.
+
+2015-01-30 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_ch12.adb (Analyze_Associations): If an in-parameter is
+ defaulted in an instantiation, add an entry in the list of actuals
+ to indicate the default value of the formal (as is already done
+ for defaulted subprograms).
+
+2015-01-30 Javier Miranda <miranda@adacore.com>
+
+ * errout.adb (Error_Msg_PT): Minor error phrasing update.
+
+2015-01-30 Robert Dewar <dewar@adacore.com>
+
+ * sem_warn.adb (Warn_On_Known_Condition): Improve error message
+ for object case.
+
+2015-01-30 Pierre-Marie de Rodat <derodat@adacore.com>
+
+ * exp_dbug.adb (Get_Encoded_Name): When
+ -fgnat-encodings=minimal, do not generate names for biased types.
+
+2015-01-30 Tristan Gingold <gingold@adacore.com>
+
+ PR ada/64349
+ * env.c: Move vxworks and darwin includes out of #ifdef IN_RTS.
+
2015-01-30 Gary Dismukes <dismukes@adacore.com>
* freeze.adb: Minor reformatting.