aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/checks.adb
AgeCommit message (Collapse)AuthorFilesLines
2016-04-18[multiple changes]Arnaud Charlet1-14/+16
2016-04-18 Arnaud Charlet <charlet@adacore.com> * 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 <moy@adacore.com> * 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 <moy@adacore.com> * 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. From-SVN: r235138
2015-11-25[multiple changes]Arnaud Charlet1-5/+6
2015-11-25 Bob Duff <duff@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): Code clean ups. 2015-11-25 Eric Botcazou <ebotcazou@adacore.com> * sem_util.ads (Has_Compatible_Alignment): Add Layout_Done parameter. * sem_util.adb (Has_Compatible_Alignment): Likewise. (Has_Compatible_Alignment_Internal): Likewise. Do not set the result to Unknown for packed types if Layout_Done is true. * checks.adb (Apply_Address_Clause_Check): Adjust call and pass False to Has_Compatible_Alignment. * sem_ch13.adb (Validate_Address_Clauses): Likewise but pass True. From-SVN: r230877
2015-11-24sem_ch3.adb, [...]: Minor reformatting, rewording, and typo corrections.Gary Dismukes1-2/+2
2015-11-24 Gary Dismukes <dismukes@adacore.com> * sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb, sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor reformatting, rewording, and typo corrections. From-SVN: r230794
2015-11-18[multiple changes]Arnaud Charlet1-4/+4
2015-11-18 Nicolas Roche <roche@adacore.com> * sysdep.c (__gnat_localtime_tzoff): On Windows platform GetTimeZoneInformation function is thread-safe. Thus there is no need to lock the runtime in the implementation of __gnat_localtime_tzoff on that platform. 2015-11-18 Eric Botcazou <ebotcazou@adacore.com> * s-arit64.adb (To_Neg_Int): Add a special case for 2**63 input. 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> * contracts.adb (Analyze_Contracts): New routine. (Analyze_Enclosing_Package_Body_Contract): Removed. (Analyze_Entry_Or_Subprogram_Contract): Add formal parameter Freeze_Id. Propagate the entity of the freezing body to vaious analysis routines. (Analyze_Initial_Declaration_Contract): Removed. (Analyze_Object_Contract): Add formal parameter Freeze_Id. Propagate the entity of the freezing body to vaious analysis routines. (Analyze_Previous_Contracts): New routine. * contracts.ads (Analyze_Enclosing_Package_Body_Contract): Removed. (Analyze_Contracts): New routine. (Analyze_Entry_Or_Subprogram_Contract): Add formal parameter Freeze_Id and update the comment on usage. (Analyze_Initial_Declaration_Contract): Removed. (Analyze_Object_Contract): Add formal parameter Freeze_Id and update the comment on usage. (Analyze_Previous_Contracts): New routine. * sem_ch3.adb (Analyze_Declarations): Use Analyze_Contracts to analyze all contracts of eligible constructs. * sem_ch6.adb (Analyze_Generic_Subprogram_Body): A body no longer freezes the contract of its initial declaration. This effect is achieved through different means. (Analyze_Subprogram_Body_Helper): A body now freezes the contracts of all eligible constructs that precede it. A body no longer freezes the contract of its initial declaration. This effect is achieved through different means. * sem_ch7.adb (Analyze_Package_Body_Helper): A body now freezes the contracts of all eligible constructs that precede it. A body no longer freezes the contract of its initial declaration. This effect is achieved through different means. * sem_ch9.adb (Analyze_Entry_Body): A body now freezes the contracts of all eligible constructs that precede it. A body no longer freezes the contract of its initial declaration. This effect is achieved through different means. (Analyze_Protected_Body): A body now freezes the contracts of all eligible constructs that precede it. A body no longer freezes the contract of its initial declaration. This effect is achieved through different means. (Analyze_Task_Body): A body now freezes the contracts of all eligible constructs that precede it. A body no longer freezes the contract of its initial declaration. This effect is achieved through different means. * sem_prag.adb (Add_Item_To_Name_Buffer): Single protected/task objects now output their respective current instance of xxx type messages. (Analyze_Contract_Cases_In_Decl_Part): Add formal parameter Freeze_Id. Emit a clarification message when an undefined entity may the byproduct of contract freezing. (Analyze_Part_Of_In_Decl_Part): Add formal parameter Freeze_Id. Emit a clarification message when an undefined entity may the byproduct of contract freezing. (Analyze_Pre_Post_Condition_In_Decl_Part): Add formal parameter Freeze_Id. Emit a clarification message when an undefined entity may the byproduct of contract freezing. (Analyze_Refined_State_In_Decl_Part): Do not report unused body states as constituents of single protected/task types may not bave been identified yet. (Collect_Subprogram_Inputs_Outputs): Reimplemented. (Contract_Freeze_Error): New routine. (Process_Overloadable): Use predicate Is_Single_Task_Object. * sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part): Add formal parameter Freeze_Id and update the comment on usage. (Analyze_Part_Of_In_Decl_Part): Add formal parameter Freeze_Id and update the comment on usage. (Analyze_Pre_Post_Condition_In_Decl_Part): Add formal parameter Freeze_Id and update the comment on usage. * sem_util.adb (Check_Unused_Body_States): Remove global variable Legal_Constits. The routine now reports unused body states regardless of whether constituents are legal or not. (Collect_Body_States): A constituent of a single protected/task type is not a visible state of a package body. (Collect_Visible_States): A constituent of a single protected/task type is not a visible state of a package body. (Has_Undefined_Reference): New routine. (Is_Single_Concurrent_Object): Reimplemented. (Is_Single_Protected_Object): New routine. (Is_Single_Task_Object): New routine. (Is_Visible_Object): New routine. (Report_Unused_Body_States): Moved to Check_Unused_Body_States. * sem_util.ads (Check_Unused_Body_States): Update the comment on usage. (Has_Undefined_Reference): New routine. (Is_Single_Protected_Object): New routine. (Is_Single_Task_Object): New routine. (Report_Unused_Body_States): Moved to Check_Unused_Body_States. 2015-11-18 Pierre-Marie de Rodat <derodat@adacore.com> * Makefile.rtl, impunit.adb: Add g-strhas.ads. * g-strhas.ads: New file. * s-strhas.ads: Add a comment to redirect users to g-strhas.ads. 2015-11-18 Bob Duff <duff@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): Fix the case where the call in question is to a renaming of a subprogram that can be safely called without ABE. * checks.adb: Minor edits. From-SVN: r230546
2015-11-18[multiple changes]Arnaud Charlet1-2/+13
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> * atree.adb (Elist11): New routine. (Set_Elist11): New routine. * atree.ads (Elist11): New routine. (Set_Elist11): New routine. * atree.h: Define Elist11. * contracts.adb (Analyze_Object_Contract): Verify the legality of all references to a variable given that the variable is a constituent of a single protected/task type. * einfo.adb: Part_Of_References now utilizes Elist11. (Part_Of_References): New routine. (Set_Part_Of_References): New routine. (Write_Field11_Name): Add output for Part_Of_References. * einfo.ads New attribute Part_Of_References along with usage in entities. (Part_Of_References): New routine along with pragma Inline. (Set_Part_Of_References): New routine along with pragma Inline. * sem_prag.adb (Analyze_Constituent): Record a possible reference to a concurrent constituent. (Analyze_Global_Item): Record a possible reference to a concurrent constituent. (Analyze_Input_Output): Record a possible reference to a concurrent constituent. * sem_res.adb (Resolve_Entity_Name): Record a possible reference to a concurrent constituent. * sem_util.adb (Check_Part_Of_Reference): New routine. (Record_Possible_Part_Of_Reference): New routine. * sem_util.ads (Check_Part_Of_Reference): New routine. (Record_Possible_Part_Of_Reference): New routine. 2015-11-18 Ed Schonberg <schonberg@adacore.com> * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): An if_expression is the proper place to apply the overflow minimization procedure if its context is not an enclosing arithmetic expression. From-SVN: r230540
2015-11-18[multiple changes]Arnaud Charlet1-2/+12
2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb (Has_Full_Default_Initialization): Perform the test for the presence of pragma Default_Initial_Condition prior to the specialized type checks. Add a missing case where the lack of a pragma argument yields full default initialization. 2015-11-18 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Resolve_Entity_Name): Do not check for elaboration issues when a variable appears as the name of an object renaming declaration as this constitutes an aliasing, not a read. 2015-11-18 Ed Schonberg <schonberg@adacore.com> * checks.adb (Overlap_Check): An actual that is an aggregate cannot overlap with another actual, and no check should be generated for it. * targparm.ads: Fix typos. 2015-11-18 Pascal Obry <obry@adacore.com> * adaint.c: Routine __gnat_killprocesstree only implemented on Linux and Windows. 2015-11-18 Pascal Obry <obry@adacore.com> * g-ctrl_c.adb: Minor style fixes. From-SVN: r230523
2015-11-12[multiple changes]Arnaud Charlet1-1/+25
2015-11-12 Bob Duff <duff@adacore.com> * impunit.adb, lib-xref.ads, restrict.ads, scos.ads, sem_attr.ads, types.ads: Get rid of some global variables. * output.adb, output.ads: Move some global variables to the body. 2015-11-12 Yannick Moy <moy@adacore.com> * lib-xref-spark_specific.adb (Is_Constant_Object_Without_Variable_Input): Add special case for imported constants. 2015-11-12 Philippe Gil <gil@adacore.com> * g-debpoo.adb (Allocate): Avoid having allocations not handled. 2015-11-12 Ed Schonberg <schonberg@adacore.com> * checks.adb (Apply_Scalar_Range_Check): If the expression is a real literal and the context type has static bounds, remove range check when possible. 2015-11-12 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Collect_Primitive_Operations): If the type is derived from a type declared elsewhere that has an incomplete type declaration, the primitives are found in the scope of the type nat that of its ancestor. 2015-11-12 Arnaud Charlet <charlet@adacore.com> * switch-c.adb, debug.adb, osint-c.adb, gnat1drv.adb: Remove -gnatd.V debug switch. * exp_aggr.adb, exp_util.adb: Fix typos. 2015-11-12 Jerome Lambourg <lambourg@adacore.com> * init.c: Properly adjust PC values in case of signals. 2015-11-12 Bob Duff <duff@adacore.com> * sem_prag.adb (Check_Arg_Is_Library_Level_Local_Name): A pragma that comes from an aspect does not "come from source", so we need to test whether it comes from an aspect. From-SVN: r230253
2015-11-12[multiple changes]Arnaud Charlet1-1/+1
2015-11-12 Arnaud Charlet <charlet@adacore.com> * back_end.adb, opt.ads (Debugger_Level): Update comment. (Scan_Back_End_Switches): Set Debugger_Level. 2015-11-12 Bob Duff <duff@adacore.com> * fmap.adb, debug.ads, checks.adb, exp_ch11.adb: Minor edits. 2015-11-12 Doug Rupp <rupp@adacore.com> * s-stchop-vxworks.adb (Stack_Limit): Export vice Import. 2015-11-12 Gary Dismukes <dismukes@adacore.com> * sem_dim.adb: Minor reformatting. From-SVN: r230246
2015-10-20[multiple changes]Arnaud Charlet1-1/+1
2015-10-20 Bob Duff <duff@adacore.com> * s-mudido-affinity.adb (Create): Correct subranges of slices of CPU arrays. 2015-10-20 Arnaud Charlet <charlet@adacore.com> * sinfo.ads, g-pehage.adb, par-ch12.adb, layout.adb, exp_util.adb, sem_aux.adb, make.adb, checks.adb, sem_ch12.adb, sem_res.adb, sem_attr.adb, a-ngelfu.adb, sem_ch4.adb, switch-b.adb, sem_ch6.adb, prj-dect.adb, gnatxref.adb, sem_ch13.adb, lib-xref.adb: Fix typos. 2015-10-20 Tristan Gingold <gingold@adacore.com> * exp_ch4.adb (Expand_Array_Comparison): Use generic code if runtime routine is not available. From-SVN: r229071
2015-10-16checks.adb: Fix typo.Arnaud Charlet1-1/+1
2015-10-16 Arnaud Charlet <charlet@adacore.com> * checks.adb: Fix typo. * s-osinte-linux.ads: Add header. * projects.texi: Removed, no longer used. * s-multip.adb: Minor: fix header. * sem_ch3.adb, exp_ch7.adb, g-dirope.ads, sinfo.ads, types.ads, a-textio.adb, s-exctra.adb, ali.adb, back_end.ads, exp_intr.adb, a-tigeli.adb, exp_ch3.adb, s-os_lib.ads: Remove further references to .NET. * gnatlink.adb, opt.ads, exp_aggr.adb, s-solita.adb: Minor comment updates. From-SVN: r228880
2015-10-16exp_ch5.adb, [...]: Code clean up: remove special handling for .NET and JVM.Arnaud Charlet1-10/+0
2015-10-16 Arnaud Charlet <charlet@adacore.com> * exp_ch5.adb, sem_ch3.adb, frontend.adb, exp_ch7.adb, exp_ch7.ads, sem_ch5.adb, sem_type.adb, exp_util.adb, exp_util.ads, comperr.adb, exp_attr.adb, sinfo.ads, exp_ch9.adb, make.adb, usage.adb, lib-writ.adb, sem_ch9.adb, bindgen.adb, debug.adb, einfo.adb, einfo.ads, types.ads, checks.adb, sem_prag.adb, s-tasini.adb, rtsfind.ads, freeze.adb, sem_util.adb, sem_util.ads, exp_dbug.adb, gnatlink.adb, gnat1drv.adb, targparm.adb, targparm.ads, exp_ch4.adb, exp_ch11.adb, repinfo.adb, s-soflin.adb, s-soflin.ads, exp_ch6.adb, exp_ch13.adb, sem_mech.adb, sem_ch6.adb, par-prag.adb, exp_disp.adb, sem_ch8.adb, exp_disp.ads, snames.adb-tmpl, exp_aggr.adb, sem_eval.adb, exp_intr.adb, sem_ch13.adb, snames.ads-tmpl, sem_disp.adb, exp_ch3.adb: Code clean up: remove special handling for .NET and JVM. From-SVN: r228874
2015-05-12sem_ch9.adb, [...]: Minor reformatting.Robert Dewar1-6/+6
2015-05-12 Robert Dewar <dewar@adacore.com> * sem_ch9.adb, einfo.ads, exp_intr.adb: Minor reformatting. * sem_disp.adb: Minor code reorganization (remove junk redundant null statement). * exp_unst.adb (Unnest_Subprogram.Uplev_Refs): Ignore uplevel references to bounds of types coming from original type reference. * checks.ads: Minor reformatting. * checks.adb: Minor reformatting. * sem_prag.adb (Analyze_Pragma, case Check): If in ignored assertion, then make sure we do not drag in bignum stuff. From-SVN: r223053
2015-03-02[multiple changes]Arnaud Charlet1-1/+1
2015-03-02 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor reformatting. 2015-03-02 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb: extend use of Available_Subtype. 2015-03-02 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Duplication_Error): Remove the special handling of 'Class or _Class in the context of pre/postconditions. (Process_Class_Wide_Condition): Remove the special handling of 'Class or _Class in the context of pre/postconditions. * sem_util.adb (Original_Aspect_Pragma_Name): Names Pre_Class and Post_Class no longer need to be converted to _Pre and _Post. * sem_util.ads (Original_Aspect_Pragma_Name): Update the comment on usage. 2015-03-02 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Process_Preconditions): Modify the mechanism that find the first source declaration to correct exit the loop once it has been found. 2015-03-02 Gary Dismukes <dismukes@adacore.com> * a-strsea.adb: Minor typo fix. 2015-03-02 Bob Duff <duff@adacore.com> * einfo.ads: Minor comment fixes. From-SVN: r221103
2015-03-02[multiple changes]Arnaud Charlet1-1/+1
2015-03-02 Gary Dismukes <dismukes@adacore.com> * einfo.adb, checks.adb: Minor reformatting and typo fixes. 2015-03-02 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Get_Assoc_Expr): If the Default_Component_Value is defined for the array type, use it instead of a Default_Value specified for the component type itself. From-SVN: r221102
2015-03-02[multiple changes]Arnaud Charlet1-76/+76
2015-03-02 Thomas Quinot <quinot@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference, case Input): When expanding a 'Input attribute reference for a class-wide type, do not generate a separate object declaration for the controlling tag dummy object; instead, generate the expression inline in the dispatching call. Otherwise, the declaration (which involves a call to String'Input, returning a dynamically sized value on the secondary stack) will be expanded outside of proper secondary stack mark/release operations, and will thus cause a secondary stack leak. 2015-03-02 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Add_Validity_Check): Change the names of all formal parameters to better illustrate their purpose. Update the subprogram documentation. Update all occurrences of the formal parameters. Generate a pre/postcondition pragma by calling Build_Pre_Post_Condition. (Build_PPC_Pragma): Removed. (Build_Pre_Post_Condition): New routine. * einfo.adb Node8 is no longer used as Postcondition_Proc. Node14 is now used as Postconditions_Proc. Flag240 is now renamed to Has_Expanded_Contract. (First_Formal): The routine can now operate on generic subprograms. (First_Formal_With_Extras): The routine can now operate on generic subprograms. (Has_Expanded_Contract): New routine. (Has_Postconditions): Removed. (Postcondition_Proc): Removed. (Postconditions_Proc): New routine. (Set_Has_Expanded_Contract): New routine. (Set_Has_Postconditions): Removed. (Set_Postcondition_Proc): Removed. (Set_Postconditions_Proc): New routine. (Write_Entity_Flags): Remove the output of Has_Postconditions. Add the output of Has_Expanded_Contract. (Write_Field8_Name): Remove the output of Postcondition_Proc. (Write_Field14_Name): Add the output of Postconditions_Proc. * einfo.ads New attributes Has_Expanded_Contract and Postconditions_Proc along with occurrences in entities. Remove attributes Has_Postconditions and Postcondition_Proc along with occurrences in entities. (Has_Expanded_Contract): New routine along with pragma Inline. (Has_Postconditions): Removed along with pragma Inline. (Postcondition_Proc): Removed along with pragma Inline. (Postconditions_Proc): New routine along with pragma Inline. (Set_Has_Expanded_Contract): New routine along with pragma Inline. (Set_Has_Postconditions): Removed along with pragma Inline. (Set_Postcondition_Proc): Removed along with pragma Inline. (Set_Postconditions_Proc): New routine along with pragma Inline. * exp_ch6.adb (Add_Return): Code cleanup. Update the generation of the call to the _Postconditions routine of the procedure. (Expand_Non_Function_Return): Reformat the comment on usage. Code cleanup. Update the generation of the call to the _Postconditions routine of the procedure or entry [family]. (Expand_Simple_Function_Return): Update the generation of the _Postconditions routine of the function. (Expand_Subprogram_Contract): Reimplemented. * exp_ch6.ads (Expand_Subprogram_Contract): Update the parameter profile along the comment on usage. * exp_ch9.adb (Build_PPC_Wrapper): Code cleanup. (Expand_N_Task_Type_Declaration): Generate pre/postconditions wrapper when the entry [family] has a contract with pre/postconditions. * exp_prag.adb (Expand_Attributes_In_Consequence): New routine. (Expand_Contract_Cases): This routine and its subsidiaries now analyze all generated code. (Expand_Old_In_Consequence): Removed. * sem_attr.adb Add with and use clause for Sem_Prag. (Analyze_Attribute): Reimplment the analysis of attribute 'Result. (Check_Use_In_Test_Case): Use routine Test_Case_Arg to obtain "Ensures". * sem_ch3.adb (Analyze_Declarations): Analyze the contract of a generic subprogram. (Analyze_Object_Declaration): Do not create a contract node. (Derive_Subprogram): Do not create a contract node. * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Do not create a contract node. (Analyze_Completion_Contract): New routine. (Analyze_Function_Return): Alphabetize. (Analyze_Generic_Subprogram_Body): Alphabetize. Do not create a contract node. Do not copy pre/postconditions to the original generic template. (Analyze_Null_Procedure): Do not create a contract node. (Analyze_Subprogram_Body_Contract): Reimplemented. (Analyze_Subprogram_Body_Helper): Do not mark the enclosing scope as having postconditions. Do not create a contract node. Analyze the subprogram body contract of a body that acts as a compilation unit. Expand the subprogram contract after the declarations have been analyzed. (Analyze_Subprogram_Contract): Reimplemented. (Analyze_Subprogram_Specification): Do not create a contract node. (List_Inherited_Pre_Post_Aspects): Code cleanup. * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Update the comment on usage. (Analyze_Subprogram_Contract): Update the parameter profile and the comment on usage. * sem_ch7.adb (Analyze_Package_Body_Helper): Do not create a contract node. (Analyze_Package_Declaration): Do not create a contract node. (Is_Subp_Or_Const_Ref): Ensure that the prefix has an entity. * sem_ch8.adb (Analyze_Subprogram_Renaming): Do not create a contract node. * sem_ch9.adb (Analyze_Entry_Declaration): Do not create a contract node. * sem_ch10.adb (Analyze_Compilation_Unit): Move local variables to their proper section and alphabetize them. Analyze the contract of a [generic] subprogram after all Pragmas_After have been analyzed. (Analyze_Subprogram_Body_Stub_Contract): Alphabetize. * sem_ch12.adb (Analyze_Generic_Package_Declaration): Do not create a contract node. (Analyze_Generic_Subprogram_Declaration): Alphabetize local variables. Do not create a contract node. Do not generate aspects out of pragmas for ASIS. (Analyze_Subprogram_Instantiation): Instantiate the contract of the subprogram. Do not create a contract node. (Instantiate_Contract): New routine. (Instantiate_Subprogram_Body): Alphabetize local variables. (Save_Global_References_In_Aspects): New routine. (Save_References): Do not save the global references found within the aspects of a generic subprogram. * sem_ch12.ads (Save_Global_References_In_Aspects): New routine. * sem_ch13.adb (Analyze_Aspect_Specifications): Do not use Original_Node for establishing linkages. (Insert_Pragma): Insertion in a subprogram body takes precedence over the case where the subprogram body is also a compilation unit. * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Use Get_Argument to obtain the proper expression. Install the generic formals when the related context is a generic subprogram. (Analyze_Depends_In_Decl_Part): Use Get_Argument to obtain the proper expression. Use Corresponding_Spec_Of to obtain the spec. Install the generic formal when the related context is a generic subprogram. (Analyze_Global_In_Decl_Part): Use Get_Argument to obtain the proper expression. Use Corresponding_Spec_Of to obtain the spec. Install the generic formal when the related context is a generic subprogram. (Analyze_Initial_Condition_In_Decl_Part): Use Get_Argument to obtain the proper expression. Remove the call to Check_SPARK_Aspect_For_ASIS as the analysis is now done automatically. (Analyze_Pragma): Update all occurrences to Original_Aspect_Name. Pragmas Contract_Cases, Depends, Extensions_Visible, Global, Postcondition, Precondition and Test_Case now carry generic templates when the related context is a generic subprogram. The same pragmas are no longer forcefully fully analyzed when the context is a subprogram that acts as a compilation unit. Pragmas Abstract_State, Initial_Condition, Initializes and Refined_State have been clean up. Pragmas Post, Post_Class, Postcondition, Pre, Pre_Class and Precondition now use the same routine for analysis. Pragma Refined_Post does not need to check the use of 'Result or the lack of a post-state in its expression. Reimplement the analysis of pragma Test_Case. (Analyze_Pre_Post_Condition): New routine. (Analyze_Pre_Post_Condition_In_Decl_Part): Reimplemented. (Analyze_Refined_Depends_In_Decl_Part): Use Get_Argument to obtain the proper expression. (Analyze_Refined_Global_In_Decl_Part): Use Get_Argument to obtain the proper expression. (Analyze_Test_Case_In_Decl_Part): Reimplemented. (Check_Pre_Post): Removed. (Check_Precondition_Postcondition): Removed. (Check_SPARK_Aspect_For_ASIS): Removed. (Check_Test_Case): Removed. (Collect_Subprogram_Inputs_Outputs): Use Get_Argument to obtain the proper expression. Use Corresponding_Spec_Of to find the proper spec. (Create_Generic_Template): New routine. (Duplication_Error): New routine. (Expression_Function_Error): New routine. (Find_Related_Subprogram_Or_Body): Moved to the spec of Sem_Prag. Emit precise error messages. Account for cases of rewritten expression functions, generic instantiations, handled sequence of statements and pragmas from aspects. (Get_Argument): New routine. (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed. (Preanalyze_CTC_Args): Removed. (Process_Class_Wide_Condition): New routine. * sem_prag.ads (Analyze_Test_Case_In_Decl_Part): Update the parameter profile along with the comment on usage. (Find_Related_Subprogram_Or_Body): Moved from the body of Sem_Prag. (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed. (Test_Case_Arg): New routine. * sem_util.adb Add with and use clauses for Sem_Ch6. (Add_Contract_Item): This routine now creates a contract node the first time an item is added. Remove the duplicate aspect/pragma checks. (Check_Result_And_Post_State): Reimplemented. (Corresponding_Spec_Of): New routine. (Get_Ensures_From_CTC_Pragma): Removed. (Get_Requires_From_CTC_Pragma): Removed. (Has_Significant_Contract): New routine. (Inherit_Subprogram_Contract): Inherit only if the source has a contract. (Install_Generic_Formals): New routine. (Original_Aspect_Name): Removed. (Original_Aspect_Pragma_Name): New routine. * sem_util.ads (Check_Result_And_Post_State): Reimplemented. (Corresponding_Spec_Of): New routine. (Get_Ensures_From_CTC_Pragma): Removed. (Get_Requires_From_CTC_Pragma): Removed. (Has_Significant_Contract): New routine. (Install_Generic_Formals): New routine. (Original_Aspect_Name): Removed. (Original_Aspect_Pragma_Name): New routine. * sem_warn.adb Add with and use clauses for Sem_Prag. (Within_Postcondition): Use Test_Case_Arg to extract "Ensures". From-SVN: r221101
2015-02-05015-02-05 Robert Dewar <dewar@adacore.com>Arnaud Charlet1-4/+8
* sem_ch13.adb (Add_Invariants): Don't assume invariant is standard Boolean. * sem_prag.adb (Analyze_Pragma, case Check): Don't assume condition is standard Boolean, it can be non-standard derived Boolean. 2015-02-05 Robert Dewar <dewar@adacore.com> * checks.adb (Enable_Range_Check): Disconnect attempted optimization for the case of range check for subscript of unconstrained array. 2015-02-05 Robert Dewar <dewar@adacore.com> * par-ch13.adb (With_Present): New function (Aspect_Specifications_Present): Handle WHEN in place of WITH (Get_Aspect_Specifications): Comment update. * par.adb: Comment updates. 2015-02-05 Robert Dewar <dewar@adacore.com> * errout.adb (Handle_Serious_Error): New setting of Fatal_Error. * frontend.adb (Frontend): New setting of Fatal_Error. * lib-load.adb (Create_Dummy_Package_Unit): New setting of Fatal_Error. (Load_Main_Source): New setting of Fatal_Error (Load_Unit): New setting of Fatal_Error. * lib-writ.adb (Add_Preprocessing_Dependency): New setting of Fatal_Error. (Ensure_System_Dependency): New setting of Fatal_Error. * lib.adb (Fatal_Error): New setting of Fatal_Error (Set_Fatal_Error): New setting of Fatal_Error. * lib.ads: New definition of Fatal_Error and associated routines. * par-ch10.adb (P_Compilation_Unit): New setting of Fatal_Error. * par-load.adb (Load): New setting of Fatal_Error. * rtsfind.adb (Load_RTU): New setting of Fatal_Error. * sem_ch10.adb (Analyze_Compilation_Unit): New setting of Fatal_Error. (Optional_Subunit): New setting of Fatal_Error. (Analyze_Proper_Body): New setting of Fatal_Error. (Load_Needed_Body): New setting of Fatal_Error. 2015-02-05 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Call): If the function being called has out parameters do not check for language version if the function comes from a predefined unit, as those are always compiled in Ada 2012 mode. 2015-02-05 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Process_Full_View): Verify that the full view of a type extension must carry an explicit limited keyword if the partial view does (RM 7.3 (10.1)). From-SVN: r220446
2014-11-20[multiple changes]Arnaud Charlet1-1/+15
2014-11-20 Thomas Quinot <quinot@adacore.com> * sem_util.adb: Minor reformatting. 2014-11-20 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect duplicate Linker_Section. 2014-11-20 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb: Add guard for build-in-place boolean op. 2014-11-20 Yannick Moy <moy@adacore.com> * checks.adb (Apply_Scalar_Range_Check): In GNATprove mode, put a range check when an empty range is used, instead of an error message. * sinfo.ads Update comment on GNATprove mode. 2014-11-20 Arnaud Charlet <charlet@adacore.com> * a-stream.ads, s-osinte-linux.ads, a-reatim.ads, a-calend.ads, s-crtl.ads, interfac.ads, s-taskin.ads: Replace uses of 2 ** 63 and 2 ** 64 by references to Long_Long_Integer instead, to allow these units to be analyzed by codepeer or spark when using a target configuration file with long_long_size set to 32. From-SVN: r217840
2014-10-23[multiple changes]Arnaud Charlet1-17/+44
2014-10-23 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Ensure_Valid): Update the subprogram profile. Propagate the contex attributes to Insert_Valid_Check. (Insert_Valid_Check): Update the subprogram profile. Propagate the attributes of the context to Duplicate_Subexpr_No_Checks. (Validity_Check_Range): Update the subprogram profile. Propagate the context attribute to Ensure_Valid. * checks.ads (Ensure_Valid): Update the subprogram profile along with the comment on usage. (Insert_Valid_Check): Update the subprogram profile along with the comment on usage. (Validity_Check_Range): Update the subprogram profile along with the comment on usage. * exp_util.adb (Build_Temporary): New routine. (Duplicate_Subexpr_No_Checks): Update the subprogram profile. Propagate the attributes of the context to Remove_Side_Effects. (Remove_Side_Effects): Update the subprogram profile. Update all calls to Make_Temporary to invoke Build_Temporary. * exp_util.ads (Duplicate_Subexpr_No_Checks): Update the subprogram profile along with the comment on usage. (Remove_Side_Effects): Update the subprogram profile along with the comment on usage. * sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype to the validity check machinery. Explain the reason for this propagation. 2014-10-23 Robert Dewar <dewar@adacore.com> * a-strsea.adb: Minor reformatting. From-SVN: r216581
2014-08-04[multiple changes]Arnaud Charlet1-4/+11
2014-08-04 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Build_CPP_Init_Procedure): Remove Flag_Decl. Do not analyze the declaration of the flag as it is not part of the tree yet, instead add it to the freeze actions of the C++ type. 2014-08-04 Robert Dewar <dewar@adacore.com> * checks.adb (Apply_Scalar_Range_Check): Make sure we handle case of OUT and IN OUT parameter correctly (where Source_Typ is set), we were missing one case where a check must be applied. 2014-08-04 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch8.adb (Build_Class_Wide_Wrapper): Update the comment on the generated code. Instead of hiding the renaming and using the wrapper as the proper association, have the subprogram renaming alias the wrapper. (Build_Spec): The entity of the wrapper is now derived from the entity of the related primitive. 2014-08-04 Emmanuel Briot <briot@adacore.com> * s-regpat.adb: s-regpat.adb (Parse): fix incorrect link when using non-capturing groups. 2014-08-04 Ed Schonberg <schonberg@adacore.com> * inline.adb (Build_Body_To_Inline): Remove Unmodified and related pragmas before copying the original body, to prevent spurious errors when the pragmas apply to formals that will not appear in the inlined body. From-SVN: r213554
2014-08-04[multiple changes]Arnaud Charlet1-16/+35
2014-08-04 Vincent Celier <celier@adacore.com> * prj-dect.adb (Parse_Case_Construction): It is no longer an error if the variable for a case construction is not typed, only if the variable value is not a single string. Call Parse_Choice_List and End_Case_Construction with the new parameter to indicate that the variable is typed. * prj-strt.adb (End_Case_Construction): Only check the labels if the variable is typed. If the variable is not typed, issue a warning when there is no "when others" allternative. (Parse_Choice_List): Manage the labels only if the variable is typed. * prj-strt.ads (End_Case_Construction): New Boolean parameter String_Type. (Parse_Choice_List): Ditto. 2014-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb: Additional fix to Check_Predicate_Use. 2014-08-04 Vincent Celier <celier@adacore.com> * projects.texi: Update documentation of case constructions with variables that are not typed. 2014-08-04 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Build_Class_Wide_Wrapper): If the operator carries an Eliminated pragma, indicate that the wrapper is also to be eliminated, to prevent spurious errors when using gnatelim on programs that include box-initialization of equality operators (consequence of AI05-071).. 2014-08-04 Robert Dewar <dewar@adacore.com> * checks.adb (Activate_Overflow_Check): Handle floating-point case correctly. * checks.ads (Activate_Overflow_Check): Clarify handling of floating-point cases. * exp_util.adb (Check_Float_Op_Overflow): Reset Do_Overflow_Check flag if we generate an explicit overflow check (for Check_Float_Overflow mode). From-SVN: r213550
2014-08-04[multiple changes]Arnaud Charlet1-12/+1
2014-08-04 Arnaud Charlet <charlet@adacore.com> * exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer mode for now, to revert to previous behavior. * checks.adb: Revert previous change, no longer needed. 2014-08-04 Robert Dewar <dewar@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Don't set Check_Float_Overflow if Machine_Oveflows_On_Target is True. * sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't set Check_Float_Overflow if Machine_Oveflows_On_Target is True. * switch-c.adb (Scan_Front_End_Switches): Don't set Check_Float_Overflow if Machine_Oveflows_On_Target is True. 2014-08-04 Vincent Celier <celier@adacore.com> * prj-attr.adb: Add new default indications for attributes Object_Dir, Exec_Dir, Source_Dirs and Target. (Attribute_Default_Of): New function (Initialize): Set the default for those attributes that have one specified. * prj-attr.ads (Attribute_Data): New component Default. * prj-proc.adb (Expression): Take into account the new defaults for attributes Object_Dir, Exec_Dir and Source_Dirs. * prj-strt.adb (Attribute_Reference): Set the default for the attribute. * prj-tree.ads, prj-tree.adb (Default_Of): New function. (Set_Default_Of): New procedure. * prj.adb (The_Dot_String): New global Name_Id variable, initialized in procedure Initialize. (Dot_String): New function (Initialize): Initialize The_Dot_String. (Reset): Create the string list Shared.Dot_String_List. * prj.ads (Attribute_Default_Value): New enumeration type. (Project_Qualifier): Change enumeration value Dry to Abstract_Project. (Dot_String): New function. (Shared_Project_Tree_Data): New string list component Dot_String_List. * projects.texi: Document new defaults for attribute Object_Dir, Exec_Dir and Source_Dirs. From-SVN: r213548
2014-08-04[multiple changes]Arnaud Charlet1-2/+15
2014-08-04 Robert Dewar <dewar@adacore.com> * sem_ch12.adb: Minor reformatting. 2014-08-04 Arnaud Charlet <charlet@adacore.com> * exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special expansion in CodePeer_Mode. (Selected_Range_Checks): Add handling of overflow checks in CodePeer_Mode. From-SVN: r213547
2014-08-04[multiple changes]Arnaud Charlet1-16/+2
2014-08-04 Robert Dewar <dewar@adacore.com> * checks.adb (Activate_Overflow_Check): Remove Check_Float_Overflow processing. (Apply_Scalar_Range_Check): Ditto. (Generate_Range_Check): Ditto. * exp_ch4.adb (Expand_N_Op_Add): Add call to Check_Float_Op_Overflow. (Expand_N_Op_Divide): ditto. (Expand_N_Op_Multiply): ditto. (Expand_N_Op_Subtract): ditto. * exp_util.ads, exp_util.adb (Check_Float_Op_Overflow): New procedure. * sem_attr.adb (Analyze_Attribute, case Pred): Make sure Do_Range_Check is set for floating-point case in -gnatc or GNATprove mode. (Analyze_Attribute, case Succ): Make sure Do_Range_Check is set for floating-point case in -gnatc or GNATprove mode. * sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check flag is set for real to integer conversion in GNATprove or -gnatc mode. 2014-08-04 Gary Dismukes <dismukes@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Resolve the expression of an Import or Export aspect as type Boolean and require it to be static. Add ??? comment. Also, set the Is_Exported flag when appropriate. From-SVN: r213545
2014-08-04[multiple changes]Arnaud Charlet1-14/+13
2014-08-04 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch8.adb (Build_Class_Wide_Wrapper): Handle various special cases related to equality. Remove the special processing for dispatching abstract subprograms as it is not needed. (Interpretation_Error): Add a specialized error message for predefined operators. (Is_Intrinsic_Equality): New routine. (Is_Suitable_Candidate): New routine. 2014-08-04 Gary Dismukes <dismukes@adacore.com> * checks.adb: Minor comment reformatting. 2014-08-04 Ed Schonberg <schonberg@adacore.com> * restrict.adb (Check_Restriction): For checked max_parameter restrictions reset Violated flag, so that subsequent violations are properly detected. 2014-08-04 Robert Dewar <dewar@adacore.com> * sem_ch3.adb (Check_Initialization): Fix bad test of GNATprove mode. (Process_Discriminants): Fix bad test of GNATprove mode 2014-08-04 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch12.adb (Instantiate_Formal_Subprogram): Move variable to their own section. Propagate the source location of a formal parameter to the corresponding formal of the subprogram renaming declaration. Code reformatting. From-SVN: r213533
2014-08-04[multiple changes]Arnaud Charlet1-67/+91
2014-08-04 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Expand_Array_Aggregate): Do not attempt expansion if error already detected. We may reach this point in spite of previous errors when compiling with -gnatq, to force all possible errors (this is the usual ACATS mode). 2014-08-04 Gary Dismukes <dismukes@adacore.com> * checks.adb (Generate_Range_Check): For the case of converting a base type with a larger range to a smaller target subtype, only use unchecked conversions of bounds in the range check followed by conversion in the case where both types are discrete. In other cases, convert to the target base type and save in a temporary followed by the range check. (Convert_And_Check_Range): New procedure factoring code to save conversion to a temporary followed by a range check (called two places in Generate_Range_Check). * exp_ch4.adb (Expand_N_Type_Conversion): Relax previous check-in, to generate range checks for conversions between any floating-point types rather than limiting it to matching base types. From-SVN: r213532
2014-08-01a-numaux-vxworks.ads, [...]: Fix bad package header comments.Robert Dewar1-11/+2
2014-08-01 Robert Dewar <dewar@adacore.com> * a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads, a-numaux-darwin.adb, a-numaux-darwin.ads, a-numaux.ads, a-numaux-libc-x86.ads: Fix bad package header comments. * elists.ads, elists.adb (Append_New_Elmt): New procedure. * gnat_rm.texi, a-calend.adb, gnatcmd.adb, einfo.adb, einfo.ads, checks.adb, sem_prag.adb, sem_prag.ads, rtsfind.ads, freeze.adb, sem_util.adb, sem_attr.adb, exp_dbug.adb, exp_dbug.ads, gnat1drv.adb, targparm.adb, targparm.ads, exp_ch6.adb, switch-b.adb, s-shasto.ads, stand.ads, s-auxdec.ads, opt.adb, opt.ads, mlib-tgt.ads, s-fatgen.adb, s-fatgen.ads, system.ads, snames.ads-tmpl, s-stalib.ads, s-os_lib.adb: Remove VMS-specific code. From-SVN: r213437
2014-07-31[multiple changes]Arnaud Charlet1-3/+24
2014-07-31 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb (Activate_Overflow_Check): Do not set flag for unconstrained fpt ops. 2014-07-31 Pascal Obry <obry@adacore.com> * s-fileio.adb (Open): Make sure a shared file gets inserted into the global list atomically. This ensures that the file descriptor won't be freed because another tasks is closing the file. From-SVN: r213349
2014-07-31[multiple changes]Arnaud Charlet1-7/+50
2014-07-31 Robert Dewar <dewar@adacore.com> * checks.adb (Enable_Overflow_Check): More precise setting of Do_Overflow_Check flag for division. 2014-07-31 Eric Botcazou <ebotcazou@adacore.com> * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject packed array types with implementation type. 2014-07-31 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch10.adb (Process_State): Remove local variable Name. Add local variable Decl. Partially declare an abstract state by generating an entity and storing it in the state declaration. * sem_prag.adb (Create_Abstract_State): Fully declare a semi-declared abstract state. From-SVN: r213335
2014-07-31exp_ch5.adb, [...]: Minor reformatting.Robert Dewar1-1/+1
2014-07-31 Robert Dewar <dewar@adacore.com> * exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, exp_ch9.adb, sem_ch7.adb, checks.adb, s-exctra.adb, exp_ch6.adb, exp_disp.adb, exp_dist.adb, sem_ch13.adb, exp_strm.adb, exp_ch3.adb: Minor reformatting. From-SVN: r213325
2014-07-30[multiple changes]Arnaud Charlet1-2/+0
2014-07-30 Robert Dewar <dewar@adacore.com> * exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting. 2014-07-30 Yannick Moy <moy@adacore.com> * checks.ads: Fix typo in comment. 2014-07-30 Pierre-Marie Derodat <derodat@adacore.com> * sem_util.adb (Set_Debug_Info_Needed): For scalar types, recurse on entities that materialize range bounds, if any. 2014-07-30 Vincent Celier <celier@adacore.com> * projects.texi: Minor spelling fix. From-SVN: r213292
2014-07-30[multiple changes]Arnaud Charlet1-13/+3
2014-07-30 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Make_Bignum_Block): Use the new secondary stack build routines to manage the mark. * exp_ch7.adb (Create_Finalizer, Expand_Cleanup_Actions): Use the new secodary stack build routines to manage the mark. (Insert_Actions_In_Scope_Around): Add new formal parameter Manage_SS along with comment on its usage. Code and comment reformatting. Mark and release the secondary stack when the context warrants it. (Make_Transient_Block): Update the call to Insert_Actions_In_Scope_Around to account for parameter Manage_SS. (Wrap_Transient_Declaration): Remove local variable Uses_SS. Ensure that the secondary stack is marked and released when the related object declaration appears in a library level package or package body. Code and comment reformatting. * exp_util.ads, exp_util.adb (Build_SS_Mark_Call): New routine. (Build_SS_Release_Call): New routine. 2014-07-30 Steve Baird <baird@adacore.com> * exp_attr.adb: Revert previous change, not needed after all. 2014-07-30 Vincent Celier <celier@adacore.com> * makeutl.adb (Queue.Insert_Project_Sources): Insert with Closure => True for interfaces of Stand-Alone Libraries. * makeutl.ads (Source_Info (Format => Gprbuild)): Add new Boolean component Closure, defaulted to False. 2014-07-30 Yannick Moy <moy@adacore.com> * sem_res.adb: Fix typo in error message. From-SVN: r213291
2014-07-30checks.adb, [...]: Minor reformatting.Robert Dewar1-1/+2
2014-07-30 Robert Dewar <dewar@adacore.com> * checks.adb, a-cihase.adb, a-cihase.ads, a-chtgop.adb, a-chtgop.ads, a-except.adb, a-except-2005.adb, a-cborse.adb, a-cborse.ads, a-exexda.adb, a-elchha.adb, exp_aggr.adb, a-cohase.adb: Minor reformatting. From-SVN: r213280
2014-07-30[multiple changes]Arnaud Charlet1-13/+435
2014-07-30 Ed Schonberg <schonberg@adacore.com> * a-chtgop.ads, a-chtgop.adb (Delete_Node_At_Index): New subprogram, used by all versions of hashed sets, to delete a node whose element has been improperly updated through a Reference_ Preserving key. * a-cohase.adb: Remove Delete_Node, use new common procedure Delete_Node_At_Index. * a-cihase.ads: Add Reference_Control_Type to package Generic_Keys. * a-cihase.adb: Add Adjust and Finalize routines for Reference_Control_Type. (Reference_Preserving_Key): Build aggregate for Reference_Control_Type 2014-07-30 Yannick Moy <moy@adacore.com> * checks.adb, checks.ads (Determine_Range_R): New procedure to determine the possible range of a floating-point expression. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * a-cborse.ads: Add Reference_Control_Type to package Generic_Keys. * a-cborse.adb: Add Adjust and Finalize routines for Reference_Control_Type. (Reference_Preserving_Key): Build aggregate for Reference_Control_Type. (Delete): Check for tampering, and raise Program_Error (not Constraint_Error) when attempting to delete an element not in the set. (Insert): Ditto. 2014-07-30 Bob Duff <duff@adacore.com> * a-elchha.adb, a-except-2005.adb, a-except.adb, a-exexda.adb, * a-exextr.adb, a-exstat.adb, exp_intr.ads, s-tassta.adb: Exception_Information is used to produce useful debugging information for the programmer. However, it was also used to implement the stream attributes for type Exception_Occurrence. The latter requires a stable and portable interface, which meant that we couldn't include a symbolic traceback. A separate set of routines was used to provide symbolic tracebacks under program control (i.e. not automatically). The goal of this ticket is to provide such automatic tracebacks, so the change here is to split the two functionalities: Exception_Information gives the maximally useful information for debugging (i.e. it now includes a symbolic traceback when a decorator is set, and it can be improved freely in the future without disturbing streaming). Untailored_Exception_Information always uses hexadecimal addresses in the traceback, has a stable and portable output, and is now used for streaming. 2014-07-30 Eric Botcazou <ebotcazou@adacore.com> * exp_aggr.adb (Expand_Array_Aggregate): Add missing test on the target of the assignment to find out whether it can be directly done by the back-end. * exp_util.adb (Is_Possibly_Unaligned_Slice): Remove obscure test. From-SVN: r213279
2014-07-30[multiple changes]Arnaud Charlet1-1/+5
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-30[multiple changes]Arnaud Charlet1-3/+8
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-29gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old.Robert Dewar1-3/+17
2014-07-29 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old. * opt.adb: Handle Uneval_Old. * opt.ads (Uneval_Old, Uneval_Old_Config): New variables. * par-prag.adb: Add dummy entry for pragma Unevaluated_Use_Of_Old. * sem.ads (Save_Uneval_Old): New field in Scope_Stack_Entry. * sem_attr.adb (Uneval_Old_Msg): New procedure. * sem_ch8.adb (Push_Scope): Save Uneval_Old. (Pop_Scope): Restore Uneval_Old. * sem_prag.adb (Analyze_Pragma, case Unevaluated_Use_Of_Old): Implemented. * snames.ads-tmpl: Add entries for pragma Unevaluated_Use_Of_Old Add entries for Name_Warn, Name_Allow. From-SVN: r213160
2014-07-29sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range to ↵Robert Dewar1-7/+24
Is_OK_Static_Range. 2014-07-29 Robert Dewar <dewar@adacore.com> * sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range to Is_OK_Static_Range. * sem_attr.adb (Eval_Attribute): Make sure we properly flag static attributes (Eval_Attribute, case Size): Handle size of zero properly (Eval_Attribute, case Value_Size): Handle size of zero properly. * sem_ch13.adb: Minor reformatting. * sem_ch3.adb (Process_Range_Expr_In_Decl): Change Is_Static_Range to Is_OK_Static_Range. * sem_eval.adb (Eval_Case_Expression): Total rewrite, was wrong in several ways (Is_Static_Range): Moved here from spec (Is_Static_Subtype): Moved here from spec Change some incorrect Is_Static_Subtype calls to Is_OK_Static_Subtype. * sem_eval.ads: Add comments to section on Is_Static_Expression/Raises_Constraint_Error (Is_OK_Static_Range): Add clarifying comments (Is_Static_Range): Moved to body (Is_Statically_Unevaluated): New function. * sem_util.ads, sem_util.adb (Is_Preelaborable_Expression): Change Is_Static_Range to Is_OK_Static_Range. * sinfo.ads: Additional commments for Is_Static_Expression noting that clients should almost always use Is_OK_Static_Expression instead. Many other changes throughout front end units to obey this rule. * tbuild.ads, tbuild.adb (New_Occurrence_Of): Set Is_Static_Expression for enumeration literal. * exp_ch5.adb, sem_intr.adb, sem_ch5.adb, exp_attr.adb, exp_ch9.adb, lib-writ.adb, sem_ch9.adb, einfo.ads, checks.adb, checks.ads, sem_prag.adb, sem_ch12.adb, freeze.adb, sem_res.adb, exp_ch4.adb, exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, exp_aggr.adb, sem_cat.adb: Replace all occurrences of Is_Static_Expression by Is_OK_Static_Expression. From-SVN: r213159
2014-07-18sem_aggr.adb, [...]: Change name Packed_Array_Type to Packed_Array_Impl_Type.Robert Dewar1-2/+2
2014-07-18 Robert Dewar <dewar@adacore.com> * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, layout.adb, sem_type.adb, exp_util.adb, exp_attr.adb, einfo.adb, einfo.ads, exp_pakd.adb, checks.adb, exp_pakd.ads, freeze.adb, sem_util.adb, exp_dbug.adb, exp_dbug.ads, exp_ch4.adb, sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_ch13.adb: Change name Packed_Array_Type to Packed_Array_Impl_Type. From-SVN: r212797
2014-07-17sem_ch3.adb, [...]: Remove the word kludge from ada sources.Robert Dewar1-4/+4
2014-07-17 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, a-ztexio.ads, exp_imgv.adb, casing.adb, casing.ads, einfo.ads, checks.adb, sem_ch12.adb, a-textio.ads, freeze.adb, repinfo.adb, exp_ch6.adb, sem_ch4.adb, a-witeio.ads, sem_ch8.adb, sem_warn.adb, exp_aggr.adb, exp_dist.adb, par-tchk.adb, s-fatgen.adb, treepr.adb, lib-xref.adb: Remove the word kludge from ada sources. From-SVN: r212726
2014-07-17back_end.adb: Minor reformatting and comment additions.Robert Dewar1-3/+32
2014-07-17 Robert Dewar <dewar@adacore.com> * back_end.adb: Minor reformatting and comment additions. * checks.ads, checks.adb (Duplicated_Tag_Checks_Suppressed): New function. * exp_disp.adb (Make_DT): Use Duplicated_Tag_Checks_Suppressed. (Make_VM_TSD): Use Duplicated_Tag_Checks_Suppressed. * gnat_rm.texi: Document new check Duplicated_Tag_Checks_Suppressed. * gnat_ugn.texi: Additional documentation for Duplicated_Tag_Check. * snames.ads-tmpl (Duplicated_Tag_Checks_Suppressed): New check. * types.ads (Duplicated_Tag_Checks_Suppressed): New check. From-SVN: r212724
2014-07-16[multiple changes]Arnaud Charlet1-0/+11
2014-07-16 Vincent Celier <celier@adacore.com> * gnatls.adb: Get the target parameters only if -nostdinc was not specified. 2014-07-16 Ed Schonberg <schonberg@adacore.com> * checks.adb (Insert_Valid_Check): If the expression is a packed component of a modular type of the right size the data is always valid. This os particularly useful if the component is part of a volatile variable. 2014-07-16 Robert Dewar <dewar@adacore.com> * gnat_rm.texi, sinfo.ads, freeze.adb, exp_aggr.adb: Minor reformatting 2014-07-16 Thomas Quinot <quinot@adacore.com> * exp_ch7.ads: Minor documentation fix. From-SVN: r212663
2014-07-16[multiple changes]Arnaud Charlet1-0/+13
2014-07-16 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Process_Declarations): Reinstate the check on a hook object to ensure that the related transient declaration is finalizable. * exp_util.adb (Is_Aliased): Do not consider expresison with actions as a special context. (Requires_Cleanup_Actions): Reinstate the check on a hook object to ensure that the related transient declaration is finalizable. 2014-07-16 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb (Allocation_Checks_Suppressed): New function. * snames.ads-tmpl: Add Allocation_Check to list of check names. * types.ads: Add Allocation_Check to list of check names. 2014-07-16 Thomas Quinot <quinot@adacore.com> * sem_util.adb (Enter_Name): replace bogus test for presence of Corresponding_Remote_Type with correct test on Ekind. * sem_res.adb (Valid_Conversion): ditto; also clarify validity of calls to Corresponding_ Remote_Type (documentation fix). 2014-07-16 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document illegal case of Unrestricted_Access. * sem_attr.adb (Analyze_Access_Attribute): Set_Non_Aliased_Prefix where it applies. (Resolve_Attribute, case Access): Flag illegal Unrestricted_Access use. * sinfo.ads, sinfo.adb (Non_Aliased_Prefix): New flag. From-SVN: r212655
2014-06-13[multiple changes]Arnaud Charlet1-17/+47
2014-06-13 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Pragma): Add local variable Missing_Parentheses. Emit an error when a state declaration with options appears without parentheses. Add a guard to prevent a bogus error when a state declaration may be interpreted as an option if a previous declaration with options was not parenthesized. 2014-06-13 Robert Dewar <dewar@adacore.com> * checks.adb: Validate_Alignment_Check_Warnings: New procedure (Apply_Address_Clause_Check): Make Aligment_Warnings table entry. * checks.ads (Alignment_Warnings_Record): New type. (Alignment_Warnings): New table (Validate_Alignment_Check_Warnings): New procedure. * errout.adb (Delete_Warning_And_Continuations): New procedure (Error_Msg_Internal): Set Warning_Msg (Delete_Warning): Handle Warnings_Treated_As_Errors (Finalize): Minor reformatting * errout.ads (Warning_Msg): New variable (Delete_Warning_And_Continuations): New procedure * erroutc.adb (Delete_Msg): Handle Warnings_Treated_As_Errors count. * gnat1drv.adb (Post_Compilation_Validation_Checks): New procedure. 2014-06-13 Ed Schonberg <schonberg@adacore.com> * a-coinho.adb, a-coinho.ads: Add Reference machinery. From-SVN: r211627
2014-06-13[multiple changes]Arnaud Charlet1-0/+1
2014-06-13 Eric Botcazou <ebotcazou@adacore.com> * checks.adb (Apply_Address_Clause_Check): Only issue the new warning if the propagation warning is issued. 2014-06-13 Thomas Quinot <quinot@adacore.com> * exp_ch4.adb: Minor reformatting. 2014-06-13 Robert Dewar <dewar@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): Handle float range check case (Expand_N_Attribute_Reference, case Succ): Handle float range check case. * sem_attr.adb (Analyze_Attribute, case Pred/Succ): Handle float range check case. 2014-06-13 Vincent Celier <celier@adacore.com> * makeutl.ads (Compute_Builder_Switches): Change name of parameter Root_Environment to Env. * prj-conf.adb (Check_Switches): Call Locate_Runtime with the Env parameter of procedure Get_Or_Create_Configuration_File. (Locate_Runtime): Call Find_Rts_In_Path with the Project_Path of new parameter Env. * prj-conf.ads (Locate_Runtime): New parameter Env of type Prj.Tree.Environment. 2014-06-13 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor comment clarification for Check_Float_Overflow. From-SVN: r211623
2014-06-13exp_attr.adb, [...]: Minor reformatting.Robert Dewar1-1/+1
2014-06-13 Robert Dewar <dewar@adacore.com> * exp_attr.adb, exp_ch9.adb, lib-writ.adb, g-comlin.adb: Minor reformatting. * sem_attr.adb: Minor code reformatting and simplification. * checks.adb: Fix minor typo. From-SVN: r211622
2014-06-11[multiple changes]Arnaud Charlet1-10/+21
2014-06-11 Thomas Quinot <quinot@adacore.com> * freeze.ads: Minor reformatting. * checks.adb (Determine_Range): Do not attempt to determine the range of a deferred constant whose full view has not been seen yet. * sem_res.adb (Resolve): Remove undesirable guard against resolving expressions from expression functions. 2014-06-11 Robert Dewar <dewar@adacore.com> * debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous access types. * layout.adb (Layout_Type): Make anonymous access types for subprogram formal types and return types always thin. For now only enabled if -gnatd.1 set. 2014-06-11 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality rule for stream attributes of interface types (RM 13.13.2 (38/3)): subprogram must be a null procedure. From-SVN: r211464
2014-06-11[multiple changes]Arnaud Charlet1-3/+3
2014-06-11 Robert Dewar <dewar@adacore.com> * debug.adb: Add debug flag -gnatd.q. * erroutc.adb (Prescan_Message): Bomb if untagged warning with -gnatd.q set. * styleg.adb (Check_Xtra_Parens): Message should be a style message. * sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb, par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb, sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb, sem_ch13.adb, lib-xref.adb: Add remaining warning tags. 2014-06-11 Ben Brosgol <brosgol@adacore.com> * gnat_rm.texi: Revised chapter on Implementation Defined Characteristics. From-SVN: r211448
2014-02-25gnat_rm.texi: First set of documentation additions for predefined RM units.Robert Dewar1-3/+2
2014-02-25 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: First set of documentation additions for predefined RM units. * checks.adb: Minor reformatting. * sem_elab.adb (Check_Task_Activation): Minor fix to error message. * sem_util.adb: Minor reformatting. From-SVN: r208141
2014-02-25[multiple changes]Arnaud Charlet1-2/+6
2014-02-25 Robert Dewar <dewar@adacore.com> * einfo.ads, einfo.adb (Has_Shift_Operator): New flag. * gnat_rm.texi: Document pragma Provide_Shift_Operators. * interfac.ads: Minor code reorganization (add pragma Compiler_Unit_Warning). * par-prag.adb: Add dummy entry for Provide_Shift_Operators. * sem_ch3.adb (Build_Derived_Numeric_Type): Copy Has_Shift_Operator flag. * sem_intr.adb (Check_Intrinsic_Subprogram): Make sure Check_Shift is always called (Check_Shift): Set Has_Shift_Operator. * sem_prag.adb: Implement pragma Provide_Shift_Operators. * snames.ads-tmpl: Add entries for pragma Provide_Shift_Operators Add entry for Name_Amount. * checks.adb (Selected_Range_Checks): When checking for a null range, make sure we use the base type, and not the subtype for deciding a range is null. * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check for suspicious loop bound which is outside the range of the loop subtype. * gnat_ugn.texi: Add documentation section "Determining the Chosen Elaboration Order" * sem_ch13.adb (UC_Entry): Add field Act_Unit (Validate_Unchecked_Conversion): Store Act_Unit (Validate_Unchecked_Conversions): Test Warnings_Off in Act_Unit * treepr.adb: Minor reformatting. 2014-02-25 Arnaud Charlet <charlet@adacore.com> * usage.adb: Minor: fix typo. From-SVN: r208138
2014-02-25[multiple changes]Arnaud Charlet1-4/+7
2014-02-25 Yannick Moy <moy@adacore.com> * sem_prag.adb: Minor reformatting to get consistent messages. 2014-02-25 Robert Dewar <dewar@adacore.com> * checks.adb: Minor reformatting. * sinfo.ads (Do_Range_Check): Document that this flag is never passed to the back end. From-SVN: r208129