aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2017-09-08[multiple changes]Arnaud Charlet9-164/+317
2017-09-08 Eric Botcazou <ebotcazou@adacore.com> * debug.adb (dA): Adjust comment. * gnat1drv.adb (Gnat1drv): Likewise. * opt.ads (List_Representation_Info_Extended): New variable. * repinfo.adb (List_Record_Info): Split implementation into... (Compute_Max_Length): ...this. Recurse on records if requested. (List_Record_Layout): Likewise. * switch-c.adb (Scan_Front_End_Switches) <'R'>: Use case statement, accept '0' and set List_Representation_Info_Extended on 'e'. * usage.adb (Usage): Document new -gnatRe variant. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): Do not save the given entity in the global variable Default_Pool if the pragma appears within a generic unit. 2017-09-08 Bob Duff <duff@adacore.com> * errout.adb (Delete_Warning): Do not decrement Warnings_Treated_As_Errors. This is called before Warnings_Treated_As_Errors has been incremented to account for this warning. Decrementing it here can lead to negative values of Warnings_Treated_As_Errors, raising Constraint_Error in checks-on builds, and causing the compiler to return an error code in checks-off builds. From-SVN: r251873
2017-09-08[multiple changes]Arnaud Charlet8-62/+413
2017-09-08 Arnaud Charlet <charlet@adacore.com> * sem_util.ads, sem_util.adb (Is_CCT_Instance): Only expect entities of named concurrent types as Ref_Id and not of anonymous concurrent objects (because callers already know when a conversion is necessary and can easily do it); also, do not expect protected types or protected objects as Context_Id (because no flow-related SPARK pragmas are attached there); reflect these changes in a more precise comment. 2017-09-08 Olivier Hainque <hainque@adacore.com> * g-altive.ads: Add documentation. 2017-09-08 Bob Duff <duff@adacore.com> * sem_util.ads, debug.adb: Minor comment fix. * erroutc.ads: Comment fix. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Validate_Array_Type_Instance): Suppress check for compatibility of component types of formal and actual in an instantiation of a child unit, when the component type of the formal is itself a formal of an enclosing generic. From-SVN: r251872
2017-09-08[multiple changes]Arnaud Charlet10-134/+241
2017-09-08 Arnaud Charlet <charlet@adacore.com> * sem_util.ads, sem_util.adb (Is_CCT_Instance): moved from sem_prag.adb to make it available for GNATprove; for concurrent types replace custom scope climbing with Scope_Same_Or_Within; for single concurrent objects add scope climbing (with Scope_Within), which was not there (that's the primary semantic change of this commit); also, when comparing a single concurrent object with its corresponding concurrent type rely on equality of types, not of objects (because that's simpler to code). * sem_prag.adb (Is_CCT_Instance): lifted to sem_util.ads. (Analyze_Global_Item): adjust special-casing of references to the current instance of a concurrent unit in the Global contracts of task types and single tasks objects; similar for references in the protected operations and entries of protected types and single protected objects (in all these cases the current instance behaves as an implicit parameter and must not be mentioned in the Global contract). 2017-09-08 Arnaud Charlet <charlet@adacore.com> * exp_ch6.adb (Expand_Call_Helper): Introduce temporary for function calls returning a record within a subprogram call, for C generation. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Expanded_Name): Handle properly an expanded name that designates the current instance of a child unit in its own body and appears as the prefix of a reference to an entity local to the child unit. * exp_ch6.adb, freeze.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb: Minor reformatting. 2017-09-08 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Equality_Op): Do not warn on comparisons that may be intentional. 2017-09-08 Tristan Gingold <gingold@adacore.com> * sem_warn.adb (Check_Unused_Withs): Remove test that disabled warnings on internal units in configurable run time mode. From-SVN: r251871
2017-09-08[multiple changes]Arnaud Charlet9-12/+58
2017-09-08 Bob Duff <duff@adacore.com> * sem_ch3.adb (Build_Derived_Private_Type): Inherit representation items from interfaces that the derived type implements, not just from the parent type. * sem_util.ads, sem_util.adb (Abstract_Interface_List): Change this to return an empty list when there are no interfaces. * einfo.ads, sem_ch13.adb: Minor comment fixes. * sem_attr.adb: Minor comment fix. 2017-09-08 Doug Rupp <rupp@adacore.com> * sigtramp-vxworks.c [i386]: Adjust the kernel context for x86-vx7. 2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Expand_N_Allocator): Generate a call to Allocate_Any_Controlled when the allocation does not require any initialization. From-SVN: r251870
2017-09-08[multiple changes]Arnaud Charlet14-79/+209
2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb (Copy_Node_With_Replacement): Update the Renamed_Object field of a replicated object renaming declaration. 2017-09-08 Patrick Bernardi <bernardi@adacore.com> * exp_ch9.adb (Is_Pure_Barrier): Allow type conversions and components of objects. Simplified the detection of the Count attribute by identifying the corresponding run-time calls. 2017-09-08 Yannick Moy <moy@adacore.com> * exp_ch9.adb, exp_disp.adb, repinfo.adb, sem_ch12.adb, sem_dim.adb, sem_type.adb, sinfo.ads: Minor reformatting. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Has_Incomplete_Compoent): New predicate, subsidiary of Freeze_Profile, used to inhibit the freezing of the profile of an expression function declared within a nested package, when some type in the profile depends on a private type declared in an enclosing package. 2017-09-08 Bob Duff <duff@adacore.com> * gnat1drv.adb (Gnat1drv): Do not set the Force_ALI_Tree_File flag in the subunit case. It's still OK to set it in the "missing subunits" case, because that won't cause the obsolete .ali files that cause confusion. 2017-09-08 Bob Duff <duff@adacore.com> * sinput-l.adb: Remove unused "with Unchecked_Conversion;". It's unclear why this didn't cause a warning. * a-uncdea.ads, a-unccon.ads: Add "Ada." to names in the pragmas. It's unclear why this didn't cause an error. From-SVN: r251869
2017-09-08[multiple changes]Arnaud Charlet11-112/+341
2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Reimplemented. (Expand_SPARK_Potential_Renaming): Code clean up. * sem_prag.adb (Analyze_Initialization_Item): Add a guard in case the item does not have a proper entity. (Analyze_Input_Item): Add a guard in case the item does not have a proper entity. (Collect_States_And_Objects): Include object renamings in the items being collected. (Resolve_State): Update the documentation of this routine. * sem_util.adb (Entity_Of): Add circuitry to handle renamings of function results. (Remove_Entity): New routine. (Remove_Overloaded_Entity): Take advantage of factorization. * sem_util.ads (Entity_Of): Update the documentation of this routine. (Remove_Entity): New routine. (Remove_Overloaded_Entity): Update the documentation of this routine. 2017-09-08 Eric Botcazou <ebotcazou@adacore.com> * repinfo.adb (List_Record_Info): During first loop, do not override the normalized position and first bit if they have already been set. Move fallback code for the packed case to the case where it belongs. * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Also adjust the normalized position of components. (Adjust_Record_For_Reverse_Bit_Order_Ada_95): Likewise. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * exp_disp.adb (Make_DT, Set_All_DT_Position): Handle properly the placement of a primitive operation O that renames an operation R declared in an inner package, and which is thus not a primitive of the dispatching type of O. In this case O is a new primitive and does not inherit its dispatch table position from R (which has none). 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension_If_Expression, Analyze_Dimension_Case_Expression): new subprograms to verify the dimensional correctness of Ada2012 conditional expressions, and set properly the dimensions of the construct. * sem_res.adb (Resolve_If_Expression, Resolve_Case_Expression)): call Analyze_Dimension. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_type.adb (Expand_Interface_Conversion): Prevent an infinite loop on an interface declared as a private extension of another synchronized interface. From-SVN: r251868
2017-09-08Minor clean up.Arnaud Charlet1-1/+5
From-SVN: r251867
2017-09-08[multiple changes]Arnaud Charlet4-25/+68
2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Check_Generic_Parent): New procedure within Analyze_Associations, to handle actual packages that depend on previous instances. If a package IAP that is an instantiation is used as an actual in a subsequent instantiation SI in the same scope, and IAP has a body, IAP must be frozen before SI. If the generic parent of IAP is itself declared in a previous instantiation in the same scope, that instantiation must also be frozen before SI. (Install_Body): Prevent double insertion of freeze node for instance. 2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Resolve_State): Update the comment on documentation. Generate a reference to the state once resolution takes place. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications, case Linker_Section): If the aspect applies to an object declaration with explicit initialization, do not delay the freezing of the object, to prevent access-before-elaboration in the generated initialization code. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * a-wtdeio.adb (Put, all versions): Use Long_Long_Integer (Integer_Value (Item)) when the size of the fixed decimal type is larger than Integer. From-SVN: r251866
2017-09-08[multiple changes]Arnaud Charlet1-0/+33
2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Check_Generic_Parent): New procedure within Analyze_Associations, to handle actual packages that depend on previous instances. If a package IAP that is an instantiation is used as an actual in a subsequent instantiation SI in the same scope, and IAP has a body, IAP must be frozen before SI. If the generic parent of IAP is itself declared in a previous instantiation in the same scope, that instantiation must also be frozen before SI. (Install_Body): Prevent double insertion of freeze node for instance. 2017-09-08 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Resolve_State): Update the comment on documentation. Generate a reference to the state once resolution takes place. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications, case Linker_Section): If the aspect applies to an object declaration with explicit initialization, do not delay the freezing of the object, to prevent access-before-elaboration in the generated initialization code. 2017-09-08 Ed Schonberg <schonberg@adacore.com> * a-wtdeio.adb (Put, all versions): Use Long_Long_Integer (Integer_Value (Item)) when the size of the fixed decimal type is larger than Integer. From-SVN: r251865
2017-09-08Removed, no longer used.Arnaud Charlet12-1538/+0
From-SVN: r251864
2017-09-08Fix merge error.Eric Botcazou2-16/+0
From-SVN: r251862
2017-09-07re PR ada/82127 (gnat.dg/specs/constructor.ads FAILs)Eric Botcazou2-5/+9
PR ada/82127 * gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields in order of increasing position in more cases. From-SVN: r251846
2017-09-07[multiple changes]Arnaud Charlet40-169/+418
2017-09-07 Yannick Moy <moy@adacore.com> * a-exetim-mingw.ads: Add contract Global=>null on all operations that are modeled as having no read or write of global variables in SPARK. 2017-09-07 Raphael Amiard <amiard@adacore.com> * a-chtgop.adb, a-chtgop.ads (Generic_Iteration_With_Position): Added to Hmaps.Generic_Ops. * a-cohama.adb (Ada.Containers.Hmaps.Iterate): Pass proper position in cursors. * a-cihama.adb (Ada.Containers.Indefinite_Hmaps.Iterate): Pass pos in cursors. * a-cohase.adb (Ada.Containers.Hashed_Sets.Iterate): Pass proper position in cursors. 2017-09-07 Javier Miranda <miranda@adacore.com> * sem_elab.adb (Check_Task_Activation): Adding switch -gnatd.y to allow disabling the generation of implicit pragma Elaborate_All on task bodies. 2017-09-07 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Make_Tags): Avoid suffix counter in the external name of the elaboration flag. Required to fix the regressions introduced by the initial version of this patch. 2017-09-07 Bob Duff <duff@adacore.com> * sem_ch6.adb (Analyze_Function_Return): Do not insert an explicit conversion to force the displacement of the "this" pointer to reference the secondary dispatch table in the case where the return statement is returning a raise expression, as in "return raise ...". 2017-09-07 Arnaud Charlet <charlet@adacore.com> * sem_disp.adb (Is_User_Defined_Equality): Removed procedure. * sem_util.ads, sem_util.adb (Is_User_Defined_Equality): Copied procedure from sem_disp.adb. * sem_ch12.ads (Get_Unit_Instantiation_Node): rename Package with Unit. * sem_ch12.adb (Get_Unit_Instantiation_Node): function extended to return the instantiation node for subprograms. Update references to Get_Unit_Instantiation_Node. * sem_ch7.adb (Install_Parent_Private_Declarations): update reference to Get_Unit_Instantiation_Node. * exp_dist.adb (Build_Package_Stubs): update reference to Get_Unit_Instantiation_Node. * sem_ch9.adb: minor typo in comment. * lib-xref-spark_specific.adb (Traverse_Declaration_Or_Statement): traverse into task type definition. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension_Type_Conversion): New procedure to handle properly various cases of type conversions where the target type and/or the expression carry dimension information. (Dimension_System_Root); If a subtype carries dimension information, obtain the source parent type that carries the Dimension aspect. 2017-09-07 Dmitriy Anisimkov <anisimko@adacore.com> * g-socket.adb, g-socket.ads (GNAT.Sockets.To_Ada): New routine. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained): If the prefix is a reference to an object, rewrite it as an explicit dereference, as required by 3.7.2 (2) and as is done with most other attributes whose prefix is an access value. 2017-09-07 Bob Duff <duff@adacore.com> * par-ch13.adb: Set the Inside_Depends flag if we are inside a Refined_Depends aspect. * par-ch2.adb: Set the Inside_Depends flag if we are inside a Refined_Depends pragma. * scans.ads: Fix documentation of Inside_Depends flag. * styleg.adb, styleg.ads: Minor reformatting and comment fixes. 2017-09-07 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Insert_Actions_In_Scope_Around): Account for the case where the are no lists to insert, but the secondary stack still requires management. * a-chtgop.adb, a-cihama.adb, a-cohama.adb, a-cohase.adb, a-tags.adb, comperr.adb, einfo.adb, exp_aggr.adb, exp_ch3.adb, exp_disp.adb, lib-xref.adb, lib-xref-spark_specific.adb, sem_ch12.adb, sem_ch13.adb, sem_ch6.adb, sem_dim.adb, sem_dim.ads, sem_elab.adb, sem_prag.adb: Minor reformatting. From-SVN: r251842
2017-09-07[multiple changes]Arnaud Charlet3-586/+16
2017-09-07 Vincent Celier <celier@adacore.com> * clean.adb: Do not get the target parameters before calling gprclean. 2017-09-07 Nicolas Roche <roche@adacore.com> * s-osinte-solaris-posix.ads: Removed. From-SVN: r251841
2017-09-07[multiple changes]Arnaud Charlet12-23/+100
2017-09-07 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Collect_States_And_Objects): Detect also instances of single concurrent objects. 2017-09-07 Javier Miranda <miranda@adacore.com> * s-regexp.ads: Fix documentation of the globbing grammar. 2017-09-07 Gary Dismukes <dismukes@adacore.com> * a-tags.ads, einfo.ads, exp_disp.ads: Minor reformatting. 2017-09-07 Arnaud Charlet <charlet@adacore.com> * gnat1drv.adb (Gnat1drv): Enable pragma Ignore_Pragma (Global) in CodePeer mode, to support more legacy code automatically. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * exp_disp.adb (Replace_Formals): If thr formal is classwide, and thus not a controlling argument, preserve its type after rewriting because it may appear in an nested call with a classwide parameter. 2017-09-07 Arnaud Charlet <charlet@adacore.com> * comperr.adb (Delete_SCIL_Files): Handle case of N_Package_Instantiation. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Remove_Private_With_Clause): If a private with clause for a unit U appears in a context that includes a regular with_clause on U, rewrite the redundant private clause into a null statement, rather than removing it altogether from the context, so that ASIS tools can reconstruct the original source. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Check_Aspect_At_Freeze_Point): The expression for aspect Small can be of any real type (not only a universal real literal) as long as it is a static constant. 2017-09-07 Thomas Quinot <quinot@adacore.com> * par_sco.adb: Minor reformatting. From-SVN: r251840
2017-09-07s-parame-ae653.ads: Removed.Arnaud Charlet2-210/+4
* s-parame-ae653.ads: Removed. From-SVN: r251839
2017-09-07[multiple changes]Arnaud Charlet28-294/+346
2017-09-07 Nicolas Roche <roche@adacore.com> * s-traces-default.adb, s-trafor-default.adb, s-trafor-default.ads, s-traces.adb, s-traces.ads, s-tratas-default.adb, s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tratas.adb, s-tratas.ads, s-tasuti.adb, s-parame-hpux.ads, s-tassta.adb, s-taasde.adb, s-tasren.adb, s-taprob.adb, a-caldel.adb, s-parame.ads, Makefile.rtl, s-tpobop.adb, s-taenca.adb, s-parame-vxworks.ads: Remove support for System.Traces. 2017-09-07 Yannick Moy <moy@adacore.com> * a-ngelfu.ads Add preconditions to all functions listed in Ada RM A.5.1(19-33) as having constraints on inputs. 2017-09-07 Arnaud Charlet <charlet@adacore.com> * lib-xref.adb (Generate_Reference): ignore references to entities which are Part_Of single concurrent objects. 2017-09-07 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb (Hide_Public_Entities): Add paragraph to main comment. 2017-09-07 Arnaud Charlet <charlet@adacore.com> * a-taside.adb (Activation_Is_Complete): Raise Program_Error if Null_Task_Id is passed. 2017-09-07 Javier Miranda <miranda@adacore.com> * einfo.ads, einfo.adb (Access_Disp_Table_Elab_Flag): New attribute. Defined for record types and subtypes. * exp_ch3.ads (Init_Secondary_Tags): Adding new formal (Init_Tags_List) to facilitate generating separate code in the IP routine to initialize the object components and for completing the elaboration of dispatch tables. * exp_ch3.adb (Build_Init_Procedure): Improve the code generated in the IP routines by means of keeping separate the initialization of the object components from the initialization of its dispatch tables. (Init_Secondary_Tags): Adding new formal (Init_Tags_List) and adjusting calls to Ada.Tags.Set_Dynamic_Offset_To_Top since it has a new formal; adjusting also calls to Ada.Tags.Register_Interface_Offset because the type of one of its formals has been changed. * a-tags.ads, a-tags.adb (Register_Interface_Offset): Profile modified. Instead of receiving a pointer to an object this routine receives now a primary tag. (Set_Dyanic_Offset_To_Top): Profile modified. This routine receives an additional formal: the tag of the primary dispatch table. * exp_disp.ads (Elab_Flag_Needed): New subprogram. * exp_disp.adb (Elab_Flag_Needed): New subprogram. (Make_Tags): Adding the declaration of the elaboration flag (if needed). * exp_aggr.adb (Build_Record_Aggr_Code): Adding actual of new formal in calls to Init_Secondary_Tags. 2017-09-07 Javier Miranda <miranda@adacore.com> * ghost.adb (Mark_And_Set_Ghost_Instantiation.Check_Ghost_Actuals): New subprogram. * sem_prag.adb (Pragma_Ghost): Add missing support for ghost applied to generic subprograms. From-SVN: r251838
2017-09-07[multiple changes]Arnaud Charlet8-625/+29
2017-09-07 Arnaud Charlet <charlet@adacore.com> * sem_util.adb (Check_Part_Of_Reference): rename Conc_Typ to Conc_Obj (because it refers to the anonymous concurrent object, not its type); fix condition for emitting error message about task/protected type, 2017-09-07 Bob Duff <duff@adacore.com> * binde.adb (Debug_Flag_Old): If both -do and -dp are specified, behave as if just -do was specified, rather than using a mixture. 2017-09-07 Nicolas Roche <roche@adacore.com> * system-vxworks-sparcv9.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads, system-vxworks-m68k.ads, system-vxworks-mips.ads: Removed. From-SVN: r251837
2017-09-07[multiple changes]Arnaud Charlet19-154/+304
2017-09-07 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Find_Role): The Global_Seen flag is now consulted not only for abstract states and variables, but for all kinds of items. (Collect_Subprogram_Inputs_Outputs): Do not process formal generic parameters, because unlike ordinary formal parameters, generic formals only act as input/ outputs if they are explicitly mentioned in a Global contract. 2017-09-07 Yannick Moy <moy@adacore.com> * ghost.adb (Check_Ghost_Context): Do not err on ghost code inside predicate procedure. Check predicate pragma/aspect with Ghost entity. * exp_ch6.adb, par-ch6.adb, sem_ch13.adb, sem_prag.adb; Minor reformatting. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb: Move New_Copy_Tree_And_Dimensions to sem_dim (code cleanup); * sem_ch3.adb (Build_Derived_Record_Type):i Call Copy_Dimensions_Of_Components after creating the copy of the record declaration. * sem_dim.ads, sem_dim.adb (Copy_Dimensions_Of_Components): For a derived recor type, copy the dikensions if any of each component of the parent record to the corresponding component declarations of the derived record. These expressions are used among other things as default values in aggregates with box associations. * a-dirval-mingw.adb, g-cgi.adb, gnatcmd.adb, lib-xref.adb, repinfo.adb, sem_attr.adb, sem_ch10.adb, sem_ch6.adb, sem_prag.adb: Minor reformatting. 2017-09-07 Arnaud Charlet <charlet@adacore.com> * sem_util.adb: Remove extra space after THEN. 2017-09-07 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb (Has_Referencer): For a subprogram renaming, also mark the renamed subprogram as referenced. From-SVN: r251836
2017-09-07[multiple changes]Arnaud Charlet13-462/+492
2017-09-07 Ed Schonberg <schonberg@adacore.com> * par-ch6.adb (P_Subprogram): Improve error message on null procedure with misplaced aspect specification, which the parser first attempts to interpret as a malformed expression function. 2017-09-07 Gary Dismukes <dismukes@adacore.com> * sem_attr.adb (Analyze_Attribute_Old_Result): Allow attributes Result and Old in the case of an expression function. 2017-09-07 Justin Squirek <squirek@adacore.com> * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Propagate Volatile to subcomponents. 2017-09-07 Bob Duff <duff@adacore.com> * exp_ch7.adb (Find_Last_Init): Check for the case where a build-in-place function call has been replaced by a 'Reference attribute reference. 2017-09-07 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb (Has_Referencer): Recurse on Actions of freeze nodes. 2017-09-07 Bob Duff <duff@adacore.com> * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration, Make_Build_In_Place_Call_In_Anonymous_Context): Do not use the secondary stack for all functions that return limited tagged types -- just do it for dispatching calls. Misc cleanup. * sem_util.ads, sem_util.adb (Unqual_Conv): New function to remove qualifications and type conversions. Fix various bugs where only a single level of qualification or conversion was removed, so e.g. "T1'(T2'(X))" would incorrectly return "T2'(X)" instead of "X". * checks.adb, exp_util.ads, exp_util.adb, sem_res.adb: Misc related cleanup. 2017-09-07 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (setr_Actual_Subtypes): Within a predicate function do not create actual subtypes that may generate further predicate functions. * sem_ch13.adb (Build_Predicate_Functions): Indicate that entity of body is a predicate function as well. (Resolve_Aspect_Expressions, Resolve_Name): For a component association, only the expression needs resolution, not the name. (Resolve_Aspect_Expressions, case Predicates): Construct and analyze the predicate function declaration in the scope of the type, before making the type and its discriminants visible. From-SVN: r251835
2017-09-06decl.c (warn_on_field_placement): Issue the warning only if the record type ↵Eric Botcazou2-2/+10
itself comes from source. * gcc-interface/decl.c (warn_on_field_placement): Issue the warning only if the record type itself comes from source. From-SVN: r251812
2017-09-06[multiple changes]Arnaud Charlet7-26/+61
2017-09-06 Gary Dismukes <dismukes@adacore.com> * sem_ch5.adb: Minor reformatting and a typo fix 2017-09-06 Arnaud Charlet <charlet@adacore.com> * sinput-l.ads: minor remove extra period at the end of comment 2017-09-06 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Add_Item_To_Name_Buffer): remove support for E_Discriminant. (Find_Role): remove support for E_Discriminant. 2017-09-06 Javier Miranda <miranda@adacore.com> * exp_ch6.adb (Expand_Simple_Function_Return): Add missing implicit type conversion to force displacement of the "this" pointer. From-SVN: r251807
2017-09-06[multiple changes]Arnaud Charlet71-50161/+292
2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb, sem_aux.adb, sem_res.adb: Minor reformatting. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_ch12.adb (Analyze_Instance_And_Renamings): Refactor to set global variable Ignore_SPARK_Mode_Pragmas_In_Instance only once. 2017-09-06 Bob Duff <duff@adacore.com> * sem_ch8.adb: Change Assert to be consistent with other similar ones. 2017-09-06 Bob Duff <duff@adacore.com> * binde.adb (Find_Elab_Order): Do not run Elab_Old unless requested. Previously, the -do switch meant "run Elab_New and Elab_Old and use the order chosen by Elab_Old, possibly with debugging printouts comparing the two orders." Now it means "do not run Elab_New." This is of use if there are bugs that cause Elab_New to crash. (Elab_Position, Num_Chosen): Change type to Nat, to avoid various type conversions. * ali.ads (Elab_Position): Change type to Nat, to avoid various type conversions. 2017-09-06 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Fix reference to SPARK RM. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * layout.adb: Use SSU short hand consistently throughout the file. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * freeze.adb (Freeze_Record_Type) <Sized_Component_Total_Round_RM_Size>: New local variable to accumulate the rounded RM_Size of components. Update it for every component whose RM_Size is statically known. Add missing guard to check that bit packing is really required before issuing the error about packing. Swap condition for clarity's sake. * sem_prag.adb (Usage_Error): fix reference to SPARK RM in comment 2017-09-06 Fedor Rybin <frybin@adacore.com> * makeutl.adb, makeutl.ads, mlib.adb, mlib.ads, mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, mlib-tgt-specific-hpux.adb, mlib-tgt-specific-linux.adb, mlib-tgt-specific-mingw.adb, mlib-tgt-specific-solaris.adb, mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, mlib-utl.adb, mlib-utl.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-attr-pm.adb, prj-attr-pm.ads, prj-com.ads, prj-conf.adb, prj-conf.ads, prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads, sinput-p.adb, sinput-p.ads: Remove obsolete project manager sources. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Assigment): If the left-hand side is an entity of a mutable type and the right-hand side is a conditional expression, resolve the alternatives of the conditional using the base type of the target entity, because the alternatives may have distinct subtypes. This is particularly relevant if the alternatives are aggregates. From-SVN: r251797
2017-09-06[multiple changes]Arnaud Charlet8-121/+315
2017-09-06 Ed Schonberg <schonberg@adacore.com> * checks.adb (Apply_Predicate_Check): If the expression is an aggregate that is the RHS of an assignment, apply the check to the LHS after the assignment, rather than to the aggregate. This is more efficient than creating a temporary for the aggregate, and prevents back-end crashes when the aggregate includes a dynamic "others' association. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_ch12.adb (Analyze_Instance_And_Renamings): Set variable to ignore SPARK_Mode in instance before the analysis of the generated package declaration. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Call): Do not issue a message for calls inside expression function, unless body was seen and is candidate for inlining. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_aux.adb (Is_Generic_Formal): Handle properly formal packages. * sem_ch3.adb (Analyze_Declarations): In a generic subprogram body. do not freeze the formals of the generic unit. 2017-09-06 Gary Dismukes <dismukes@adacore.com> * errout.adb (Error_Msg): Separate the treatment for warning vs. style messages in inlinings and instantiations. Prevents blowups on calls to Warn_Insertion for style messages, which should not be called in that case because Warning_Msg_Char is not set. 2017-09-06 Justin Squirek <squirek@adacore.com> * sem_prag.adb (Check_VFA_Conflicts): Created to group all Volatile_Full_Access checks relating to other representation pragmas (Mark_Component_Or_Object): Created to centeralize the flagging of attributes for the record type component case, a pragma applied individually to a component, and the object case. (Process_Atomic_Independent_Shared_Volatile): Add propagation of certain pragmas to record components and move evaluation of VFA checks From-SVN: r251793
2017-09-06[multiple changes]Arnaud Charlet17-127/+222
2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): Do not warn on conditions that are not obeyed for Inline_Always subprograms, when assertions are not enabled. 2017-09-06 Arnaud Charlet <charlet@adacore.com> * sem_util.adb (Unique_Entity): For abstract states return their non-limited view. 2017-09-06 Bob Duff <duff@adacore.com> * sem_ch12.adb (Copy_Generic_Node): When we copy a node that is a proper body corresponding to a stub, we defer the adjustment of the sloc until after the correct adjustment has been computed. Otherwise, Adjust_Instantiation_Sloc will ignore the adjustment, because it will be outside the range in (the old, incorrect) S_Adjustment. * inline.adb: Use named notation for readability and uniformity. * sinput-l.adb: Minor improvements to debugging output printed for Debug_Flag_L. * sinput-l.ads (Create_Instantiation_Source): Minor comment correction. 2017-09-06 Vincent Celier <celier@adacore.com> * make.adb: Do not invoke gprbuild for -bargs -P. 2017-09-06 Sylvain Dailler <dailler@adacore.com> * sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Adding a case when Op is of kind N_Qualified_Expression. In this case, the function is called recursively on the subexpression like in other cases. * make.adb: Minor reformatting 2017-09-06 Justin Squirek <squirek@adacore.com> * einfo.adb (Set_Linker_Section_Pragma): Modify Set_Linker_Section_Pragma to be consistant with the "getter" Linker_Section_Pragma. * exp_ch5.adb (Expand_Formal_Container_Loop): Add proper error checking for container loops so that the index cursor is not directly changable by the user with the use of E_Loop_Parameter. * sem_ch5.adb (Analyze_Block_Statement): Revert previous change. * sem_warn.adb (Check_References): Revert previous change. From-SVN: r251789
2017-09-06trans.c (gnat_to_gnu): Try again to translate the prefix after the field if ↵Eric Botcazou2-0/+16
it is incomplete. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * gcc-interface/trans.c (gnat_to_gnu) <N_Selected_Component>: Try again to translate the prefix after the field if it is incomplete. From-SVN: r251788
2017-09-06Makefile.in: Remove the Project Manager from the GNAT tools.Vincent Celier2-6/+4
2017-09-06 Vincent Celier <celier@adacore.com> * gcc-interface/Makefile.in: Remove the Project Manager from the GNAT tools. From-SVN: r251787
2017-09-06[multiple changes]Arnaud Charlet20-4876/+2781
2017-09-06 Bob Duff <duff@adacore.com> * exp_util.adb (Is_Displace_Call): Make sure it works for indirect calls and the like. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_prag.adb (Analyze_Depends_Global): Reinforce test on object declarations to only consider valid uses of Global/Depends those on single concurrent objects. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * sem_ch13.adb (Check_Record_Representation_Clause): Give an error as soon as one of the specified components overlaps the parent field. 2017-09-06 Arnaud Charlet <charlet@adacore.com> * sem_prag.ads: minor fix typo in comment. 2017-09-06 Justin Squirek <squirek@adacore.com> * sem_ch5.adb (Analyze_Block_Statement): Verify a block comes from source before checking source references. * sem_warn.adb (Check_References): Add check for internal block before recursing. 2017-09-06 Vincent Celier <celier@adacore.com> * make.adb, makeusg.adb, switch-m.adb, switch-m.ads, make_util.adb, make_util.ads, sinput.adb, sinput.ads, clean.adb, gnatls.adb, gnatname.adb: Remove the Project Manager from the GNAT tools. 2017-09-06 Bob Duff <duff@adacore.com> * sem_util.ads: Minor comment fix. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Analyze_Associations, case of Formal_Package): Generate a freeze node for the actual of a formal package, if the actual is declared in the same unit and has a corresponding body, to prevent the current instance from being frozen before the actual is. From-SVN: r251786
2017-09-06[multiple changes]Arnaud Charlet11-89/+271
2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb (Entity_Table_Size): Change to nearest prime number. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_warn.adb: Minor refactoring. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * einfo.ads, einfo.adb (Get_Classwwide_Pragma): New utility, to retrieve the inherited classwide precondition/postcondition of a subprogram. * freeze.adb (Freeze_Entity): Use Get_Classwide_Pragma when freezing a subprogram, to complete the generation of the corresponding checking code. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Analyze_Inlined_Bodies): Remove restriction on loading of parent body with a with clause for the main unit. * gcc-interface/decl.c (defer_limited_with_list): Document new usage. (gnat_to_gnu_entity) <E_Access_Type>: Handle completed Taft Amendment types declared in external units like types from limited with clauses. Adjust final processing of defer_limited_with_list accordingly. 2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Is_Controlled_Indexing): New routine. (Is_Displace_Call): Use routine Strip to remove indirections. (Is_Displacement_Of_Object_Or_Function_Result): Code clean up. Add a missing case of controlled generalized indexing. (Is_Source_Object): Use routine Strip to remove indirections. (Strip): New routine. 2017-09-06 Bob Duff <duff@adacore.com> * sysdep.c (__gnat_has_cap_sys_nice): If HAVE_CAPABILITY is defined, we include the proper header. Otherwise, we just declare the necessary things from the capabilities library. This is so we can build on machines without that library, while still enabling that library. At run time, we're using weak symbols, so __gnat_has_cap_sys_nice will simply return 0 if the library is not present, or not included in the link. 2017-09-06 Pierre-Marie de Rodat <derodat@adacore.com> * exp_dbug.adb (Debug_Renaming_Declaration): Do not create an encoding for renamings that involve function calls in prefix form. 2017-09-06 Bob Duff <duff@adacore.com> * sem_ch3.adb (Analyze_Subtype_Declaration): Set Has_Delayed_Freeze on a subtype of an incomplete type. 2017-09-06 Pierre-Marie de Rodat <derodat@adacore.com> * par_sco.adb (Extend_Statement_Sequence): When the accept statement has no parameter specification and no entry index, use the entry name as the end of the generated SCO statement. From-SVN: r251785
2017-09-06exp_util.adb (Side_Effect_Free): For CodePeer (only) treat uses of 'Image ↵Steve Baird14-68/+176
and related attributes as having side... 2017-09-06 Steve Baird <baird@adacore.com> * exp_util.adb (Side_Effect_Free): For CodePeer (only) treat uses of 'Image and related attributes as having side effects in order to avoid replicating such uses. * pprint.ads (Expression_Image) Add new generic formal flag Hide_Temp_Derefs. The flag defaults to False; CodePeer will (eventually) override the default. * pprint.adb (Expression_Image) If the new flag is set, then suppress the ".all" suffix when displaying a dereference whose prefix is a use of a value-capturing compiler temp of the sort generated by Expr_Util.Remove_Side_Effects . * exp_attr.adb, g-catiio.adb, inline.adb, sem_attr.adb, sem_ch13.adb, sem_ch7.adb, sem_dim.adb, sem_util.adb, sem_util.ads, sem_warn.adb: Minor reformatting. * inline.adb: Minor wording change. From-SVN: r251784
2017-09-06[multiple changes]Arnaud Charlet14-206/+694
2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb: Update comment. 2017-09-06 Yannick Moy <moy@adacore.com> * einfo.adb, einfo.ads (Is_Subprogram_Or_Entry): New predicate. * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Use new function. * sem_util.adb, sem_util.ads (Within_Protected_Type): Renaming with slight modification from Is_Subp_Or_Entry_Inside_Protected, so that applies to any entity. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_ch3.adb (Derived_Type_Declaration): Use Incomplete_Or_Partial_View rather than local Find_Partial_View. 2017-09-06 Javier Miranda <miranda@adacore.com> * g-catiio.ads, g-catiio.adb (Value): Extended to parse an UTC time following ISO-8861. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension): In an instance, a type conversion takes its dimensions from the expression, not from the context type. (Dimensions_Of_Operand): Ditto. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_Call_Helper): Do not optimize calls to null procedures when GNAT coverage is used, so that their (empty) bodies are properly covered. 2017-09-06 Bob Duff <duff@adacore.com> * sem_ch13.adb (Resolve_Aspect_Expressions): If the entity is a type with discriminants, make the discriminants directly visible in aspect clauses. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Arithmentic_Op): If both operands are Universal_Real and the context is a floating-point type, resolve both operands to the target type. From-SVN: r251783
2017-09-06[multiple changes]Arnaud Charlet13-140/+227
2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * a-comlin.adb, exp_aggr.adb, exp_ch6.adb, frontend.adb, gnatbind.adb, sem_ch3.adb, sem_util.adb: Minor reformatting. 2017-09-06 Yannick Moy <moy@adacore.com> * freeze.adb (Check_Inherited_Conditions): Rewriting of inherited preconditions and postconditions should only occur in GNATprove mode, that is, when GNATprove_Mode is True, not to be confused with SPARK_Mode being On. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_warn.adb (Check_References): Take into account possibility of attribute reference as original node. 2017-09-06 Yannick Moy <moy@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Protect against invalid use of attribute. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Split_Unconstrained_Function): Also set Is_Inlined on the procedure created to encapsulate the body. * sem_ch7.adb: Add with clause for GNAT.HTable. (Entity_Table_Size): New constant. (Entity_Hash): New function. (Subprogram_Table): New instantiation of GNAT.Htable.Simple_HTable. (Is_Subprogram_Ref): Rename into... (Scan_Subprogram_Ref): ...this. Record references to subprograms in the table instead of bailing out on them. Scan the value of constants if it is not known at compile time. (Contains_Subprograms_Refs): Rename into... (Scan_Subprogram_Refs): ...this. (Has_Referencer): Scan the body of all inlined subprograms. Reset the Is_Public flag on subprograms if they are not actually referenced. (Hide_Public_Entities): Beef up comment on the algorithm. Reset the table of subprograms on entry. From-SVN: r251781
2017-09-06[multiple changes]Arnaud Charlet10-191/+243
2017-09-06 Yannick Moy <moy@adacore.com> * inline.adb: Add comments to Can_Be_Inlined_In_GNATprove_Mode. 2017-09-06 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Component_Not_OK_For_Backend): The C backend cannot handle a type conversion of an array as an aggregate component. 2017-09-06 Bob Duff <duff@adacore.com> * g-comlin.adb (Try_Help): Remove ".exe" so we get the same results on windows and unix. 2017-09-06 Justin Squirek <squirek@adacore.com> * exp_imgv.adb (Expand_Image_Attribute), (Expand_Wide_Image_Attribute), (Expand_Wide_Wide_Image_Attribute): Added case to handle new-style 'Image expansion (Rewrite_Object_Image): Moved from exp_attr.adb * exp_attr.adb (Expand_N_Attribute_Reference): Modified Image attribute cases so that the relevant subprograms in exp_imgv.adb handle all expansion. (Rewrite_Object_Reference_Image): Moved to exp_imgv.adb * sem_attr.adb (Analyze_Attribute): Modified Image attribute cases to call common function Analyze_Image_Attribute. (Analyze_Image_Attribute): Created as a common path for all image attributes (Check_Object_Reference_Image): Removed * sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object): Removed and refactored into Is_Object_Image (Is_Object_Image): Created as a replacement for Is_Image_Applied_To_Object From-SVN: r251779
2017-09-06sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation message for ↵Yannick Moy5-0/+53
missing input. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation message for missing input. 2017-09-06 Yannick Moy <moy@adacore.com> * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Prevent inlining of protected subprograms and entries. * sem_util.adb, sem_util.ads (Is_Subp_Or_Entry_Inside_Protected): New function to detect when a subprogram of entry is defined inside a protected object. From-SVN: r251778
2017-09-06sysdep.c (__gnat_has_cap_sys_nice): New function to determine whether the ↵Bob Duff3-13/+100
current process has the CAP_SYS_NICE... 2017-09-06 Bob Duff <duff@adacore.com> * sysdep.c (__gnat_has_cap_sys_nice): New function to determine whether the current process has the CAP_SYS_NICE capability. * s-taprop-linux.adb (Get_Ceiling_Support): Update this to allow ceiling priorities if the current process has the CAP_SYS_NICE capability. From-SVN: r251777
2017-09-06[multiple changes]Arnaud Charlet8-629/+153
2017-09-06 Bob Duff <duff@adacore.com> * a-comlin.ads, a-comlin.adb (Argument): Move the constraint check back to the body, because SPARK is not yet ready for "or else raise Constraint_Error". 2017-09-06 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_Call_Helper): Replace call to null procedure by a single null statement, after evaluating the actuals that require it. 2017-09-06 Javier Miranda <miranda@adacore.com> * exp_aggr.adb (Backend_Processing_Possible.Component_Check): Generating C code improve the code that checks the use of nested aggregates to initialize object declarations. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_ch3.adb (Derived_Type_Declaration): Detect violations of new rule SPARK RM 3.4(1). Also refactor existing check to use the new function Find_Partial_View. 2017-09-06 Vincent Celier <celier@adacore.com> * gnatcmd.adb: gnat ls -V -P... invokes gprls -V -P... The code from the Prj hierarchy has been removed from the GNAT driver. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_type.adb (Interface_Present_In_Ancestor): Within an expression function, or within a spec expression (default value, etc) a reference to an incomplete type is legal: legality of the operation will be checked when some related entity (type, object or subprogram) is frozen. From-SVN: r251776
2017-09-06[multiple changes]Arnaud Charlet15-617/+704
2017-09-06 Gary Dismukes <dismukes@adacore.com> * exp_ch5.adb, s-diinio.ads, sem_ch4.adb, s-diflio.ads: Minor spelling adjustments and a typo fix. 2017-09-06 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Call): Do not issue info message about inlining of calls to functions in assertions, for functions whose body has not been seen yet. 2017-09-06 Bob Duff <duff@adacore.com> * a-comlin.ads, a-comlin.adb (Argument): Simplify the code, now that we can use modern Ada in this package. * s-resfil.ads, s-resfil.adb, a-clrefi.ads, a-clrefi.adb: Move Ada.Command_Line.Response_File to System.Response_File, and make Ada.Command_Line.Response_File into a rename of System.Response_File. This is to avoid having gnatbind depend Ada.Command_Line, which would damage the bootstrap process now that Ada.Command_Line contains modern Ada (the raise expression). * gnatbind.adb: Avoid dependence on Ada.Command_Line. Depend on System.Response_File instead of Ada.Command_Line.Response_File. Change one call to Ada.Command_Line.Command_Name to use Fill_Arg. Change one call to Ada.Command_Line.Argument_Count to use Arg_Count. * gcc-interface/Make-lang.in, Makefile.rtl: Take note of the new files. From-SVN: r251775
2017-09-06frontend.adb (Frontend): Skip -gnatec=gnat.adc switch, because we've already ↵Bob Duff3-207/+223
read gnat.adc by default. 2017-09-06 Bob Duff <duff@adacore.com> * frontend.adb (Frontend): Skip -gnatec=gnat.adc switch, because we've already read gnat.adc by default. 2017-09-06 Bob Duff <duff@adacore.com> * exp_ch5.adb (Get_Default_Iterator): Replace "Assert(False)" with "return Iter", because if an iterable type is derived from a noniterable one, then we won't find an overriding or inherited default iterator. From-SVN: r251774
2017-09-06[multiple changes]Arnaud Charlet6-40/+93
2017-09-06 Yannick Moy <moy@adacore.com> * sem_warn.adb (Warn_On_Suspicious_Index): Improve warning when the literal index used to access a string is null or negative. 2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb (Status_Flag_Or_Transient_Decl): The attribute is now allowed on loop parameters. (Set_Status_Flag_Or_Transient_Decl): The attribute is now allowed on loop parameters. (Write_Field15_Name): Update the output for Status_Flag_Or_Transient_Decl. * einfo.ads: Attribute Status_Flag_Or_Transient_Decl now applies to loop parameters. Update the documentation of the attribute and the E_Loop_Parameter entity. * exp_ch7.adb (Process_Declarations): Remove the bogus guard which assumes that cursors can never be controlled. * exp_util.adb (Requires_Cleanup_Actions): Remove the bogus guard which assumes that cursors can never be controlled. From-SVN: r251773
2017-09-06exp_attr.adb, [...]: Minor reformatting.Hristian Kirtchev7-30/+37
2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb, sem_util.adb, sem_attr.adb, sem_ch6.adb, sem_ch8.adb, sem_warn.adb: Minor reformatting. From-SVN: r251772
2017-09-06[multiple changes]Arnaud Charlet3-15/+47
2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_warn.adb (Warn_On_Overlapping_Actuals): Refine previous fix and preserve older GNAT warning on overlapping actuals that are not elementary types. 2017-09-06 Justin Squirek <squirek@adacore.com> * sem_attr.adb: Comment correction. From-SVN: r251771
2017-09-06[multiple changes]Arnaud Charlet3-3/+18
2017-09-06 Gary Dismukes <dismukes@adacore.com> * sem_util.adb: Minor reformatting. 2017-09-06 Yannick Moy <moy@adacore.com> * a-comlin.ads (Argument): Add precondition for analysis. From-SVN: r251770
2017-09-06Minor reformatting.Arnaud Charlet3-9/+9
From-SVN: r251769
2017-09-06[multiple changes]Arnaud Charlet4-2/+30
2017-09-06 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve): Update message for function call as statement. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Check_Returns): Clean up warnings coming from generated bodies for renamings that are completions, when renamed procedure is No_Return. * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality rule in 6.5.1 (7/2): if a renaming is a completion of a subprogram with No_Return, the renamed entity must be No_Return as well. From-SVN: r251768
2017-09-06[multiple changes]Arnaud Charlet10-92/+164
2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch5.adb, freeze.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb: Minor reformatting. 2017-09-06 Justin Squirek <squirek@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Modified Image attribute cases (Rewrite_Object_Reference_Image): Created to aid the rewriting of new-style 'Image attributes. * sem_attr.adb (Analyze_Attribute): Modified Image attribute cases (Check_Object_Reference_Image): Created to handle verification of 'Image with object-references as prefixes. * sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object): Create predicate to identify cases where an 'Image attribute's prefix applies to an object reference. From-SVN: r251767
2017-09-06freeze.adb (Freeze_Entity): Do not generate a freeze node for a generic unit...Ed Schonberg2-0/+14
2017-09-06 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Freeze_Entity): Do not generate a freeze node for a generic unit, even if it includes delayed aspect specifications. Freeze nodes for generic entities must never appear in the tree that reaches the back-end of the compiler. From-SVN: r251766
2017-09-06[multiple changes]Arnaud Charlet21-133/+827
2017-09-06 Yannick Moy <moy@adacore.com> * treepr.adb (Print_Entity_Info): Do not print empty Elist. 2017-09-06 Yannick Moy <moy@adacore.com> * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not consider calls to subprograms in other units as possibly inlined. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Freeze_Entity): For a derived type that has no explicit delayed aspects but may inherit delayed aspects from its parent type, analyze aspect at freeze point for proper capture of an inherited aspect. 2017-09-06 Arnaud Charlet <charlet@adacore.com> * lib-xref.adb (Get_Through_Renamings): Get through subprogram renamings; also, avoid repeated calls to Renamed_Object when getting through object renamings. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Array_Type_Declaration): Handle properly an array type declaration in a private part, when an index is a subtype indication of a discrete type with a private partial view. 2017-09-06 Javier Miranda <miranda@adacore.com> * exp_ch4.adb (Expand_Modular_Op): Force generating temporary to improve the generated code. 2017-09-06 Tristan Gingold <gingold@adacore.com> * s-fatgen.adb: Minor typo fix in comment. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Make_Field_Assign): If the type of the right-hand side has stored constraint, use its values (except for those that are renamings of parent discriminants) to produce additional assignments for the discriminants of the left-hand side, which are invisible in the righ-hand side and not retrievable as selected components. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Needs_One_Formal): The first formal of such a function must be a controlling formal, so that Obj.F (X, Y) can have the interpretation F(Obj)(X, Y). * sem_util.ads: Clarify documentation. 2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * table.ads, table.adb: Restore original implementation. * namet.h (Names_Ptr): Adjust back. (Name_Chars_Ptr): Likewise. * uintp.h (Uints_Ptr): Likewise. (Udigits_Ptr): Likewise. * g-table.ads: Remove pragma Compiler_Unit_Warning. * par_sco.adb: Do not with GNAT.Table and use Table consistently. * scos.ads: Replace GNAT.Table with Table and adjust instantiations. * spark_xrefs.ads: Likewise. * scos.h: Undo latest changes. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate No_Return flag to instance if pragma applies to generic unit. This must be done explicitly because the pragma does not appear directly in the generic declaration (unlike the corresponding aspect specification). From-SVN: r251765
2017-09-06Fix typo.Arnaud Charlet1-2/+2
From-SVN: r251764
2017-09-06[multiple changes]Arnaud Charlet4-33/+112
2017-09-06 Eric Botcazou <ebotcazou@adacore.com> * sem_ch7.adb (Has_Referencer): Move up and expand comment explaining the test used to detect inlining. Use same test in second occurrence. (Analyze_Package_Body_Helper): Minor formatting fixes. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Handle_Changed_Representation): For an untagged derived type with a mixture of renamed and constrained parent discriminants, the constraint for the target must obtain the discriminant values from both the operand and from the stored constraint for it, given that the constrained discriminants are not visible in the object. * exp_ch5.adb (Make_Field_Assign): The type of the right-hand side may be derived from that of the left-hand side (as in the case of an assignment with a change of representation) so the discriminant to be used in the retrieval of the value of the component must be the entity in the type of the right-hand side. From-SVN: r251763
2017-09-06[multiple changes]Arnaud Charlet11-260/+293
2017-09-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb, sem_ch7.adb, sem_util.adb, g-debpoo.adb, sem_ch4.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting. * exp_util.adb (Is_Source_Object): Account for the cases where the source object may appear as a dereference or within a type conversion. * exp_ch6.adb: Fix missing space in error message. 2017-09-06 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb: Update description of Eliminate. From-SVN: r251762