aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2014-07-30sem_ch5.adb: Improve error recovery.Ed Schonberg3-0/+22
2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb: Improve error recovery. * inline.adb (Build_Body_To_Inline): Set Full_Analysis to false before analyzing the body, so that in GNATprove mode there is no light expansion. Whatever expansion is required by SPARK will be performed when analysing the inlined code. From-SVN: r213267
2014-07-30[multiple changes]Arnaud Charlet5-6/+22
2014-07-30 Bob Duff <duff@adacore.com> * s-tataat.adb, s-tataat.ads, a-tasatt.adb: Minor comment fixes. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Loop_Statement): If loop has a label, verify that it is not hidden by an inner implicit declaration. From-SVN: r213266
2014-07-30[multiple changes]Arnaud Charlet18-802/+459
2014-07-30 Thomas Quinot <quinot@adacore.com> * sem.ads (Scope_Table_Entry): New component Locked_Shared_Objects. * sem_ch8.adb (Push_Scope): Initialize Locked_Shared_Objects. * exp_smem.adb (Add_Shared_Var_Lock_Procs): Handle the case where the call returns an unconstrained type: in this case there is already a transient scope, and we should not establish a new one. * exp_ch7.adb (Insert_Actions_In_Scope_Around): New formal Clean. If True, also insert cleanup actions in the tree. (Wrap_Transient_Declaration): Call Insert_Actions_In_Scope_Around with Clean set True. 2014-07-30 Arnaud Charlet <charlet@adacore.com> * s-taskin.ads (Direct_Index, Direct_Index_Range, Direct_Attribute_Element, Direct_Attribute_Array, Direct_Index_Vector, Direct_Attributes, Is_Defined, Indirect_Attributes): Removed. (Atomic_Address, Attribute_Array, Attributes): New. * s-tasini.ads, s-tasini.adb (Proc_T, Initialize_Attributes, Finalize_Attributes_Link, Initialize_Attributes_Link): Removed. (Finalize_Attributes): Reimplement. * s-tassta.adb (Create_Task): Remove call to Initialize_Attributes_Link (Free_Task, Vulnerable_Free_Task): Replace Finalize_Attributes_Link by Finalize_Attributes. * a-tasatt.ads, a-tasatt.adb, s-tataat.ads, s-tataat.adb: Reimplement from scratch, using a simpler and more efficient implementation. * s-tporft.adb (Register_Foreign_Thread): Remove now obsolete comment. * s-parame.ads, s-parame-hpux.ads, * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, * s-parame-vxworks.ads (Max_Attribute_Count): New, replace Default_Attribute_Count. From-SVN: r213265
2014-07-30[multiple changes]Arnaud Charlet36-173/+333
2014-07-30 Olivier Hainque <hainque@adacore.com> * vxworks-ppc-link.spec: New file. Extra link instructions for ppc-vxworks. * vxworks-crtbe-link.spec: Likewise, for ZCX related support. * system-vxworks-ppc.ads: Adjust linker options to use spec files. * system-vxworks-arm.ads: Likewise. * gcc-interface/Makefile.in: Enable .spec files. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_aggr.adb: Minor comment reformatting. 2014-07-30 Robert Dewar <dewar@adacore.com> * sem_util.ads, sem_util.adb (Is_Junk_Name): Removed. * sem_warn.adb (Has_Junk_Name): New function (Check_References): Use Has_Junk_Name to delete junk warnings (Check_Unset_Reference): ditto. (Warn_On_Unreferenced_Entity): ditto. (Warn_On_Useless_Assignment): ditto. * sem_ch3.adb, lib-xref-spark_specific.adb, s-taprop-vxworks.adb, exp_ch7.adb, s-asthan-vms-alpha.adb, sem_ch10.adb, osint-c.adb, prj.adb, g-comlin.adb, makeutl.adb, s-tasdeb.adb, exp_intr.adb, s-asthan-vms-ia64.adb, prj-env.adb: Ditto. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * checks.adb (Insert_Valid_Check): Do not check for the packed array type of a prefix that is an access type. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Eval_Attribute): Evaluate the GNAT attribute Unconstrained_Array even if prefix is not frozen yet, as can occur with a private subtype used as a generic actual. 2014-07-30 Gary Dismukes <dismukes@adacore.com> * sem_attr.adb: Minor reformatting. 2014-07-30 Pat Rogers <rogers@adacore.com> * gnat_rm.texi: Corrected minor wording error in description of No_Exception_Registration. 2014-07-30 Yannick Moy <moy@adacore.com> * einfo.ads, einfo.adb: New flag Is_Inlined_Always for use in GNATprove mode. Realphabetize two subprograms. * inline.adb (Cannot_Inline): Use Is_Inlined_Always in GNATprove mode. (Can_Be_Inlined_In_GNATprove_Mode): Adapt to possible Empty Body_Id. (Check_And_Build_Body_To_Inline): Use Is_Inlined_Always in GNATprove mode. (Expand_Inline_Call): Use Is_Inlined_Always in GNATprove mode. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not use Is_Inline in GNATprove mode. (Analyze_Subprogram_Specification): Set Is_Inlined_Always at subprogram entity creation. * sem_res.adb (Resolve_Call): Do not deal with inlining during pre-analysis. Issue warning on call to possibly inlined subprogram when body not seen. 2014-07-30 Yannick Moy <moy@adacore.com> * lib-xref.adb (Generate_Reference): Add special case for compiler-generated formals in GNATprove mode. From-SVN: r213264
2014-07-30Clean up.Arnaud Charlet1-7/+0
From-SVN: r213263
2014-07-30[multiple changes]Arnaud Charlet6-11/+57
2014-07-30 Yannick Moy <moy@adacore.com> * sem_ch6.adb: Add comments. 2014-07-30 Thomas Quinot <quinot@adacore.com> * s-os_lib.ads (GM_Time_Of): Clarify documentation. 2014-07-30 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, sem_res.adb: Minor reformatting. 2014-07-30 Thomas Quinot <quinot@adacore.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Bit_Order): Set Reverse_Bit_Order on the base type of the specified first subtype. From-SVN: r213261
2014-07-30[multiple changes]Arnaud Charlet9-8/+91
2014-07-30 Ed Schonberg <schonberg@adacore.com> * inline.adb (Expand_Inlined_Call): Use a renaming declaration to capture the value of actuals of a limited type rather than an object declaration, to prevent spurious errors when analyzing the inlined body. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Type_Conversion): Treat an inlined body as an instance, and inhibit semantic checks on already analyzed code to prevent spurious errors. 2014-07-30 Arnaud Charlet <charlet@adacore.com> * a-exctra.ads ("="): New function, to restore compatibility. 2014-07-30 Pascal Obry <obry@adacore.com> * adaint.c (__gnat_to_os_time): Set isdst to -1 for the mktime routine to use the OS dst setting. 2014-07-30 Pat Rogers <rogers@adacore.com> * gnat_ugn.texi: Minor correction to description of -gnatw.K. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Wrong_Type): Disable some checks equally within instances and within inlined bodies, to suppress spurious type errors on already analyzed code. * sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Expression is legal in an inlined body, juts as it is in an instance body. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Unchecked_Conversion): Within an inlined body the operand of an unchecked conversion may be a literal, in which case its type is the target type of the conversion. This is in contrast to conversions in other contexts, where the operand cannot be a literal and must be resolvable independent of the context. From-SVN: r213260
2014-07-30Minor reformatting.Arnaud Charlet4-8/+16
From-SVN: r213259
2014-07-30decl.c (gnat_to_gnu_entity): Create a mere scalar constant instead of a ↵Pierre-Marie de Rodat4-6/+52
reference for a renaming of scalar... 2014-07-30 Pierre-Marie Derodat <derodat@adacore.com> * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create a mere scalar constant instead of a reference for a renaming of scalar literal. * gcc-interface/utils.c (renaming_from_generic_instantiation_p): New. * gcc-interface/gigi.h (renaming_from_generic_instantiation_p): New. From-SVN: r213258
2014-07-30[multiple changes]Arnaud Charlet29-67/+156
2014-07-30 Robert Dewar <dewar@adacore.com> * s-tasuti.adb, s-tasuti.ads, einfo.ads, sem_prag.adb, s-taasde.adb, g-socthi-vms.adb, s-taprop-mingw.adb, s-interr.adb, s-interr-hwint.adb, g-decstr.adb, s-tasdeb-vms.adb, g-expect-vms.adb, makeutl.adb, s-interr-vms.adb, g-socthi.adb, exp_aggr.adb, s-tasdeb.adb, g-awk.adb, gnatls.adb, s-taspri-posix.ads, g-catiio.adb, s-interr-sigaction.adb, s-os_lib.adb, s-fileio.adb: Minor reformatting & code reorganization. 2014-07-30 Bob Duff <duff@adacore.com> * s-tassta.adb, sem_util.ads: Minor reformatting. 2014-07-30 Yannick Moy <moy@adacore.com> * inline.adb (Build_Body_To_Inline): Detect when subprogram has multiple returns, or not a single last return statement, in GNATprove mode. (Cannot_Inline): Simplify logic to handle case of GNATprove inlining first. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb: Stubs are not subject to inlining. From-SVN: r213257
2014-07-30[multiple changes]Arnaud Charlet21-308/+180
2014-07-30 Bob Duff <duff@adacore.com> * s-tasuti.ads, s-tasuti.adb (Make_Independent): Change this from a procedure to a function, so that it can more easily be called before the "begin" of a task. * s-taasde.ads (Delay_Block): Make this type immutably limited, so we can use a build-in-place function call to initialize Timer_Queue in the body. * a-rttiev.adb, s-asthan-vms-alpha.adb, s-asthan-vms-ia64.adb, * s-interr.adb, s-interr-hwint.adb, s-interr-sigaction.adb, * s-interr-vms.adb, s-taasde.adb: Each independent task now calls Make_Independent before reaching its "begin", to avoid race conditions. This causes the activating task to wait until after Make_Independent is complete before proceeding. In addition, we initialize data structures used by independent tasks before activating those tasks, to avoid possible use of uninitialized data. * s-interr.ads, s-intman.ads, s-taspri-posix.ads, s-tasdeb.ads: Minor comment fixes. 2014-07-30 Bob Duff <duff@adacore.com> * a-exctra.ads, s-traent-vms.ads, s-traent.ads (Tracebacks_Array): Move the declaration of Tracebacks_Array from Ada.Exceptions.Traceback to System.Traceback_Entries (s-traent.ads and s-traent-vms.ads). Add subtypes renaming Tracebacks_Array in Ada.Exceptions.Traceback. * g-debpoo.adb: Refer to Tracebacks_Array in its new home. 2014-07-30 Arnaud Charlet <charlet@adacore.com> * a-tasatt.adb: Remove old comments. From-SVN: r213256
2014-07-30einfo.ads (Is_Inlined): Document new use in GNATprove mode.Yannick Moy5-14/+51
2014-07-30 Yannick Moy <moy@adacore.com> * einfo.ads (Is_Inlined): Document new use in GNATprove mode. * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add comments to explain rationale for inlining or not in GNATprove mode. (Expand_Inlined_Call): In GNATprove mode, set Is_Inlined flag to False when inlining is not possible. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Is_Inlined flag to indicate that subprogram is fully inlined. To be reversed if inlining problem is found. * sem_res.adb (Resolve_Call): Set Is_Inlined flag to False when call in potentially unevaluated context. From-SVN: r213255
2014-07-30[multiple changes]Arnaud Charlet13-61/+132
2014-07-30 Jose Ruiz <ruiz@adacore.com> * s-tarest.adb, s-tarest.ads: Fix comments. 2014-07-30 Robert Dewar <dewar@adacore.com> * exp_attr.adb, checks.adb, sem_util.adb, sem_util.ads, sem_attr.adb: Change No_Scalar_Parts predicate to Scalar_Part_Present and invert sense of test. This avoids the "not No_xxx" situation which is always ugly. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * inline.adb (Expand_Inlined_Call): When generating code for an internal subprogram the expansion uses the location of the call, so that gdb can skip over it. In GNATprove mode we want to preserve slocs of original subprogram when expanding an inlined call, to obtain better warnings, even though subprogram appears not to come from source if it is the inlining of a subprogram body without a previous spec. 2014-07-30 Eric Botcazou <ebotcazou@adacore.com> * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array types with atomic components. 2014-07-30 Thomas Quinot <quinot@adacore.com> * Make-generated.in: Remove now unnecessary targets after s-oscons reorg. 2014-07-30 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Call): Use ultimate alias of callee when available. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): To check whether an expression function is a completion, use the specification of the previous declaration, not its entity, which may be internally generated in an inlined context. From-SVN: r213254
2014-07-30[multiple changes]Arnaud Charlet10-202/+160
2014-07-30 Doug Rupp <rupp@adacore.com> * adaint.c (__gnat_tmp_name) [__ANDROID__]: Default to putting temp files in /cache directory unless overridden by TMPDIR. 2014-07-30 Jose Ruiz <ruiz@adacore.com> * s-tassta.adb, s-tarest.adb (Initialize, Create_Task, Create_Restricted_Task): Remove redundant check. Number_Of_CPUs returns type CPU, so it can never be greater than CPU_Range'Last. 2014-07-30 Bob Duff <duff@adacore.com> * s-taskin.ads: Minor comment fix. 2014-07-30 Thomas Quinot <quinot@adacore.com> * g-socket.adb: Remove now useless WITH, USE, and USE TYPE clauses. 2014-07-30 Yannick Moy <moy@adacore.com> * debug.adb: Free debug flag dQ used for frontend inlining in GNATprove mode.. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove test of debug flag.. 2014-07-30 Thomas Quinot <quinot@adacore.com> * Make-generated.in: Remove generation of s-oscons.ads, only generate the xoscons utility, in runtime-agnostic rules. * gcc-interface/Makefile.in: Clean up rules. Remove VMS parts, no longer supported. From-SVN: r213250
2014-07-30[multiple changes]Arnaud Charlet7-121/+222
2014-07-30 Bob Duff <duff@adacore.com> * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): New parameter Chain to be used in the allocator case. (Make_Build_In_Place_Call_In_Allocator): If the allocated object has tasks, wrap the code in a block that will activate them, including the usual finalization code to kill them off in case of exception or abort. 2014-07-30 Robert Dewar <dewar@adacore.com> * treepr.adb, treepr.ads; Reorganize documentation for new pp routines Remove renamings (don't work for gdb). (par): New synonym for p (avoid gdb ambiguities). * inline.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. From-SVN: r213249
2014-07-30exp_ch9.ads, [...]: Minor comment fixes.Bob Duff7-54/+37
2014-07-30 Bob Duff <duff@adacore.com> * exp_ch9.ads, sem_prag.adb, exp_ch4.adb, sem_ch13.adb: Minor comment fixes. * treepr.ads, treepr.adb (ppp): Make this debugging routine accept any type covered by Union_Id. From-SVN: r213248
2014-07-30[multiple changes]Arnaud Charlet6-7/+128
2014-07-30 Robert Dewar <dewar@adacore.com> * sem_ch4.adb (Analyze_If_Expression): Resolve condition before analyzing branches. * sem_eval.adb (Out_Of_Range): Check for statically unevaluated expression case. 2014-07-30 Robert Dewar <dewar@adacore.com> * sem_ch13.adb (Analyze_Aspect, predicate cases): Diagnose use of predicate aspect on entity other than a type. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Body_Has_Contract): New predicate to determine when a subprogram body without a previous spec cannot be inlined in GNATprove mode, because it includes aspects or pragmas that generate a SPARK contract clause. * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): A subprogram instance cannot be inlined. From-SVN: r213247
2014-07-30[multiple changes]Arnaud Charlet18-297/+515
2014-07-30 Robert Dewar <dewar@adacore.com> * debug.adb: Document that d7 suppresses compilation time output. * errout.adb (Write_Header): Include compilation time in header output. * exp_intr.adb (Expand_Intrinsic_Call): Add Compilation_Date/Compilation_Time (Expand_Source_Info): Expand Compilation_Date/Compilation_Time. * g-souinf.ads (Compilation_Date): New function (Compilation_Time): New function. * gnat1drv.adb (Gnat1drv): Set Opt.Compilation_Time. * gnat_rm.texi (Compilation_Date): New function (Compilation_Time): New function. * opt.ads (Compilation_Time): New variable. * s-os_lib.ads, s-os_lib.adb (Current_Time_String): New function. * sem_intr.adb (Compilation_Date): New function. (Compilation_Time): New function. * snames.ads-tmpl (Name_Compilation_Date): New entry. (Name_Compilation_Time): New entry. 2014-07-30 Yannick Moy <moy@adacore.com> * inline.adb: Add comment. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * par-ch4.adb (Is_Parameterless_Attribute): 'Result is a parameterless attribute, and a postondition can mention an indexed component or a slice whose prefix is an attribute reference F'Result. 2014-07-30 Robert Dewar <dewar@adacore.com> * sprint.adb (Sprint_Node_Actual, case Object_Declaration): Avoid bomb when printing package Standard. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): If an elaboration entity is created at this point, ensure that the name of the flag is unique, because the subprogram may be overloaded and other homonyms may also have elaboration flags created on the fly. 2014-07-30 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb (Analyze_Array_Component_Update): New routine. (Analyze_Attribute): Major cleanup of attribute 'Update. The logic is now split into two distinct routines depending on the type of the prefix. The use of <> is now illegal in attribute 'Update. (Analyze_Record_Component_Update): New routine. (Check_Component_Reference): Removed. (Resolve_Attribute): Remove the return statement and ??? comment following the processing for attribute 'Update. As a result, the attribute now freezes its prefix. 2014-07-30 Javier Miranda <miranda@adacore.com> * exp_ch4.adb (Apply_Accessibility_Check): Do not call Base_Address() in VM targets. From-SVN: r213246
2014-07-30gnat1drv.adb (Adjust_Global_Switches): Set Ineffective_Inline_Warnings to ↵Yannick Moy5-7/+33
True in GNATprove mode. 2014-07-30 Yannick Moy <moy@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Set Ineffective_Inline_Warnings to True in GNATprove mode. * inline.adb (Cannot_Inline): Prepare new semantics for GNATprove mode of inlining. * opt.ads (Ineffective_Inline_Warnings): Add comment that describes use in GNATprove mode. * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Ignore pragma when applied to the special body created for inlining. From-SVN: r213245
2014-07-30inline.adb, [...]: Minor reformatting.Robert Dewar6-14/+17
2014-07-30 Robert Dewar <dewar@adacore.com> * inline.adb, exp_ch4.adb, sinput.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. From-SVN: r213244
2014-07-30[multiple changes]Arnaud Charlet4-139/+177
2014-07-30 Hristian Kirtchev <kirtchev@adacore.com> * aspects.ads Add a comment explaining why SPARK 2014 aspects are not delayed. Update the delay status of most SPARK 2014 aspects. * sem_ch13.adb (Analyze_Aspect_Specifications): Update all calls to Decorate_Aspect_And_Pragma and Insert_Delayed_Pragma to refert to Decorate and Insert_Pragma. Add various comments concerning the delay status of several SPARK 2014 aspects. The insertion of Refined_State now uses routine Insert_After_SPARK_Mode. (Decorate): New routine. (Decorate_Aspect_And_Pragma): Removed. (Insert_Delayed_Pragma): Removed. (Insert_Pragma): New routine. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * inline.adb (Expand_Inlined_Call): In GNATprove mode, emit only a warning, not an error on an attempt to inline a recursive subprogram. From-SVN: r213243
2014-07-30[multiple changes]Arnaud Charlet12-119/+254
2014-07-30 Robert Dewar <dewar@adacore.com> * g-forstr.adb: Minor code reorganization (use J rather than I as a variable name). * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_ch13.adb, g-forstr.ads: Minor reformatting. 2014-07-30 Eric Botcazou <ebotcazou@adacore.com> * sprint.adb (Set_Debug_Sloc): Also reset the end location if we are debugging the generated code. 2014-07-30 Yannick Moy <moy@adacore.com> * sinput.ads, sinput.adb (Comes_From_Inlined_Body): New function that returns True for source pointer for an inlined body. 2014-07-30 Javier Miranda <miranda@adacore.com> * exp_ch4.adb (Apply_Accessibility_Check): Add missing calls to Base_Address(). 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Hanalyze_Subprogram_Body_Helper): In GNATprove mode, subprogram bodies without a previous declaration are also candidates for front-end inlining. From-SVN: r213242
2014-07-30[multiple changes]Arnaud Charlet12-85/+1467
2014-07-30 Hristian Kirtchev <kirtchev@adacore.com> * aspects.ads Aspects Async_Readers, Async_Writers, Effective_Reads and Effective_Writes do not need to be delayed. * sem_ch13.adb (Analyze_Aspect_Specifications): Propagate the optional Boolean expression when generating the corresponding pragma for an external property aspect. * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Remove local constant Obj. Add local constant Obj_Id. Reimplement the check which ensures that the related variable is in fact volatile. (Analyze_Pragma): Reimplement the analysis of external property pragmas. * sem_util.adb (Is_Enabled): New routine. (Variable_Has_Enabled_Property): Reimplement the detection of an enabled external property. 2014-07-30 Sergey Rybin <rybin@adacore.com frybin> * gnat_ugn.texi, vms_data.ads: gnatstub: describe generating subunits for body stubs. 2014-07-30 Pascal Obry <obry@adacore.com> * g-forstr.adb, g-forstr.ads: New. * gnat_rm.texi, impunit.adb Makefile.rtl: Add new unit GNAT.Formatted_String. From-SVN: r213241
2014-07-30[multiple changes]Arnaud Charlet6-51/+276
2014-07-30 Eric Botcazou <ebotcazou@adacore.com> * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): New predicate. (Expand_Array_Aggregate): Also enable in-place expansion for code generated by the compiler. For an object declaration, set the kind of the object in addition to its type. If an in-place assignment is to be generated and it can be directly done by the back-end, do not expand the aggregate. * fe.h (Is_Others_Aggregate): Declare. * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Add support for an aggregate with a single Others choice on the RHS by means of __builtin_memset. Tidy up. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * gnat_rm.texi: minor reformatting. 2014-07-30 Yannick Moy <moy@adacore.com> * sem_ch6.adb (Analyze_Subprogram_Helper_Body): Remove body to inline in SPARK_Mode Off. From-SVN: r213240
2014-07-30[multiple changes]Arnaud Charlet3-2/+26
2014-07-30 Vincent Celier <celier@adacore.com> * prj-strt.adb: Minor comment update. 2014-07-30 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document additional implementation-defined use of Constrained. From-SVN: r213239
2014-07-30prj-proc.adb, [...]: Update comments.Robert Dewar3-2/+9
2014-07-30 Robert Dewar <dewar@adacore.com> * prj-proc.adb, prj-strt.adb: Update comments. From-SVN: r213238
2014-07-30[multiple changes]Arnaud Charlet6-15/+46
2014-07-30 Gary Dismukes <dismukes@adacore.com> * sinfo.ads, einfo.ads, checks.ads: Minor typo fix and reformatting. 2014-07-30 Vincent Celier <celier@adacore.com> * prj-proc.adb (Imported_Or_Extended_Project_From): New Boolean parameter No_Extending, defaulted to False. When No_Extending is True, do not look for an extending project. (Expression): For a variable reference that is not for the current project, get its Id calling Imported_Or_Extended_Project_From with No_Extending set to True. * prj-strt.adb (Parse_Variable_Reference): If a referenced variable is not found in the current project, check if it is defined in one of the projects it extends. From-SVN: r213237
2014-07-30[multiple changes]Arnaud Charlet3-12/+42
2014-07-30 Robert Dewar <dewar@adacore.com> * sem_util.adb (Predicate_Tests_On_Arguments): Omit tests for some additional cases of internally generated routines. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Analyze_Proper_Body): When compiling for ASIS, if the compilation unit is a subunit, extend optional processing to all subunits of the current one. This allows gnatstub to supress generation of spurious bodies. From-SVN: r213236
2014-07-30a-cbmutr.adb (Insert_Child): Use local variable First to keep track of the ↵Hristian Kirtchev2-10/+15
initial element's index within... 2014-07-30 Hristian Kirtchev <kirtchev@adacore.com> * a-cbmutr.adb (Insert_Child): Use local variable First to keep track of the initial element's index within the tree. From-SVN: r213235
2014-07-29[multiple changes]Arnaud Charlet3-158/+86
2014-07-29 Hristian Kirtchev <kirtchev@adacore.com> * a-cbmutr.adb (Allocate_Node): Remove the two parameter version. (Insert_Child): Add local variable First. Capture the index of the first node being created to ensure correct cursor construction later on. Use the three parameter version of Allocate_Node when creating multiple children as this method allows aspect Default_Value to take effect (if applicable). 2014-07-29 Eric Botcazou <ebotcazou@adacore.com> * exp_aggr.adb (Safe_Slice_Assignment): Remove. (Expand_Array_Aggregate): For a safe slice assignment, just set the target and use the common code path. From-SVN: r213216
2014-07-29Minor doc update.Arnaud Charlet1-3/+9
From-SVN: r213214
2014-07-29[multiple changes]Arnaud Charlet7-81/+140
2014-07-29 Robert Dewar <dewar@adacore.com> * sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb: Invert predicate No_Predicate_Test_On_Arguments, new name is Predicate_Tests_On_Arguments (with the opposite sense). 2014-07-29 Hristian Kirtchev <kirtchev@adacore.com> * sem_attr.adb (Resolve_Attribute): Clean up the code for attribute 'Access. Do not generate an elaboration flag for a stand alone expression function. The expression of an expression function is now frozen when the expression function appears as the prefix of attribute 'Access. * sem_ch6.adb (Analyze_Expression_Function): Remove local variable New_Decl and update all references to it after the rewriting has taken place. Establish the linkages between the generated spec and body. From-SVN: r213212
2014-07-29[multiple changes]Arnaud Charlet9-26/+77
2014-07-29 Robert Dewar <dewar@adacore.com> * sem_prag.adb (ip, rv): Prevent from being optimized away. * gnatls.adb (gnatls): Set E_Fatal exit status if ali file not found. * s-imgllb.adb, s-imgllw.adb, s-imgwiu.adb, s-imgbiu.adb: Minor reformatting. 2014-07-29 Vincent Celier <celier@adacore.com> * prj-pp.adb: Minor comment update. * frontend.adb: If a target dependency info file has been read through switch -gnateT= add it to the dependencies of the source being compiled. From-SVN: r213211
2014-07-29[multiple changes]Arnaud Charlet4-52/+72
2014-07-29 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, prj.adb: Minor reformatting. 2014-07-29 Vincent Celier <celier@adacore.com> * prj-pp.adb (Pretty_Print.Output_Project_File): New procedure to output project file names between quotes without concatenation, even if the line is too long. (Pretty_Print): Use Output_Project_File for project being extended and project imported. From-SVN: r213210
2014-07-29[multiple changes]Arnaud Charlet10-56/+174
2014-07-29 Vincent Celier <celier@adacore.com> * gnat_ugn.texi: Document that configuration pragmas files are added to the dependencies, unless they contain only pragmas Source_File_Name_Project. 2014-07-29 Robert Dewar <dewar@adacore.com> * frontend.adb: Minor reformatting. 2014-07-29 Robert Dewar <dewar@adacore.com> * exp_ch6.adb (Add_Call_By_Copy_Code): Minor reformatting (Expand_Actuals): Make sure predicate checks are properly applied for the case of OUT or IN OUT parameters. * sem_res.adb: Minor reformatting (Resolve_Actuals): Skip predicate tests on arguments for Finalize * sem_util.adb (No_Predicate_Test_On_Arguments): Returns True if predicate tests on subprogram arguments should be skipped. * sem_util.ads (No_Predicate_Test_On_Arguments): New function 2014-07-29 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): If there is an address clause for the object and the expression is an aggregate, defer resolution and expansion of the aggregate until the freeze point of the entity. * sem_aggr.adb (Resolve_Aggregate): An others_clause is legal if the parent node is an N_Reference generated during expansion. 2014-07-29 Vincent Celier <celier@adacore.com> * prj.adb (Add_To_Buffer): Effectively double the size of the buffer. From-SVN: r213209
2014-07-29frontend.adb, [...]: Minor reformatting and code clean up.Robert Dewar7-52/+109
2014-07-29 Robert Dewar <dewar@adacore.com> * frontend.adb, inline.adb, sem_util.adb, sem_res.adb, prepcomp.ads: Minor reformatting and code clean up. * exp_ch6.adb (Expand_Actuals): Generate predicate test unconditionally for case of OUT or IN OUT actual (before this was generated only for certain subcases, which is wrong, the test is always needed). From-SVN: r213208
2014-07-29sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util.Ed Schonberg7-36/+122
2014-07-29 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util. * sem_ch4.adb (Analyze_Allocator): Defer resolution of expression until context type is available. * sem_res.adb (Resolve_Allocator): In the case of a qualified expression, complete resolution of expression. (Check_Aliased_Parameter): New procedure within Resolve_Actuals, to apply Ada2012 checks on aliased formals, as well as accesibility checks when the context of the call is an allocator or a qualified expression. * sem_util.ads, sem_util.adb (Has_Defaulted_Discriminants): Moved here from sem_ch3. (Object_Access_Level): Handle properly aliased formals and aggregates. * exp_ch6.adb (Expand_Call): Remove check on aliased parameters, now properly performed in sem_res (Resolve_Actuals, Check_Aliased_Parameter). From-SVN: r213206
2014-07-292014-07-29 Yannick Moy <moy@adacore.com>Yannick Moy9-28/+240
* debug.adb Enable GNATprove inlining under debug flag -gnatdQ for now. * inline.ads, inline.adb (Can_Be_Inlined_In_GNATprove_Mode): New function to decide when a subprogram can be inlined in GNATprove mode. (Check_And_Build_Body_To_Inline): Include GNATprove_Mode as a condition for possible inlining. * sem_ch10.adb (Analyze_Compilation_Unit): Remove special case for Inline_Always in GNATprove mode. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build inlined body for subprograms in GNATprove mode, under debug flag -gnatdQ. * sem_prag.adb Minor change in comments. * sem_res.adb (Resolve_Call): Only perform GNATprove inlining inside subprograms marked as SPARK_Mode On. * sinfo.ads: Minor typo fix. From-SVN: r213205
2014-07-29[multiple changes]Arnaud Charlet5-11/+53
2014-07-29 Vincent Celier <celier@adacore.com> * frontend.adb: Add dependency on gnat.adc when taken into account and on non-temporary configuration pragmas files specified in switches -gnatec. * prepcomp.ads, prepcomp.adb (Add_Dependency): New procedure to add dependencies on configuration pragmas files. 2014-07-29 Pat Rogers <rogers@adacore.com> * gnat_ugn.texi: Minor clarification to the explanation for the GNATtest -v switch. From-SVN: r213204
2014-07-29types.ads (Mechanism_Type): Change range back to -18 ..Robert Dewar2-2/+14
* types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with documentation that explains the need for this extended range (use by C_Pass_By_Copy). From-SVN: r213203
2014-07-29Remove duplicate entry.Arnaud Charlet1-9/+0
From-SVN: r213202
2014-07-29[multiple changes]Arnaud Charlet7-20/+83
2014-07-29 Robert Dewar <dewar@adacore.com> * gnat_rm.texi, sem_prag.adb: Minor reformatting. 2014-07-29 Sergey Rybin <rybin@adacore.com frybin> * gnat_ugn.texi: gnatmetric: clarify documentation for cyclomatic complexity metrics. 2014-07-29 Thomas Quinot <quinot@adacore.com> PR ada/60652 * s-oscons-tmplt.c: For Linux, define _BSD_SOURCE in order for CRTSCTS to be visible. 2014-07-29 Bob Duff <duff@adacore.com> * g-trasym.adb, g-trasym.ads: Code cleanup. From-SVN: r213201
2014-07-29sigtramp-vxworks.c: Minor reformatting.Doug Rupp2-1/+5
2014-07-29 Doug Rupp <rupp@adacore.com> * sigtramp-vxworks.c: Minor reformatting. From-SVN: r213200
2014-07-29[multiple changes]Arnaud Charlet6-399/+244
2014-07-29 Ed Schonberg <schonberg@adacore.com> * gnat_rm.texi: No doc needed for Ada2012 aspect Implicit_dereference. 2014-07-29 Robert Dewar <dewar@adacore.com> * sem_attr.adb (Attribute_12): New array (Analyze_Attribute): Check impl-defined Ada 2012 attributes. (Check_Ada_2012_Attribute): Removed. 2014-07-29 Doug Rupp <rupp@adacore.com> * init.c (vxworks6): Call sigtramp for RTP (as well as DKM) for ARM, PPC, and e500. * sigtramp-vxworks.c: New file. * sigtramp-armvxw.c, sigtramp-ppcvxw.c: removed files. From-SVN: r213199
2014-07-29lib-xref.adb (Output_Refs, [...]): For a derived array type...Ed Schonberg3-28/+42
2014-07-29 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb (Output_Refs, Check_Type_Reference): For a derived array type, add information about component type, which was previously missing in ali file. * gnat_rm.texi: Add documentation for Atomic_Always_Lock_Free. From-SVN: r213198
2014-07-29[multiple changes]Arnaud Charlet4-43/+74
2014-07-29 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb (Constrain_Corresponding_Record): For the case of the subtype created for a record component, do not mark the subtype as frozen. For one thing, this is anomalous (in particular, the base type might not itself be frozen yet); furthermore, proper freezing of the subtype must happen in any case. So, we just mark the subtype as requiring delayed freezing (and we'll actually freeze it when generating the init_proc of the enclosing record). Also change the name of the constrained record subtype (append a 'C' so that it is clearly different from the unconstrained record type, "related_idV") to make debugging easier. (Process_Full_View): When creating a full subtype for a pending private subtype, re-establish the scope of the private subtype so that we get proper visibility on outer discriminants. * exp_ch3.adb (Build_Init_Statements): Freeze any component subtype that is not frozen yet. 2014-07-29 Vincent Celier <celier@adacore.com> * prj-proc.adb (Recursive_Process): Always initialize the environment when the project is an aggregate project, even when it is not the root tree. From-SVN: r213197
2014-07-29exp_ch5.adb, [...]: Minor comment additions.Robert Dewar5-4/+30
2014-07-29 Robert Dewar <dewar@adacore.com> * exp_ch5.adb, exp_ch9.adb: Minor comment additions. * gnat_rm.texi: Complete list of implementation aspects. * aspects.ads: Minor comment clarification. From-SVN: r213196
2014-07-29[multiple changes]Arnaud Charlet9-55/+105
2014-07-29 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): If the target type is a null-excluding access type, do not generate a constraint check if Suppress_Assignment_Checks is set on assignment node. * exp_ch9.adb (Build_Simple_Entry_Call): If actual is an out parameter of a null-excluding access type, there is access check on entry, so set Suppress_Assignment_Checks on generated statement that assigns actual to parameter block. * sinfo.ads: Document additional use of Suppress_Assignment_Checks. 2014-07-29 Javier Miranda <miranda@adacore.com> * types.ads (Kind): Renamed as Rkind to avoid crashing ASIS. * exp_ch11.adb, tbuild.adb Update references to Types.Kind 2014-07-29 Ed Schonberg <schonberg@adacore.com> * par-ch3.adb (P_Type_Declaration): Create end label for limited record declaration, previously omitted. 2014-07-29 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Complete list of implementation pragmas Add dummy sections for impl pragmas needing documentation. From-SVN: r213195
2014-07-29[multiple changes]Arnaud Charlet11-142/+207
2014-07-29 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Change theta to @ in documentation of aspect Dimension_System. 2014-07-29 Robert Dewar <dewar@adacore.com> * sem_attr.adb (Uneval_Old_Msg): Flags Uneval_Old_Accept/Warn are now on pragma. * sem_ch13.adb (Analyze_Aspect_Specifications): Remove setting of Uneval_Old_* * sem_prag.adb (Analyze_Pragma): Set Uneval_Old_* flags * sinfo.ads, sinfo.adb: Move Uneval_Old_Accept/Warn to N_Pragma node. 2014-07-29 Javier Miranda <miranda@adacore.com> * types.ads Update documentation on how to add new reason codes for exceptions. (RT_Exception_Code): Keep values ordered by their reason code. Required by the .NET backend. (RT_CE_Exceptions): Subtype declaration removed. (RT_PE_Exceptions): Subtype declaration removed. (RT_SE_Exceptions): Subtype declaration removed. (Kind): New mapping table of RT_Exception_Codes. * exp_ch11.adb (Get_RT_Exception_Entity): Updated to use the new mapping table. * tbuild.adb (Make_Raise_Storage_Error): Updated to use the new mapping table. (Make_Raise_Program_Error): Updated to use the new mapping table. (Make_Raise_Storage_Error): Updated to use the new mapping table. * a-except.adb Keep Rcheck_CE_xxx entities ordered according to their reason code. From-SVN: r213194
2014-07-29[multiple changes]Arnaud Charlet4-12/+44
2014-07-29 Thomas Quinot <quinot@adacore.com> * gnat_rm.texi: Document internal attributes used for PolyORB/DSA distributed stubs generation. * exp_ch3.adb: Minor reformatting. 2014-07-29 Yannick Moy <moy@adacore.com> * sinfo.ads: Document constraint between frontend and GNATprove. From-SVN: r213193