2016-04-21 Jerome Lambourg * s-soflin.adb: Initialize the Stack_Limit global variable. 2016-04-21 Hristian Kirtchev * lib-writ.adb: Minor reformatting. 2016-04-21 Ed Schonberg * exp_pakd.adb (Compute_Number_Components): New function to build an expression that computes the number of a components of an array that may be multidimensional. (Expan_Packed_Eq): Use it. 2016-04-21 Arnaud Charlet * g-traceb.ads: Update list of supported platforms. 2016-04-21 Ed Schonberg * sem_ch13.adb (Add_Predicates): if the type is declared in an inner package it may be frozen outside of the package, and the generated pragma has not been analyzed yet, the expression for the predicate must be captured and added to the predicate function at this point. 2016-04-21 Hristian Kirtchev * contracts.adb (Analyze_Package_Body_Contract): Do not check for a missing package refinement because 1) packages do not have "refinement" and 2) the check for proper state refinement is performed in a different place. * einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented. (Has_Null_Visible_Refinement): Reimplemented. * sem_ch3.adb (Analyze_Declarations): Determine whether all abstract states have received a refinement and if not, emit errors. * sem_ch7.adb (Analyze_Package_Declaration): Code cleanup. Determine whether all abstract states of the package and any nested packages have received a refinement and if not, emit errors. (Requires_Completion_In_Body): Add new formal parameter Do_Abstract_States. Update the comment on usage. Propagate the Do_Abstract_States flag to all Unit_Requires_Body calls. (Unit_Requires_Body): Remove formal parameter Ignore_Abstract_States. Add new formal paramter Do_Abstract_States. Propagate the Do_Abstract_States flag to all Requires_Completion_In calls. * sem_ch7.ads (Unit_Requires_Body): Remove formal parameter Ignore_Abstract_States. Add new formal paramter Do_Abstract_States. Update the comment on usage. * sem_ch9.adb (Analyze_Single_Protected_Declaration): Do not initialize the constituent list as this is now done on a need-to-add-element basis. (Analyze_Single_Task_Declaration): Do not initialize the constituent list as this is now done on a need-to-add-element basis. * sem_ch10.adb (Decorate_State): Do not initialize the constituent lists as this is now done on a need-to-add-element basis. * sem_prag.adb (Analyze_Constituent): Set the refinement constituents when adding a new element. (Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when adding a new element. (Analyze_Part_Of_Option): Set the Part_Of constituents when adding a new element. (Analyze_Pragma): Set the Part_Of constituents when adding a new element. (Check_Constituent_Usage (all versions)): Reimplemented. (Collect_Constituent): Set the refinement constituents when adding a new element. (Create_Abstract_State): Do not initialize the constituent lists as this is now done on a need-to-add-element basis. (Propagate_Part_Of): Set the Part_Of constituents when adding a new element. * sem_util.adb (Check_State_Refinements): New routine. (Has_Non_Null_Refinement): Reimplemented. (Has_Null_Refinement): Reimplemented. (Requires_State_Refinement): Removed. * sem_util.ads (Check_State_Refinements): New routine. (Requires_State_Refinement): Removed. 2016-04-21 Hristian Kirtchev * lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup. * sem.adb: Fix comment. 2016-04-21 Ed Schonberg * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype declaration with no aspects, whose subtype_mark is a subtype with predicates, inherits the list of subprograms for the type. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Has_Per_Object_Constraint): Refine previous change. 2016-04-21 Thomas Quinot * g-socket.adb (Raise_Host_Error): Include additional Name parameter. 2016-04-21 Ed Schonberg * lib-writ.adb (Write_ALI): Do not record in ali file units that are present in the files table but not analyzed. These units are present because they appear in the context of units named in limited_with clauses, and the unit being compiled does not depend semantically on them. 2016-04-21 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to create the procedure body for an function returning an array type, when generating C code. Reuse the subprogram body rather than creating a new one, both as an efficiency measure and because in an instance the body may contain global references that must be preserved. 2016-04-21 Hristian Kirtchev * sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor reformatting. 2016-04-21 Javier Miranda * exp_aggr.adb (Component_Check): Extend the check that verifies that the aggregate has no function calls to handle transformations performed by the frontend. (Ultimate_Original_Expression): New subprogram. 2016-04-21 Philippe Gil * krunch.adb (Krunch): Fix krunching of i-java. 2016-04-21 Arnaud Charlet * exp_ch8.adb (Evaluation_Required): Always return True when Modify_Tree_For_C. 2016-04-21 Eric Botcazou * gnatlink.adb (Gnatlink): Robustify detection of Windows target. * alloc.ads: Minor comment fixes. * einfo.ads: Fix typo. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous changes to handle all cases of components depending on the discriminant, not just string literals. 2016-04-21 Ed Schonberg * sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype declaration is the generated declaration for a generic actual, inherit predicates from the actual if it is a predicated subtype. 2016-04-21 Ed Schonberg * exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is inherited and its result is controlling, introduce a conversion on the actual for the corresponding procedure call, to avoid spurious type errors. 2016-04-21 Jerome Lambourg * krunch.adb (Krunch): Fix krunching of i-vxworks. 2016-04-21 Gary Dismukes * exp_aggr.adb: Minor reformatting and code cleanup. 2016-04-21 Ed Schonberg * sem_ch13.adb (Resolve_Name): Omit quantified expressions from resolution, because they introduce local names. Full resolution will take place when predicate function is constructed. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous change to take into account Per_Object_Constraint field rather than special casing strings. * exp_ch6.adb: Fix typo in Replace_Returns. 2016-04-21 Hristian Kirtchev * sem_ch5.adb: Minor reformatting. 2016-04-21 Arnaud Charlet * exp_aggr.adb (Backend_Processing_Possible): Return False when generating C and aggregate contains function calls. 2016-04-21 Tristan Gingold * krunch.adb (Krunch): Only partially krunch children of Interfaces that aren't known. 2016-04-21 Ed Schonberg * sem_prag.adb (Make_Inline): Handle properly the instantiation of a generic subpprogram that carries an Inline aspect. Place inline info on the anonymous subprogram that is constructed in the wrapper package. (Analyze_Pragma, case Pure): Do not check placement if pragma appears within an instantiation, which can be nested at any level. * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze node from anonymous subprogram to its visible renaming. The freeze node will be constructed if the subprogram carries delayed aspects. (Set_Global): Preserve dimension information if present (from code reading). 2016-04-21 Vasiliy Fofanov * gnatlink.adb: Change wording of the warning message on problematic filenames to be more neutral. Add a new substring "patch" introduced on Windows 10. 2016-04-21 Philippe Gil * tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only) 2016-04-21 Javier Miranda * exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string literals. 2016-04-21 Hristian Kirtchev * einfo.adb (Has_Non_Null_Abstract_State): New routine. * einfo.ads New synthesized attribute Has_Non_Null_Abstract_State along with occurrences in entities. (Has_Non_Null_Abstract_State): New routine. * sem_ch7.adb (Unit_Requires_Body): Add local variable Requires_Body. A package declaring an abstract state requires a body only when the state is non-null and the package contains at least one other construct that requires completion in a body. * sem_util.adb (Mode_Is_Off): Removed. (Requires_State_Refinement): Remove an obsolete check. Code cleanup. 2016-04-21 Bob Duff * sem_attr.adb (Analyze_Attribute): In processing the 'Old attribute, a warning is given for infinite recursion. Fix the code to not crash when the prefix of 'Old denotes a protected function. * sem_ch5.adb (Analyze_Iterator_Specification): Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases where the parameter would not be an object. 2016-04-21 Eric Botcazou * sem_eval.adb (Compile_Time_Compare): Be prepared for an empty Etype or Underlying_Type of the operands. 2016-04-21 Eric Botcazou * atree.adb (Print_Statistics): Protect against overflows and print the memory consumption in bytes. * table.adb (Reallocate): Do the intermediate calculation of the new size using the Memory.size_t type. 2016-04-21 Gary Dismukes * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress expansion of Attribute_Machine and Attribute_Model for AAMP. 2016-04-21 Ed Schonberg * freeze.adb: Disable previous change for now. 2016-04-21 Ed Schonberg * sem_ch8.adb (Find_Selected_Component): If prefix has an access type and designated type is a limited view, introduce an explicit dereference before continuing the analysis, and set its type to the non-limited view of the designated type, if we are in context where it is available. 2016-04-21 Ed Schonberg * freeze.adb: Freeze profile in ASIS mode. 2016-04-21 Hristian Kirtchev * sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant. * sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented. 2016-04-21 Hristian Kirtchev * exp_ch6.adb: Minor reformatting. 2016-04-21 Ed Schonberg * sem_ch13.adb: Minor comment update. 2016-04-21 Ed Schonberg * freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add boolean parameter to determine whether freezing an overloadable entity freezes its profile as well. This is required by AI05-019. The call to Freeze_Profile within Freeze_Entity is conditioned by the value of this flag, whose default is True. * sem_attr.adb (Resolve_Attribute, case 'Access): The attribute reference freezes the prefix, but it the prefix is a subprogram it does not freeze its profile. 2016-04-21 Javier Miranda * exp_util.adb (Build_Procedure_Form): No action needed for subprogram renamings since the backend can generate the call using the renamed subprogram. This leaves the tree more clean to the backend. * exp_ch6.adb (Expand_Call): Extend previous patch for rewritten-for-c entities to handle subprogram renamings. (Rewrite_Function_Call_For_C): Handle subprogram renamings. 2016-04-21 Ed Schonberg * sem_ch13.adb: Code cleanup. 2016-04-21 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is created for SPARK_To_C, the entity must remain invisible so it does not overload subsequent references to the original function. * exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns): Handle Extended_Return_Statements by replacing it with a block with assignments and a simple return statement. * exp_util.adb (Build_Procedure_Form): Make procedure entity invisible after analyzing declaration, to prevent improper overloading. 2016-04-21 Javier Miranda * sem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C to the body since since the expander may generate calls using that entity. * exp_ch6.adb (Expand_Call): For internally generated calls ensure that they reference the entity of the spec of the called function. (Rewritten_For_C_Func_Id): New subprogram. (Rewritten_For_C_Proc_Id): New subprogram. (Rewrite_Function_Call_For_C): Invoke the new subprogram to ensure that we skip freezing entities. * exp_util.adb (Build_Procedure_Form): No action needed if the procedure was already built. 2016-04-21 Hristian Kirtchev * sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor reformatting. 2016-04-21 Ed Schonberg * sem_util.adb (Denotes_Iterator): Use root type to determine whether the ultimate ancestor is the predefined iterator interface pakage. * exp_ch5.adb (Expand_Iterator_Over_Container): simplify code and avoid reuse of Pack local variable. 2016-04-21 Olivier Hainque * system-vxworks-arm.ads, system-vxworks-sparcv9.ads, system-vxworks-ppc.ads, system-vxworks-m68k.ads, system-vxworks-mips.ads, system-vxworks-x86.ads: Define Executable_Extension to ".out". 2016-04-21 Javier Miranda * frontend.adb: Update call to Unnest_Subprograms. * exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb (Unnest_Subprograms): Moved to package exp_unst. * exp_unst.ads (Unnest_Subprogram): Moved to the body of the package. * exp_dbug.adb (Qualify_Entity_Name): Enable qualification of enumeration literals when generating C code. 2016-04-21 Javier Miranda * frontend.adb: Remove call to initialize Exp_Ch6. * exp_ch6.ads, exp_ch6.adb (Initialize): removed. (Unest_Entry/Unest_Bodies): Removed. (Unnest_Subprograms): Code cleanup. 2016-04-21 Arnaud Charlet * set_targ.adb (Read_Target_Dependent_Values): close target description file once its contents is read. * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and Stderr_File): Close local file descriptors before spawning child process. * exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of local variables to make the code easier to understand and avoid duplicated calls to Parent and Generic_Parent. 2016-04-20 Bob Duff * s-os_lib.ads: Minor comment fix. 2016-04-20 Ed Schonberg * exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate a discriminant check for a type whose partial view has unknown discriminants when the full view has discriminants with defaults. 2016-04-20 Javier Miranda * exp_util.adb (Remove_Side_Effects): When generating C code remove side effect of type conversion of access to unconstrained array type. (Side_Effect_Free): Return false for the type conversion of access to unconstrained array type when generating C code. * sem_res.adb (Resolved_Type_Conversion): Remove side effects of access to unconstrained array type conversion when generating C code. 2016-04-20 Ed Schonberg * sem_ch13.adb (Build_Predicate_Function_Declaration): New function, to construct the declaration of a predicate function at the end of the current declarative part rather than at the (possibly later) freeze point of the type. This also allows uses of a type with predicates in instantiations elsewhere. (Resolve_Aspect_Expression): New procedure to detect visiblity errors in aspect expressions, at the end of the declarative part that includes the type declaration. * sem_ch3.adb (Complete_Private_Subtype): Propagate properly the predicate function from private to full view. * einfo.adb (Predicate_Function): Refine search for predicate function when type has a full view and predicate function may be defined on either view. 2016-04-20 Javier Miranda * frontend.adb: Passing the root of the tree to Unnest_Subprograms(). * exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that took care of adding subprograms to the Unest_Bodies table since performing such action too early disables the ability to process generic instantiations. (Unnest_Subprograms): Adding parameter. (Search_Unnesting_Subprograms): New subprogram. * exp_ch6.ads (Unnest_Subrograms): Update documentation. 2016-04-20 Hristian Kirtchev * exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting. 2016-04-20 Ed Schonberg * exp_unst.adb (Check_Static_Type): For a private type, check full view. 2016-04-20 Ed Schonberg * sem_attr.adb (Check_Type): Reject an attribute reference in an aspect expression, when the prefix of the reference is the current instance of the type to which the aspect applies. 2016-04-20 Bob Duff * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about hiding unless we're actually hiding something. The previous code would (for example) warn about a "<" on a record type because it incorrectly thought it was hiding the "<" on Boolean in Standard. We need to check that the homonym S is in fact a homograph of a predefined operator. 2016-04-20 Ed Schonberg * exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here from exp_ch6.adb, for use in SPARK_To_C mode when creating the procedure equivalent to a function returning an array, when this construction is deferred to the freeze point of the function. * sem_util.adb (Is_Unchecked_Conversion_Instance): Include a function that renames an instance of Unchecked_Conversion. * freeze.adb (Freeze_Subprogram): Generate the proper procedure declaration for a function returning an array. * exp_ch6.adb (Build_Procedure_Form): Moved to exp_util. 2016-04-20 Ed Schonberg * sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time, a function call is an expansion of a reference to attribute Priority. * sem_ch5.adb (Analyze_Function_Call): use it. * exp_ch5.adb (Expand_N_Subprogram_Call): use it. 2016-04-20 Hristian Kirtchev * einfo.adb Flag286 is now used as Is_Exception_Handler. (Is_Exception_Handler): New routine. (Set_Is_Exception_Handler): New routine. (Write_Entity_Flags): Output the status of Is_Exception_Handler. * einfo.ads New attribute Is_Exception_Handler along with occurrences in entities. (Is_Exception_Handler): New routine along with pragma Inline. (Set_Is_Exception_Handler): New routine along with pragma Inline. * exp_ch7.adb (Make_Transient_Block): Ignore blocks generated for exception handlers with a choice parameter. * sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope generated for a choice parameter as an exception handler. 2016-04-20 Ed Schonberg * sem_ch3.adb (Build_Derived_Access_Type): Remove dead code. (Constrain_Discriminated_Type): In an instance, if the type has unknown discriminants, use its full view. (Process_Subtype): Check that the base type is private before adding subtype to Private_Dependents list. 2016-04-20 Bob Duff * sem_ch13.adb: Minor comment fix. 2016-04-20 Yannick Moy * sem_ch4.adb: Fix typos in comments. * sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives. 2016-04-20 Ed Schonberg * sem_ch4.adb (Analyze_Selected_Component): A reference to the current instance of a task type is legal if the prefix is an expression of that task type and the selector is an entry or entry family. 2016-04-20 Arnaud Charlet * a-cfdlli.ads (List): Type is no longer tagged, not needed. Move varsize field at the end for efficiency. 2016-04-20 Vincent Celier * gnatcmd.adb: Do not invoke gprls when the invocation of "gnat ls" includes the switch -V. * clean.adb: "-gnatclean -P" now calls "gprclean --target=" * make.adb: "-gnatmake -P" now calls "gprbuild --target=" 2016-04-20 Hristian Kirtchev * sem_ch12.adb (Qualify_Type): Do not perform partial qualification when the immediate scope is a generic unit. 2016-04-20 Hristian Kirtchev * exp_unst.adb: Minor reformatting. 2016-04-20 Hristian Kirtchev * exp_ch4.adb (Expand_Allocator_Expression): Ensure that the tag assignment and adjustment preceed the accessibility check. * exp_ch7.adb (Is_Subprogram_Call): Reimplemented. 2016-04-20 Hristian Kirtchev * exp_prag.adb (Expand_Attributes): Ensure that the temporary used to capture the value of attribute 'Old's prefix is properly initialized. 2016-04-20 Javier Miranda * exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library level. 2016-04-20 Arnaud Charlet * sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning in codepeer mode. 2016-04-20 Vincent Celier * make.adb: Code cleanup. 2016-04-20 Arnaud Charlet * exp_ch4.adb (Expand_Allocator_Expression): Help C code generation. 2016-04-20 Hristian Kirtchev * sem_ch12.adb (Copy_Generic_Node): Handle the special qualification installed for universal literals that act as operands in binary or unary operators. (Qualify_Operand): Mark the qualification to signal the instantiation mechanism how to handle global reference propagation. * sinfo.adb (Is_Qualified_Universal_Literal): New routine. (Set_Is_Qualified_Universal_Literal): New routine. * sinfo.ads New attribute Is_Qualified_Universal_Literal along with occurrences in nodes. (Is_Qualified_Universal_Literal): New routine along with pragma Inline. (Set_Is_Qualified_Universal_Literal): New routine along with pragma Inline. 2016-04-20 Ed Schonberg * sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length so that the corresponding checks are preserved across compilations that include System.Constants in their context. 2016-04-20 Gary Dismukes * sem_type.adb: Minor typo fix and reformatting. * a-conhel.ads: Update comment. 2016-04-20 Bob Duff * a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the code so it doesn't trigger an "uninit var" warning. 2016-04-20 Hristian Kirtchev * sem_attr.ads Add new table Universal_Type_Attribute. * sem_util.adb (Yields_Universal_Type): Use a table lookup when checking attributes. 2016-04-20 Ed Schonberg * exp_aggr.adb (Init_Stored_Discriminants, Init_Visible_Discriminants): New procedures, subsidiary of Build_Record_Aggr_Code, to handle properly the construction of aggregates for a derived type that constrains some parent discriminants and renames others. 2016-04-20 Hristian Kirtchev * sem_ch12.adb (Qualify_Universal_Operands): New routine. (Save_References_In_Operator): Add explicit qualifications in the generic template for all operands of universal type. * sem_type.adb (Disambiguate): Update the call to Matches. (Matches): Reimplemented. * sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine. 2016-04-20 Ed Schonberg * sem_ch13.adb (Rep_Item_Too_Late): Better error message for an illegal aspect that freezes the entity to which it applies. 2016-04-20 Bob Duff * a-stwibo.ads, a-stzbou.ads ("="): Add overriding keyword before function to avoid crash when compiler is called with -gnatyO (check overriding indicators). 2016-04-20 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Check_Policy): If this is a configuration pragma and it uses the ARG syntax, insert the rewritten pragma after the current one rather than using Insert_Actions. 2016-04-20 Arnaud Charlet * exp_aggr.adb (Backend_Processing_Possible): Add handling of C back-end. 2016-04-20 Hristian Kirtchev * s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Minor reformatting. 2016-04-20 Hristian Kirtchev * sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when the associated node appears within a pre/postcondition. * sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine. 2016-04-20 Yannick Moy * osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix. * einfo.adb (Set_Overridden_Operation): Add assertion. * sem_util.adb (Unique_Entity): for renaming-as-body return the spec entity. 2016-04-20 Javier Miranda * exp_unst.adb (Append_Unique_Call): New subprogram. (Unnest_Subprogram): Replace the unique occurrence of Call.Append() by Append_Unique_Call() which protects us from adding to the Calls table duplicated entries. 2016-04-20 Arnaud Charlet * exp_attr.adb (Is_GCC_Target): Fix for C backend. * xref_lib.ads (Dependencies_Tables): instantiate Table package with types that guarantee its safe use. * s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested procedures. 2016-04-20 Arnaud Charlet * exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion when generating C code. * sinfo.ads, inline.ads: Minor editing. 2016-04-20 Hristian Kirtchev * sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor reformatting. 2016-04-20 Javier Miranda * contracts.adb (Build_Postconditions_Procedure): Code cleanup. * ghost.adb (Os_OK_Ghost_Context.Is_OK_Declaration): Handle the declaration of the internally built _postcondition procedure. 2016-04-20 Arnaud Charlet * snames.ads-tmpl (Internal_Attribute_Id, Attribute_Class_Array): Fix indentation. * sem_util.adb (Is_Unchecked_Conversion_Instance): defense against library-level renamings of other functions, which are never instances of Unchecked_Conversion. * einfo.ads: minor fix of casing in comment 2016-04-20 Ed Schonberg * exp_ch6.adb (Expand_N_Subprogram_Stub): Do not expand a body that has been analyzed and expanded already. Qualify the names in the proper body for use in the generation of C code. 2016-04-20 Javier Miranda * contracts.adb (Build_Postconditions_Procedure): Force its inlining when generating C code. * sem_attr.adb (Analyze_Attribute_Old_Result): Handle inlined _postconditions when generating C code. * exp_ch6.adb (Inlined_Subprogram): Inline calls to _postconditions when generating C code. * sinfo.ads, sinfo.adb (Corresponding_Spec, Set_Corresponding_Spec): types of return value and argument changed from Node_Id to Entity_Id. 2016-04-20 Vincent Celier * make.adb, clean.adb, gnatname.adb: Revert previous change for now. 2016-04-20 Eric Botcazou * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset the Has_Delayed_Freeze flag on the anonymous instance node. 2016-04-20 Javier Miranda * sem_ch5.adb (Analyze_Iterator_Specification): Remove transient scope associated with the renaming object declaration. * exp_util.adb (Insert_Actions): Remove handling of iterator loop marked as requiring the secondary stack. 2016-04-20 Ed Schonberg * sem_attr.adb (Analyze_Attribute, case 'Image): Implement AI12-0124, which extends the functionality of the attribute so it reflects the semantics of GNAT 'Img when applied to scalar types. * lib-xref.adb: minor whitespace layout fix. 2016-04-20 Vincent Celier * clean.adb (Gnatclean): Fail if project file specified and gprclean is not available. * gnatname.adb: Fail is -P is used and gprname is not available. * make.adb (Initialize): Fail if project file specified and gprbuild is not available. 2016-04-20 Bob Duff * sem_ch5.adb (Analyze_Iterator_Specification): Do not use secondary stack when possible. 2016-04-20 Gary Dismukes * par_sco.adb, sem_util.adb, sem_ch13.adb: Minor typo corrections and reformatting. 2016-04-20 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): If the pragma comes from an aspect specification, verify that the aspect applies to an entity with a declarative part. * exp_ch5.adb: Code cleanup. 2016-04-20 Ed Schonberg * sem_res.adb (Resolve_If_Expression): If first expression is universal, resolve subsequent ones with the corresponding class type (Any_Integer or Any_Real). 2016-04-20 Ed Schonberg * sem_ch5.adb (Analyze_Iterator_Specification): If expansion is disabled, complete the analysis of the iterator name to ensure that reference for entities within are properly generated. 2016-04-20 Arnaud Charlet * a-dispat.ads (Yield): add Global contract. * a-calend.ads, a-reatim.ads: Added Initializes => Clock_Time. * a-taside.adb: Added Initializes => Tasking_State. 2016-04-20 Hristian Kirtchev * sem_ch13.adb (Build_Invariant_Procedure): Reimplement the invariant procedure spec and body insertion. 2016-04-20 Hristian Kirtchev * sem_ch13.adb (Add_Invariant): Do not replace the saved expression of an invariatn aspect when inheriting a class-wide type invariant as this clobbers the existing expression. Do not use New_Copy_List as it is unnecessary and leaves the parent pointers referencing the wrong part of the tree. Do not replace the type references for ASIS when inheriting a class-wide type invariant as this clobbers the existing replacement. 2016-04-20 Ed Schonberg * sem_util.adb (Build_Explicit_Dereference): If the designated expression is an entity name, generate reference to the entity because it will not be resolved again. 2016-04-19 Arnaud Charlet * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, gnat_rm.texi: Update documentation. 2016-04-19 Olivier Hainque * par_sco.adb (Traverse_One, case N_Case_Statement): Skip pragmas before the first alternative. (Traverse_Handled_Statement_Sequence, Exception_Handlers): Likewise. 2016-04-19 Tristan Gingold * adaint.c (__gnat_lwp_self): New function (for darwin). * s-osinte-darwin.ads, s-osinte-darwin.adb (lwp_self): Import of __gnat_lwp_self. 2016-04-19 Olivier Hainque * sem_util.adb (Build_Elaboration_Entity): Always request an elab counter when preserving control-flow. 2016-04-19 Olivier Hainque * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set Needs_Debug_Info when producing SCOs. * par_sco.adb (Traverse_Aspects): Fix categorization of Type_Invariant to match actual processing as activated depending on pragma Assertion_Policy. * sem_prag.adb (Analyze_Pragma): Remove special case for Name_Invariant regarding SCO generation, which completely disabled the production of SCOs for Invariant pragmas and aspects. 2016-04-19 Hristian Kirtchev * checks.adb, sem_util.adb, sem_res.adb, sem_attr.adb: Minor reformatting. 2016-04-19 Ed Schonberg * freeze.adb (Freeze_Profile): Refine predicate that checks whether a function that returns a limited view is declared in another unit and cannot be frozen at this point. 2016-04-19 Ed Schonberg * exp_aggr.adb (Component_Count): Handle properly superflat arrays, i.e. empty arrays where Hi < Lo - 1, to ensure that the return value of the function is Natural, rather than leaving the handling of such arrays to the caller of this function. 2016-04-19 Arnaud Charlet * sem_prag.adb, sem_attr.adb, par-prag.adb, exp_aggr.adb, sem_type.adb sem_ch12.adb, sem_ch3.adb, exp_ch7.adb, exp_ch9.adb: Code cleanup. * sem_res.adb, sem_util.ads, sem_util.adb (Is_OK_Volatile_Context): Promoted from being a nested subprogram in Sem_Res.Resolve_Entity_Name to publicly visible routine in Sem_Util. 2016-04-19 Ed Schonberg * checks.adb (Apply_Parameter_Aliasing_Checks): Do not apply the check if the type of the actual is By_Reference. 2016-04-19 Arnaud Charlet * sem_res.adb (Within_Subprogram_Call): Detect also nodes that appear in entry calls. (Resolve_Actuals, Insert_Default): Propagate dimension information if any, from default expression to the copy that appears in the list of actuals. * uintp.ads: minor whitespace fix in comment. * sem_prag.adb, stringt.adb, inline.adb, lib-xref-spark_specific.adb: Minor code cleanup. * set_targ.adb (Set_Targ): convert directly from Natural to Pos, without intermediate conversion to Int. 2016-04-19 Arnaud Charlet * sem_ch6.adb (Process_Formals): Mark suspicious reference to SPARK RM in comment. * sem_prag.adb (Analyze_Global_Item): Fix reference to SPARK RM in comment. * sem_res.adb (Property_Error, Resolve_Actuals): Fix reference to SPARK RM in both comment and error message. 2016-04-19 Eric Botcazou * sem_ch6.adb (Possible_Freeze): If the type is an incomplete CW type, then the subprogram must have a delayed freeze. This ensures that the backend can properly recover the full view when elaborating the access subprogram declaration. 2016-04-19 Ed Schonberg * sem_attr.adb (Resolve_Attribute, case 'Access): Freeze overloadable entity if originally overloaded. 2016-04-19 Arnaud Charlet * exp_aggr.adb, exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_code.adb, exp_fixd.adb, namet.adb, osint.adb, osint.ads, par-ch2.adb, sem_ch10.adb, sem_ch12.adb, sem_disp.adb, sem_elab.adb, sem_elim.adb sem_util.adb, styleg.adb, styleg.ads, stylesw.ads: Minor code clean up. 2016-04-19 Arnaud Charlet * sem_util.adb (Copy_Node_With_Replacement): use Set_Comes_From_Source instead of directly manipulating internals of the node table. * sem_util.adb (Within_Scope): refactored to remove duplicated code. * sem_aux.adb (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare variables that do not change as constants and initialize them in the declaration. (Get_Rep_Pragma, Subprogram_Body_Entity, Subprogram_Spec): declare variables that do not change as constants and initialize them in the declaration. 2016-04-19 Ed Schonberg * sem_res.adb (Resolve_Entry_Call): If the entry has preconditions it is rewritten by means of a wrapper that incorporates the original call. Before rewriting generate a reference to the entry being called to prevent spurious warnings and provide correct cross-reference information. 2016-04-19 Hristian Kirtchev * sem_disp.adb (Check_Dispatching_Context): Code cleanup. Add local constant Scop. Ignore any internally generated loops when performing the check concerning an abstract subprogram call without a controlling argument. * sem_util.ads, sem_util.adb (Current_Scope_No_Loops): New routine. 2016-04-19 Bob Duff * sem_elab.adb (Check_A_Call): There are cases where we have No (Ent) after the Alias loop, even when there was no previous error, so we can't assert that there was an error. 2016-04-19 Ed Schonberg * sem_attr.adb (Analyze_Access_Attribute, OK_Self_Reference): Reject use of type name as a prefix to 'access within an aggregate in a context that is not the declarative region of a type. 2016-04-19 Vincent Celier * gnatcmd.adb: Make "gnat ls -P" invoke gprls Make "gnat bind -P" invoke "gprbuild -b" Make "gnat link -P" invoke "gprbuild -l" Fail if the invocation is "gnat find -P" or "gnat xref -P" Remove anything related to project files * g-mbdira.adb: minor whitespace cleanup * g-spipat.adb: minor removal of extra spaces after closing paren 2016-04-19 Ed Schonberg * exp_ch6.adb (Expand_Actuals): If post-statements are present and the enclosing context is a function call or indexing, build an Expression_With_Actions for the call. 2016-04-19 Hristian Kirtchev * lib-writ.adb (Write_With_Lines): Code cleanup. Do not generate a with line for an ignored Ghost unit. * sem_ch7.adb (Analyze_Package_Declaration): Add local constant Par. A child package is Ghost when its parent is Ghost. * sem_prag.adb (Analyze_Pragma): Pragma Ghost can now apply to a subprogram declaration that acts as a compilation unit. 2016-04-18 Michael Matz * gcc-interface/decl.c (gnat_to_gnu_entity): Use SET_TYPE_ALIGN. (gnat_to_gnu_field): Ditto. (components_to_record): Ditto. (create_variant_part_from): Ditto. (copy_and_substitute_in_size): Ditto. (substitute_in_type): Ditto. * gcc-interface/utils.c (make_aligning_type): Use SET_TYPE_ALIGN. (make_packable_type): Ditto. (maybe_pad_type): Ditto. (finish_fat_pointer_type): Ditto. (finish_record_type): Ditto and use SET_DECL_ALIGN. (rest_of_record_type_compilation): Use SET_TYPE_ALIGN. (create_field_decl): Use SET_DECL_ALIGN. 2016-04-18 Arnaud Charlet * einfo.adb (Overridden_Operation): assert that function is called for valid arguments. * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_type.adb, s-osinte-vxworks.ads, a-ngcefu.adb, sem_ch10.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, sem.adb, i-cobol.ads, freeze.adb, sem_util.adb, a-chtgop.ads, s-rannum.adb, exp_ch6.adb, s-bignum.adb, s-osinte-freebsd.ads, par-ch5.adb, a-chtgbo.ads, a-cofove.adb: No space after closing parenthesis except where required for layout. * sem_res.adb: Minor reformatting. 2016-04-18 Arnaud Charlet * exp_ch4.adb (Expand_N_Case_Expression): Convert into a case statement when relevant. 2016-04-18 Bob Duff * a-cuprqu.adb (Enqueue): Properly handle the case where the new element has a unique priority. 2016-04-18 Tristan Gingold * adaint.h: Define stat structures and functions for iOS simulator. 2016-04-18 Arnaud Charlet * sem_res.adb (Resolve_Entry_Call): reset Is_Overloaded flag after resolving calls to overloaded protected operations. * exp_spark.adb (Expand_SPARK): call Qualify_Entity_Names for tasking nodes, i.e. protected types, task types and entries. * exp_ch4.adb (Expand_N_If_Expression): Refine previous change in case of an unconstrained type. 2016-04-18 Yannick Moy * sem_eval.adb, sem_eval.ads (Check_Non_Static_Context): Add comment to document usage of subprogram in GNATprove. 2016-04-18 Ed Schonberg * sem_prag.adb (Analyze_Pragma, case Test_Case): Improve error message for wrong placement of aspect Test_Case. 2016-04-18 Hristian Kirtchev * einfo.ads: Update the documentation of attribute Renamed_Object. * exp_spark.adb (Expand_Potential_Renaming): Reimplemented. 2016-04-18 Gary Dismukes * exp_ch4.adb (Optimize_Length_Comparison): Return immediately in the case of AAMP (same as for use of the -gnatd.P switch) to suppress this optimization, which avoids creating a dependence on the 64-bit arithmetic package. 2016-04-18 Arnaud Charlet * exp_ch4.adb: Update comment. 2016-04-18 Eric Botcazou * exp_ch6.adb (Expand_Call): Make sure instantiations are registered only once as pending here. 2016-04-18 Arnaud Charlet * exp_ch4.adb, gnat1drv.adb, opt.ads, sem_res.adb (Minimize_Expression_With_Actions): New flag. (Adjust_Global_Switches): Set Minimize_Expression_With_Actions when generating C. (Resolve_Short_Circuit): Redo previous change using Minimize_Expression_With_Actions. (Expand_N_If_Expression, Expand_Short_Circuit_Operator): Restore old code to avoid Expression_With_Actions when Minimize_Expression_With_Actions is set. 2016-04-18 Vincent Celier * s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File and Stderr_File): Close local file descriptors when no longer needed. 2016-04-18 Ed Schonberg * sem_ch5.adb (Analyze_Iterator_Specification): Remove SPARK mode check that the type of the cursor in an iteration over a formal container is not volatile. The proper check on the element type is done elsewhere. 2016-04-18 Ed Schonberg * sem_ch6.adb (Process_Formals): Do not set a delay freeze on a subprogram that returns a class-wide type, if the subprogram is a compilation unit, because otherwise gigi will treat the subprogram as external, leading to link errors. 2016-04-18 Arnaud Charlet * sem_res.adb (Resolve_Short_Circuit): Do not use expression-with-actions when generating C. 2016-04-18 Yannick Moy * sem_util.adb (Apply_Compile_Time_Constraint_Error): Do not generate raise node in GNATprove mode. 2016-04-18 Hristian Kirtchev * s-fileio.adb: Minor reformatting. * sem_prag.adb (Analyze_Input_Item): Add local variable Input_OK. Do not consider mappings of generic formal parameters to actuals. 2016-04-18 Ed Schonberg * sem_ch5.adb (Get_Cursor_Type): If iterator type is a derived type, the cursor is declared in the scope of the parent type. (Analyze_Parameter_Specification): A qualified expression with an iterator type indicates an iteration over a container (explicit or implicit). 2016-04-18 Arnaud Charlet * osint-c.ads, osint-c.adb (Delete_C_File, Delete_H_File): New. * gnat1drv.adb (Gnat1drv): Delete old C files before regenerating them. * debug.adb: Reserve -gnatd.4 to force generation of C files. 2016-04-18 Yannick Moy * sem_eval.adb (Eval_Arithmetic_Op): Do not issue error on static division by zero, instead possibly issue a warning. * sem_res.adb (Resolve_Arithmetic_Op): Do not issue error on static division by zero, instead add check flag on original expression. * sem_util.adb, sem_util.ads (Compile_Time_Constraint_Error): Only issue error when both SPARK_Mode is On and Warn is False. 2016-04-18 Yannick Moy * checks.adb (Apply_Scalar_Range_Check): Force warning instead of error when SPARK_Mode is On, on index out of bounds, and set check flag for GNATprove. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Check_In_Out_States.Check_Constituent_Usage): Update the comment on usage. Reimplemented. (Check_Input_States.Check_Constituent_Usage): Update the comment on usage. A Proof_In constituent can now refine an Input state as long as there is at least one Input constituent present. 2016-04-18 Ed Schonberg * sem_ch6.adb (Check_Inline_Pragma): Use the Sloc of the body id as the sloc of the entity in the generated subprogram declaration, to avoid spurious conformance errors when style checks are enabled. 2016-04-18 Ed Schonberg * sem_ch4.adb (Analyze_Selected_Component, Has_Dereference): Refine check on illegal calls to entities within a task body, when the entity is declared in an object of the same type. In a generic context there might be no explicit dereference but if the prefix includes an access type the construct is legal. 2016-04-18 Arnaud Charlet * rtsfind.ads, rtsfind.adb (RE_Id, RE_Unit_Table): add RE_Default_Priority. 2016-04-18 Bob Duff * sem_prag.adb (Check_Arg_Is_Local_Name): Don't do the check if the pragma came from an aspect specification. 2016-04-18 Gary Dismukes * gnat1drv.adb, contracts.adb: Minor reformatting and wording fixes. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): To suppress superfluous conformance check on an inlined body with a previous spec, use the fact that the generated declaration does not come from source. We must treat the entity as coming from source to enable some back-end inlining when pragma appears after the body. 2016-04-18 Gary Dismukes * lib-xref-spark_specific.adb, par-ch2.adb, errout.ads, exp_intr.adb: Minor reformatting and typo corrections. 2016-04-18 Ed Schonberg * sem_ch6.adb: Code cleanup. 2016-04-18 Thomas Quinot * sem_ch13.adb: Minor reformatting and error message tweaking (remove extraneous spaces). 2016-04-18 Johannes Kanig * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 2016-04-18 Bob Duff * s-fileio.adb (Fopen_Mode): If Mode = Out_File, and the file exists, and it's a fifo, we use "w" as the open string instead of "r+". This is necessary to make a write to the fifo block until a reader is ready. 2016-04-18 Hristian Kirtchev * sem_attr.adb (Denote_Same_Function): Account for a special case where a primitive of a tagged type inherits a class-wide postcondition from a parent type. 2016-04-18 Hristian Kirtchev * par-ch2.adb (P_Expression_Or_Reserved_Word): New routine. (P_Pragma): Signal Scan_Pragma_Argument_Association when the use of reserved words is OK. (Scan_Pragma_Argument_Association): Add new formal Reserved_Words_OK and update the comment on usage. Code cleanup. Parse an expression or a reserved word in identifier form for pragmas Restriction_Warnings and Restrictions No_Use_Of_Attribute. * restrict.adb (Check_Restriction_No_Use_Of_Attribute): Reimplemented. (Check_Restriction_No_Use_Of_Pragma): Code cleanup. (Set_Restriction_No_Specification_Of_Aspect): Properly set the warning flag for an aspect. (Set_Restriction_No_Use_Of_Attribute): Properly set the warning flag for an attribute. (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. (Set_Restriction_No_Use_Of_Pragma): Properly set the warning flag for a pragma. * restrict.ads (Check_Restriction_No_Use_Of_Attribute): Update the comment on usage. (Set_Restriction_No_Use_Of_Entity): Update the parameter profile. * sem_attr.adb (Analyze_Attribute): Check restriction No_Use_Of_Attribute. * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check restriction No_Use_Of_Attribute before any rewritings have taken place. * sem_prag.adb (Analyze_Pragma): Check restriction No_Use_Of_Pragma before any rewritings have taken place. 2016-04-18 Bob Duff * sem_ch6.adb (Is_Inline_Pragma): The pragma argument can be a selected component, which has no Chars field, so we need to deal with that case (use the Selector_Name). (Check_Inline_Pragma): We need to test Is_List_Member before calling In_Same_List, because in case of a library unit, they're not in lists, so In_Same_List fails an assertion. 2016-04-18 Bob Duff * namet.ads, namet.adb: Add an Append that appends a Bounded_String onto a Bounded_String. Probably a little more efficient than "Append(X, +Y);". Also minor cleanup. (Append_Decoded, Append_Decoded_With_Brackets, Append_Unqualified, Append_Unqualified_Decoded): Make sure these work with non-empty buffers. * casing.ads, casing.adb (Set_Casing): Pass a Bounded_String parameter, defaulting to Global_Name_Buffer. * errout.ads, errout.adb (Adjust_Name_Case): Pass a Bounded_String parameter, no default. * exp_ch11.adb (Expand_N_Raise_Statement): Use local Bounded_String instead of Global_Name_Buffer. * exp_intr.ads, exp_intr.adb (Write_Entity_Name): Rename it to Append_Entity_Name, and pass a Bounded_String parameter, instead of using globals. (Add_Source_Info): Pass a Bounded_String parameter, instead of using globals. (Expand_Source_Info): Use local instead of globals. * stringt.ads, stringt.adb (Append): Add an Append procedure for appending a String_Id onto a Bounded_String. (String_To_Name_Buffer, Add_String_To_Name_Buffer): Rewrite in terms of Append. * sem_prag.adb (Set_Error_Msg_To_Profile_Name): Adjust for new Adjust_Name_Case parameter. * erroutc.adb, uname.adb: Don't pass D => Mixed_Case to Set_Casing; that's the default. * lib-xref-spark_specific.adb (Add_SPARK_Scope): Pretend that calls to protected subprograms are entry calls; otherwise it is not possible to distinguish them from regular subprogram calls. 2016-04-18 Gary Dismukes * sem_ch13.adb (Has_Good_Profile): Improvement of error message. Now indicates subtype_mark of formal parameter rather than the formal's name, plus minor rewording. 2016-04-18 Pascal Obry * adaint.c, adaint.h, s-os_lib.ads: Add new routine Current_Process_Id. 2016-04-18 Hristian Kirtchev * stringt.adb, exp_ch6.adb, sem_ch13.adb: Minor reformatting. 2016-04-18 Gary Dismukes * par-ch4.adb, sem_prag.adb: Minor reformatting. 2016-04-18 Bob Duff * sinput.ads, sinput.adb (Build_Location_String): Take a parameter instead of using a global variable. The function version no longer destroys the Name_Buffer. * stringt.ads, stringt.adb (String_From_Name_Buffer): Take a parameter, which defaults to the Global_Name_Buffer, so some calls can avoid the global. * exp_ch11.adb, exp_intr.adb: Use new interfaces above to avoid using globals. All but one call to Build_Location_String avoids the global. Only one call to String_From_Name_Buffer avoids it. 2016-04-18 Hristian Kirtchev * namet.adb, namet.ads, exp_unst.adb: Minor reformatting. 2016-04-18 Hristian Kirtchev * sem_eval.adb (Choice_Matches): Check the expression against the predicate values when the choice denotes a subtype with a static predicate. (Eval_Membership_Op): Code cleanup. Remove the suspicious guard which tests for predicates. (Is_OK_Static_Subtype): A subtype with a dynamic predicate is not static. (Is_Static_Subtype): A subtype with a dynamic predicate is not static. * sem_eval.ads (Is_OK_Static_Subtype): Update the comment on usage. (Is_Static_Subtype): Update the comment on usage. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Analyze_Input_Item): Allow generic formals to appear as initialization items. 2016-04-18 Ed Schonberg * sem_ch13.adb (Analyze_Stream_TSS_Definition, Has_Good_Profile): Additional error message to indicate that the second parameter of the subprogram must be a first subtype. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper, Is_Inline_Pragma): Use the pragma lookahead that determines whether a subprogram is to be inlined, when some level of backend optimization is required. * sem_ch12.ads, sem_ch12.adb (Add_Pending_Instantiation): Factorize code used to create an instance body when needed for inlining. * exp_ch6.adb (Expand_Call): When a call is to be inlined, and the call appears within an instantiation that is not a compilation unit, add a pending instantiation for the enclosing instance, so the backend can inline in turn the calls contained in the inlined body. 2016-04-18 Ed Schonberg * sem_prag.adb (Build_Pragma_Check_Equivalent): The mapping that relates operations of the parent type to the operations of the derived type has three distinct sources: a) explicit operations of the derived type carry an Overridden_Operation that designates the operation in the ancestor. b) Implicit operations that are inherited by the derived type carry an alias that may be an explicit subprogram (in which case it may have an Overridden_ Operation indicator) or may also be inherited and carry its own alias. c) If the parent type is an interface, the operation of the derived type does not override, but the interface operation indicates the operation that implements it. * sem_prag.adb: Minor reformatting. * sem_prag.adb (Check_External_Property): Update the comment on usage. Reimplement. 2016-04-18 Ed Schonberg * exp_ch5.adb (Expand_Assignment_Statement): In restricted profiles such as ZFP, ceiling priority is not available. 2016-04-18 Bob Duff * namet-sp.ads: Minor typo fix, ironically in 'Spelling_Checker'. 2016-04-18 Bob Duff * sem_elab.adb (Output_Calls): Use Get_Name_String, to clearly indicate that the global Name_Buffer is being used. The previous code used Is_Internal_Name, which returns a Boolean, but also has a side effect of setting the Name_Buffer. Then it called the other Is_Internal_Name, which uses the Name_Buffer for its input. And then it called Error_Msg_N, again using the Name_Buffer. We haven't eliminated the global usage here, but we've made it a bit clearer. This also allows us to have a side-effect-free version of Is_Internal_Name. * namet.ads, namet.adb: Provide a type Bounded_String, along with routines that can be used without using global variables. Provide Global_Name_Buffer so existing code can continue to use the global. Mark the routines that use globals as obsolete. New code shouldn't call the obsolete ones, and we should clean up existing code from time to time. Name_Find_Str is renamed as Name_Find. * namet.h: Changed as necessary to interface to the new version of Namet. * bindgen.adb, exp_unst.adb: Name_Find_Str is renamed as Name_Find. 2016-04-18 Yannick Moy * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): used outside of GNATprove, hence it should not be removed. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Analyze_Refinement_Clause): The refinement of an external abstract state can now mention non-external constituents. (Check_External_Property): Update all SPARK RM references. 2016-04-18 Bob Duff * exp_intr.adb: Remove some duplicated code. 2016-04-18 Yannick Moy * a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads: Mark package spec and body out of SPARK. 2016-04-18 Johannes Kanig * spark_xrefs.ads: Minor comment update. 2016-04-18 Johannes Kanig * gnat1drv.adb (Gnat1drv): Force loading of System unit for SPARK. 2016-04-18 Bob Duff * a-cuprqu.adb: Correction to previous change. If a new node is inserted at the front of the queue (because it is higher priority than the previous front node), we need to update Header.Next_Unequal -- not just in the case where the queue was previously empty. 2016-04-18 Bob Duff * a-cuprqu.ads: Change the representation of List_Type from a singly-linked list to a doubly-linked list. In addition, add a pointer Next_Unequal, which points past a possibly-long chain of equal-priority items. This increases efficiency, especially in the case of many equal-priority items. * a-cuprqu.adb (Dequeue, Enqueue): Rewrite algorithms to take advantage of new data structure. (Finalize): Rewrite in terms of Dequeue, for simplicity. 2016-04-18 Yannick Moy * contracts.adb (Analyze_Object_Contract, Analyze_Protected_Contract): Remove tests performed in GNATprove. * sem_util.adb, sem_util.ads (Has_Full_Default_Initialization): Remove query for tests performed in GNATprove. 2016-04-18 Ed Schonberg * sem_aggr.adb (Resolve_Record_Aggregate): If Warn_On_Redundant_Constructs is enabled, report a redundant box association that does not cover any components, as it done for redundant others associations in case statements. 2016-04-18 Ed Schonberg * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Analyze the generated Check pragma for an inherited condition so that it does not freeze the dispatching type of the primitive operation, because it is pre-analyzed at the point of the subprogram declaration (and not in the subprogram body, as is done during regular expansion). 2016-04-18 Vincent Celier * ali.ads: Increase the range of all _Id types to 100 millions. 2016-04-18 Gary Dismukes * sem_warn.adb (Check_References): Change warning to suggest using pragma Export rather than saying "volatile has no effect". 2016-04-18 Bob Duff * g-souinf.ads (Compilation_ISO_Date): New function to return the current date in ISO form. * exp_intr.adb (Expand_Source_Info, Add_Source_Info): Expand a call to Compilation_ISO_Date into a string literal containing the current date in ISO form. * exp_intr.ads (Add_Source_Info): Improve documentation. * sem_intr.adb (Check_Intrinsic_Subprogram): Recognize Compilation_ISO_Date. * snames.ads-tmpl (Name_Compilation_ISO_Date): New Name_Id. 2016-04-18 Eric Botcazou * layout.adb (Set_Elem_Alignment): Extend setting of alignment to subtypes that are not first subtypes. 2016-04-18 Ed Schonberg * sem_prag.ads (Collect_Inherited_Class_Wide_Conditions): Simplify interface. * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Insert generated pragmas after subprogram declaration, rather than in the corresponding subprogram body. * sem_ch6.adb (New_Overloaded_Entity): In GNATProve mode, if the operation is overridding, call Collect_Inherited_Class_Wide_Conditions to generate the corresponding pragmas immediately after the corresponding subprogram declaration. 2016-04-18 Arnaud Charlet * spark_xrefs.ads (Xref_Index, Scope_Index, File_Index): restrict type to natural numbers. (Stype): document code characters for concurrent entities. 2016-04-18 Olivier Hainque * targparm.ads: Update the Frontend_Exceptions default internal value. (Frontend_Exceptions_On_Target): Change default value to True. 2016-04-18 Ed Schonberg * sem_ch4.adb (Analyze_Selected_Component): Refine error detection when a selected component in the body of a synchronized type is a reference to an object of the same type declared elsewhere. The construct is legal if the prefix of the selected component includes an explicit dereference at any point. 2016-04-18 Hristian Kirtchev * sem_ch3.adb (Analyze_Object_Declaration): Do not consider internally generated expressions when trying to determine whether a formal parameter of a tagged type subject to Extensions_Visible False is used to initialize an object. * sem_ch4.adb (Analyze_Type_Conversion): Do not consider internally generated expressions when trying to determine whether a formal parameter of a tagged type subject to Extensions_Visible False is used in a type conversion. 2016-04-18 Hristian Kirtchev * sem_res.adb (Is_Protected_Operation_Call): Add guards to account for a non-decorated selected component. 2016-04-18 Yannick Moy * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Improve implementation of Body_Has_SPARK_Mode_On. * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_From_Annotation): New function replacing previous Get_SPARK_Mode_From_Pragma, that deals also with aspects. (Get_SPARK_Mode_Type): Make function internal again. * inline.adb, sem_ch7.adb, sem_util.adb: Use new Get_SPARK_Mode_From_Annotation. 2016-04-18 Hristian Kirtchev * contracts.adb (Analyze_Object_Contract): Update references to SPARK RM. * freeze.adb (Freeze_Entity): Update references to SPARK RM. * ghost.adb Add with and use clauses for Sem_Disp. (Check_Ghost_Derivation): Removed. (Check_Ghost_Overriding): Reimplemented. (Check_Ghost_Policy): Update references to SPARK RM. (Check_Ghost_Primitive): New routine. (Check_Ghost_Refinement): New routine. (Is_OK_Ghost_Context): Update references to SPARK RM. (Is_OK_Pragma): Update references to SPARK RM. Predicates are now a valid context for references to Ghost entities. * ghost.ads (Check_Ghost_Derivation): Removed. (Check_Ghost_Overriding): Update the comment on usage. (Check_Ghost_Primitive): New routine. (Check_Ghost_Refinement): New routine. (Remove_Ignored_Ghost_Code): Update references to SPARK RM. * sem_ch3.adb (Process_Full_View): Remove the now obsolete check related to Ghost derivations * sem_ch6.adb (Check_Conformance): Remove now obsolete check related to the convention-like behavior of pragma Ghost. (Check_For_Primitive_Subprogram): Verify that the Ghost policy of a tagged type and its primitive agree. * sem_prag.adb (Analyze_Pragma): Update references to SPARK RM. Move the verification of pragma Assertion_Policy Ghost to the proper place. Remove the now obsolete check related to Ghost derivations. (Collect_Constituent): Add a call to Check_Ghost_Refinement. * sem_res.adb (Resolve_Actuals): Update references to SPARK RM. 2016-04-18 Eric Botcazou * layout.adb: Fix more minor typos in comments. 2016-04-18 Hristian Kirtchev * a-calend.ads, sem_prag.adb, sem_ch6.adb: Minor reformatting. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Subprogram_Body_Helper): In GNATprove mode, collect inherited class-wide conditions to generate the corresponding pragmas. * sem_prag.ads (Build_Pragma_Check_Equivalent): Moved from contracts * contracts.adb (Collect_Inherited_Class_Wide_Conditions): New procedure for overriding subprograms, used to generate the pragmas corresponding to an inherited class- wide pre- or postcondition. * sem_prag.adb (Build_Pragma_Check_Equivalent): moved here from contracts.adb (Replace_Condition_Entities): Subsidiary Build_Pragma_Check_Equivalent, to implement the proper semantics of inherited class-wide conditions, as given in AI12-0113. (Process_Class_Wide_Condition): Removed. (Collect_Inherited_Class_Wide_Conditions): Iterate over pragmas in contract of subprogram, to collect inherited class-wide conditions. (Build_Pragma_Check_Equivalent): Moved to sem_prag.adb 2016-04-18 Yannick Moy * a-calend.adb (Ada.Calendar): Mark package body as SPARK_Mode Off. * a-calend.ads (Ada.Calendar): Mark package spec as SPARK_Mode and add synchronous external abstract state Clock_Time. 2016-04-18 Yannick Moy * sem_res.adb (Resolve_Call): Prevent inlining of calls inside expression functions. Factor previous code issuing errors to call Cannot_Inline instead, which does appropriate processing of message for GNATprove. 2016-04-18 Arnaud Charlet * einfo.ads, sem_ch3.adb, sem_ch8.adb, osint-l.adb, rtsfind.adb, osint-b.adb: Cleanups. 2016-04-18 Yannick Moy * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Only create body to inline in GNATprove mode when SPARK_Mode On applies to subprogram body. * sem_prag.adb, sem_prag.ads (Get_SPARK_Mode_Type): Make function public. 2016-04-18 Eric Botcazou * layout.adb: Fix minor typo in comment. * inline.adb: Fix minor pasto. * sem_ch12.ads: Fix minor typos in comments. 2016-04-18 Ed Schonberg * sem_disp.adb (Check_Dispatching_Call): Major rewriting to handle some complex cases of tag indeterminate calls that are actuals in other dispatching calls that are themselves tag indeterminate. (Check_Dispatching_Context): Add parameter to support recursive check for an enclosing construct that may provide a tag for a tag-indeterminate call. 2016-04-18 Hristian Kirtchev * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add global variables Task_Input_Seen and Task_Output_Seen. (Analyze_Global_Item): Detect an illegal use of the current instance of a single protected/task type in a global annotation. (Analyze_Input_Output): Inputs and output related to the current instance of a task unit are now tracked. (Check_Usage): Require the presence of the current instance of a task unit only when one input/output is available. (Current_Task_Instance_Seen): New routine. (Is_CCT_Instance): New parameter profile. Update the comment on usage. The routine now properly recognizes several cases related to single protected/task types. 2016-04-18 Hristian Kirtchev * freeze.adb (Freeze_Entity): Use New_Freeze_Node to create a brand new freeze node. This handles a case where an ignored Ghost context is freezing something which is not ignored Ghost and whose freeze node should not be removed from the tree. (New_Freeze_Node): New routine. 2016-04-18 Jerome Lambourg * sigtramp.h (__gnat_set_is_vxsim) New function to tell sigtramp-vxworks to handle vxsim signal contexts. * sigtramp-vxworks.c (__gnat_sigtramp) Take into account the differences in the sigcontext structure between the expected regular x86 or x86_64 ones and the ones received in case of exexution on the vxworks simulator. * init.c: also compute is_vxsim in case of x86_64-vx7 target. Provide this information to sigtramp-vxworks.c. Remove the old mechanism for vxsim. * init-vxsim.c, sigtramp-vxworks-vxsim.c: remove, now obsolete. 2016-04-18 Eric Botcazou * exp_ch3.adb (Inline_Init_Proc): New function returning whether the initialization procedure of a type should be inlined. Return again True for controlled type themselves. (Build_Array_Init_Proc): Call it to set Set_Is_Inlined on Init_Proc. (Build_Record_Init_Proc): Likewise. 2016-04-18 Arnaud Charlet * gnatvsn.ads (Library_Version): Bump to 7. 2016-04-18 Ed Schonberg * sem_ch6.adb (Analyze_Expression_Function): Set Inlined flag on the entity of a subprogram declaration that is completed by an expression function. 2016-04-18 Ed Schonberg * sem_util.adb (Is_Current_Instance): A entity given by a subtype declaration can appear in an aspect specification for a dynamic predicate, and a pragma for aspect Predicate_Failure. * exp_util.adb (Replace_Subtype_References): Replace current occurrences of the subtype to which a dynamic predicate applies, byt the expression that triggers a predicate check. Needed to implement new aspect Predicate_Failure. 2016-04-18 Arnaud Charlet * a-intsig.ads, a-intsig.adb: Removed, no longer used. * Makefile.rtl: update accordingly. 2016-04-18 Eric Botcazou * sem_type.adb (Disambiguate): Call Covers only when necessary for standard operators. 2016-04-18 Eric Botcazou * atree.ads (Num_Extension_Nodes): Add couple of figures to comment. * atree.adb: Add GNAT.Heap_Sort_G dependency. (Print_Statistics): New exported procedure to print statistics. 2016-04-18 Eric Botcazou * exp_ch3.adb (Build_Record_Init_Proc): Do not mark the procedure as to be inlined if the type needs finalization. 2016-04-18 Jerome Lambourg * sigtramp-vxworks-target.inc: sigtramp-vxworks: force the stack alignment for x86_64. * init.c: Better fix for guard page reset on x86_64-vx7. Do not try to retrieve the page that actually raised the signal as the probing mechanism used on x86_64 do not allow such retrieval. We thus just test if the guard page is active, and re-activate it if not. 2016-04-18 Arnaud Charlet * a-sytaco.adb (Suspension_Object): Aspect Default_Initial_Condition added. 2016-04-18 Jerome Lambourg * affinity.c: Use the proper type for task id. * init.c (__gnat_inum_to_ivec): ivec is a pointer. 2016-04-18 Arnaud Charlet * sem_prag.adb (Process_Convention): Relax rule on exporting Intrinsic types if Relaxed_RM_Semantics is True. 2016-04-18 Vincent Celier * sem_ch3.adb, lib.ads, sinfo.ads, sem_ch10.adb, einfo.adb, einfo.ads, checks.ads, sem_ch12.adb, sem.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb, par.adb, exp_ch4.adb, errout.ads, sem_ch4.adb, atree.adb, atree.ads, sem_warn.adb, treepr.adb, exp_ch3.ads, exp_unst.adb: Change "descendent" to "descendant" in comments, error messages and identifiers. * gcc-interface/decl.c: Ditto. 2016-04-18 Eric Botcazou * sem_type.adb (Operator_Matches_Spec): Call First_Formal on New_S only once at the beginning of the function. 2016-04-02 Eric Botcazou * gcc-interface/decl.c (components_to_record): Restrict the previous change to fields with variable size. 2016-03-27 Eric Botcazou * gcc-interface/decl.c (components_to_record): Add special case for single field with representation clause at offset 0. 2016-03-16 Svante Signell * gcc-interface/Makefile.in: Add support for x86 GNU/Hurd. * s-osinte-gnu.ads: New file. 2016-03-13 Eric Botcazou * system-vxworks-m68k.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-mips.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-ppc.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-sparcv9.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. * system-vxworks-x86.ads (Stack_Check_Probes): Set to True. (Stack_Check_Limits): Set to False. 2016-03-07 Eric Botcazou * gcc-interface/trans.c (statement_node_p): New predicate. (gnat_to_gnu): Invoke it to detect statement nodes. In ASIS mode, do not return dummy results for expressions attached to packed array implementation types. 2016-03-07 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Always mark the expression of a renaming manually in case #3. 2016-03-02 Dominik Vogt * system-linux-s390.ads: Enable Stack_Check_Probes. * system-linux-s390.ads: Likewise. 2016-02-29 Martin Liska * gcc-interface/utils.c (set_reverse_storage_order_on_pad_type): Replace ENABLE_CHECKING macro with flag_checking. 2016-02-29 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Retrofit handling of unconstrained array types as designated types into common processing. Also handle array types as incomplete designated types. 2016-02-29 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : In ASIS mode, fully lay out the minimal record type. 2016-02-29 Eric Botcazou * gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code. (build_return_expr): Likewise. (Call_to_gnu): If this is a function call and there is no target, create a temporary for the return value for all aggregate types, but never create it for a return statement. Push a binding level around the call in more cases. Remove obsolete code. 2016-02-29 Eric Botcazou * gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro. * gcc-interface/gigi.h (gigi): Remove useless attribute. (gnat_gimplify_expr): Likewise. (gnat_to_gnu_external): Declare. * gcc-interface/decl.c (gnat_to_gnu_entity) : Factor out code dealing with the expression of external constants into... Invoke gnat_to_gnu_external instead. : Invoke gnat_to_gnu_external to translate renamed objects when not for a definition. Deal with COMPOUND_EXPR and variables with DECL_RETURN_VALUE_P set for renamings and with the case of a dangling 'reference to a function call in a renaming. Remove obsolete test and adjust associated comment. * gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the temporaries created to hold the return value, if any. (gnat_to_gnu_external): ...this. New function. * gcc-interface/utils.c (create_var_decl): Detect a constant created to hold 'reference to function call. * gcc-interface/utils2.c (build_unary_op) : Add folding for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case. 2016-02-17 Eric Botcazou * exp_ch4.adb (Expand_N_Indexed_Component): Activate synchronization if the prefix denotes an entity which Has_Atomic_Components. * gcc-interface/trans.c (node_is_atomic): Return true if the prefix denotes an entity which Has_Atomic_Components. 2016-02-17 Eric Botcazou * gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only for fat pointer or scalar types. 2016-02-16 Eric Botcazou * gcc-interface/gigi.h (maybe_debug_type): New inline function. * gcc-interface/misc.c (gnat_get_array_descr_info): Use it. Call maybe_character_value on the array bounds. Get to the base type of the index type and call maybe_debug_type on it. * gcc-interface/utils.c (finish_character_type): Add special treatment for char_type_node. 2016-02-16 Eric Botcazou * gcc-interface/misc.c (gnat_enum_underlying_base_type): New function. (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above. 2016-02-12 Jakub Jelinek * prj-tree.ads: Spelling fixes - behaviour -> behavior and neighbour -> neighbor. * prep.adb: Likewise. * prj.ads: Likewise. * prepcomp.adb: Likewise. * g-socket.ads: Likewise. * s-imgrea.adb: Likewise. * a-calend.adb: Likewise. * exp_disp.adb: Likewise. * doc/gnat_ugn/gnat_utility_programs.rst: Likewise. * g-socket.adb: Likewise. * sem_ch12.adb: Likewise. * terminals.c: Likewise. 2016-02-08 Bernd Schmidt * gcc-interface/misc.c (gnat_init): Remove second argument in call to build_common_tree_nodes. 2016-02-08 Eric Botcazou * gcc-interface/utils.c (create_var_decl): Set again DECL_COMMON and DECL_IGNORED_P last. 2016-01-28 Eric Botcazou * gcc-interface/gigi.h (enum attr_type): Rename into... (enum attrib_type): ...this. (struct attrib): Adjust. * gcc-interface/decl.c (prepend_one_attribute): Likewise. 2016-01-20 Eric Botcazou * exp_ch2.adb (Expand_Current_Value): Make an appropriate character literal if the entity is of a character type. * gcc-interface/lang.opt (fsigned-char): New option. * gcc-interface/misc.c (gnat_handle_option): Accept it. (gnat_init): Adjust comment. * gcc-interface/gigi.h (finish_character_type): New prototype. (maybe_character_type): New inline function. (maybe_character_value): Likewise. * gcc-interface/decl.c (gnat_to_gnu_entity) : For a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char. Set TYPE_ARTIFICIAL early and call finish_character_type on the type. : For a subtype of character with RM_Size and Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char. Copy TYPE_STRING_FLAG from type to subtype. : Deal with character index types. : Likewise. * gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with char_type_node throughout. (build_raise_check): Likewise. (get_type_length): Deal with character types. (Attribute_to_gnu) : Likewise. Remove obsolete range check code. Minor tweak. : Likewise. (Loop_Statement_to_gnu): Likewise. (Raise_Error_to_gnu): Likewise. : Deal with character index types. Remove obsolete code. : Likewise. : Deal with character types. Minor tweak. : Likewise. : Likewise. : Likewise. (emit_index_check): Delete. * gcc-interface/utils.c (finish_character_type): New function. (gnat_signed_or_unsigned_type_for): Deal with built-in character types. * gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node with char_type_node. (build_call_raise): Likewise. (build_call_raise_column): Likewise. (build_call_raise_range): Likewise. 2016-01-18 Eric Botcazou * gcc-interface/gigi.h (build_call_raise_column): Adjust prototype. (build_call_raise_range): Likewise. (gnat_unsigned_type): Delete. (gnat_signed_type): Likewise. (gnat_signed_or_unsigned_type_for): New prototype. (gnat_unsigned_type_for): New inline function. (gnat_signed_type_for): Likewise. * gcc-interface/cuintp.c (build_cst_from_int): Call build_int_cst. * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. (gnat_to_gnu_entity) : Always translate the index types and compute their base type from that. : Remove duplicate declaration. * gcc-interface/misc.c (get_array_bit_stride): Call build_int_cst. * gcc-interface/trans.c (get_type_length): Likewise. (Attribute_to_gnu): Likewise. (Loop_Statement_to_gnu): Likewise. (Call_to_gnu): Likewise. (gnat_to_gnu): Call build_real, build_int_cst, gnat_unsigned_type_for and gnat_signed_type_for. Minor tweaks. (build_binary_op_trapv): Likewise. (emit_check): Likewise. (convert_with_check): Likewise. (Raise_Error_to_gnu): Adjust calls to the build_call_raise family of functions. Minor tweaks. (Case_Statement_to_gnu): Remove dead code. (gnat_to_gnu): Call gnat_unsigned_type_for and gnat_signed_type_for. (init_code_table): Minor reordering. * gcc-interface/utils.c (gnat_unsigned_type): Delete. (gnat_signed_type): Likewise. (gnat_signed_or_unsigned_type_for): New function. (unchecked_convert): Use directly the size in the test for precision vs size adjustments. (install_builtin_elementary_types): Call gnat_signed_type_for. * gcc-interface/utils2.c (nonbinary_modular_operation): Call build_int_cst. (build_goto_raise): New function taken from... (build_call_raise): ...here. Call it. (build_call_raise_column): Add KIND parameter and call it. (build_call_raise_range): Likewise. 2016-01-18 Eric Botcazou * gcc-interface/ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to (TYPE_IMPL_PACKED_ARRAY_P): ...this. (TYPE_CAN_HAVE_DEBUG_TYPE_P): Do not test TYPE_DEBUG_TYPE. * gcc-interface/decl.c (gnat_to_gnu_entity): Simplify NULL_TREE tests and tweak gnat_encodings tests throughout. (initial_value_needs_conversion): Likewise. (intrin_arglists_compatible_p): Likewise. * gcc-interface/misc.c (gnat_print_type): Likewise. (gnat_get_debug_type): Likewise. (gnat_get_fixed_point_type_info): Likewise. (gnat_get_array_descr_info): Likewise. (get_array_bit_stride): Likewise. (gnat_get_type_bias): Fix formatting. (enumerate_modes): Likewise. * gcc-interface/trans.c (gnat_to_gnu): Likewise. (add_decl_expr): Simplify NULL_TREE test. (end_stmt_group): Likewise. (build_binary_op_trapv): Fix formatting. (get_exception_label): Use switch statement. (init_code_table): Move around. * gcc-interface/utils.c (global_bindings_p): Simplify NULL_TREE test. (gnat_poplevel): Likewise. (gnat_set_type_context): Likewise. (defer_or_set_type_context): Fix formatting. (gnat_pushdecl): Simplify NULL_TREE test. (maybe_pad_type): Likewise. (add_parallel_type): Likewise. (create_range_type): Likewise. (process_deferred_decl_context): Likewise. (convert): Likewise. (def_builtin_1): Likewise. * gcc-interface/utils2.c (find_common_type): Likewise. (build_binary_op): Likewise. (gnat_rewrite_reference): Likewise. (get_inner_constant_reference): Likewise. 2016-01-18 Eric Botcazou PR ada/69219 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Consider the parent function instead of the current function in order to issue the warning or the error. Add guard for ignored functions. 2016-01-17 Jakub Jelinek * adaint.c (__gnat_killprocesstree): Avoid -Wparentheses warning. 2016-01-15 Jakub Jelinek * adaint.c (__gnat_locate_exec_on_path): Use const char * instead of char * for path_val to avoid warnings. 2016-01-06 Pierre-Marie de Rodat * gcc-interface/utils.c: Bump copyright year. (rest_of_record_type_compilation): Add XVE/XVU parallel types to the current lexical scope. 2016-01-04 Jakub Jelinek * gnat_ugn.texi: Bump @copying's copyright year. * gnat_rm.texi: Likewise. 2016-01-02 Eric Botcazou * gnatvsn.ads: Bump copyright year. Copyright (C) 2016 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.