aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2013-04-23Makefile.in (targ): Fix target name check.Eric Botcazou2-3/+10
2013-04-23 Eric Botcazou <ebotcazou@adacore.com> Pascal Obry <obry@adacore.com> * gcc-interface/Makefile.in (targ): Fix target name check. (../../gnatmake$(exeext)): Add '+' for LTO. (../../gnatlink$(exeext)): Likewise. Co-Authored-By: Pascal Obry <obry@adacore.com> From-SVN: r198200
2013-04-23Update dependencies.Arnaud Charlet1-515/+530
From-SVN: r198199
2013-04-23[multiple changes]Arnaud Charlet14-1526/+1790
2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch9.adb (Build_PPC_Wrapper): Correct the traversal of pre- and post-conditions. (Expand_N_Task_Type_Declaration): Use the correct attribute to check for pre- and post-conditions. * exp_ch13.adb (Expand_N_Freeze_Entity): Correct the traversal of pre- and post-conditions. Analyze delayed classification items. * freeze.adb (Freeze_Entity): Use the correct attribute to check for pre- and post- conditions. * sem_ch3.adb (Analyze_Declarations): Correct the traversal of pre- and post-conditions as well as contract- and test-cases. Analyze delayed pragmas Depends and Global. * sem_ch6.adb (Check_Subprogram_Contract): Use the correct attribute to check for pre- and post-conditions, as well as contract-cases and test-cases. (List_Inherited_Pre_Post_Aspects): Correct the traversal of pre- and post- conditions. (Process_Contract_Cases): Update the comment on usage. Correct the traversal of contract-cases. (Process_Post_Conditions): Update the comment on usage. Correct the traversal of pre- and post-conditions. (Process_PPCs): Correct the traversal of pre- and post-conditions. (Spec_Postconditions): Use the correct attribute to check for pre- and post- conditions, as well as contract-cases and test-cases. * sem_ch13.adb (Analyze_Aspect_Specifications): Reimplement the actions related to aspects Depends and Global. Code refactoring for pre- and post-conditions. (Insert_Delayed_Pragma): New routine. * sem_prag.adb (Add_Item): New routine. (Analyze_Depends_In_Decl_Part): New routine. (Analyze_Global_In_Decl_Part): New routine. (Analyze_Pragma): Reimplement the actions related to aspects Depends and Global. Verify that a body acts as a spec for pragma Contract_Cases. (Chain_PPC): Use Add_Contract_Item to chain a pragma. (Chain_CTC): Correct the traversal of contract- and test-cases. Use Add_Contract_Item to chain a pragma. (Chain_Contract_Cases): Correct the traversal of contract- and test-cases. Use Add_Contract_Item to chain a pragma. (Check_Precondition_Postcondition): Update the comment on usage. (Check_Test_Case): Update the comment on usage. * sem_prag.ads (Analyze_Depends_In_Decl_Part): New routine. (Analyze_Global_In_Decl_Part): New routine. * sem_util.ads, sem_util.adb (Add_Contract_Item): New routine. * sinfo.adb (Classifications): New routine. (Contract_Test_Cases): New routine. (Pre_Post_Conditions): New routine. (Set_Classifications): New routine. (Set_Contract_Test_Cases): New routine. (Set_Pre_Post_Conditions): New routine. (Set_Spec_CTC_List): Removed. (Set_Spec_PPC_List): Removed. (Spec_CTC_List): Removed. (Spec_PPC_List): Removed. * sinfo.ads: Update the structure of N_Contruct along with all related comments. (Classifications): New routine and pragma Inline. (Contract_Test_Cases): New routine and pragma Inline. (Pre_Post_Conditions): New routine and pragma Inline. (Set_Classifications): New routine and pragma Inline. (Set_Contract_Test_Cases): New routine and pragma Inline. (Set_Pre_Post_Conditions): New routine and pragma Inline. (Set_Spec_CTC_List): Removed. (Set_Spec_PPC_List): Removed. (Spec_CTC_List): Removed. (Spec_PPC_List): Removed. 2013-04-23 Doug Rupp <rupp@adacore.com> * init.c (GNAT$STOP) [VMS]: Bump sigargs[0] count by 2 to account for LIB$STOP not having the chance to add the PC and PSL fields. From-SVN: r198198
2013-04-23sem_ch13.adb: Minor code reorganization (remove some redundant assignments).Robert Dewar4-20/+12
2013-04-23 Robert Dewar <dewar@adacore.com> * sem_ch13.adb: Minor code reorganization (remove some redundant assignments). * sem_ch3.adb, sem_prag.adb: Minor reformatting. From-SVN: r198197
2013-04-23[multiple changes]Arnaud Charlet8-21/+130
2013-04-23 Yannick Moy <moy@adacore.com> * einfo.ads: Minor typo fix. * sem_ch13.adb (Build_Predicate_Functions): Reject cases where Static_Predicate is applied to a non-scalar or non-static type. * sem_prag.adb: Minor typo fix. 2013-04-23 Doug Rupp <rupp@adacore.com> * init.c (GNAT$STOP) [VMS]: New function. 2013-04-23 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: Add exp_pakd to context. (Constrain_Component_Type): If the component of the parent is packed, and the record subtype being built is already frozen, as is the case for an itype, the component type itself will not be frozen, and the packed array type for it must be constructed explicitly. 2013-04-23 Thomas Quinot <quinot@adacore.com> * g-socket.adb, g-socket.ads (Set_Close_On_Exec): New subprogram. From-SVN: r198196
2013-04-23[multiple changes]Arnaud Charlet8-83/+102
2013-04-23 Yannick Moy <moy@adacore.com> * err_vars.ads (Error_Msg_Qual_Level): Set variable to zero at declaration. * opt.ads (Multiple_Unit_Index): Set variable to zero at declaration. * sem_util.adb (NCT_Table_Entries): Set variable to zero at declaration. * set_targ.ads (Num_FPT_Modes): Set variable to zero at declaration. * stylesw.adb (Save_Style_Check_Options): Protect testing the value of Style_Check_Comments_Spacing by a previous test that Style_Check_Comments is True. 2013-04-23 Thomas Quinot <quinot@adacore.com> * sem_prag.adb, sem_prag.ads (Effective_Name): Rename to Original_Name, and move declaration to package body as this subprogram is not used from outside. Also clarify documentation. From-SVN: r198195
2013-04-23[multiple changes]Arnaud Charlet6-29/+40
2013-04-23 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_N_Subprogram_Body): When compiling with initialize_scalars, disable predicate checks on the generated assignment to an out scalar parameter. 2013-04-23 Gary Dismukes <dismukes@adacore.com> * sem_ch4.adb (Analyze_Allocator): Remove error check for "constrained in partial view" constraints entirely. 2013-04-23 Robert Dewar <dewar@adacore.com> * einfo.ads, sem_prag.ads: Minor reformatting. * errout.ads: Comment update. From-SVN: r198194
2013-04-23[multiple changes]Arnaud Charlet5-14/+32
2013-04-23 Yannick Moy <moy@adacore.com> * exp_ch5.adb: Minor typo. 2013-04-23 Thomas Quinot <quinot@adacore.com> * gnat_ugn.texi: Fix typo. 2013-04-23 Ed Schonberg <schonberg@adacore.com> * einfo.ads: Minor documentation clarification. 2013-04-23 Bob Duff <duff@adacore.com> * types.ads: Fix incorrect comment. From-SVN: r198189
2013-04-23sem_aux.adb [...] (Effectively_has_Constrained_Partial_View): Rename ↵Ed Schonberg9-95/+106
subprogram as Object_Type_Has_Constrained_Partial_View... 2013-04-23 Ed Schonberg <schonberg@adacore.com> * sem_aux.adb sem_aux.ads (Effectively_has_Constrained_Partial_View): Rename subprogram as Object_Type_Has_Constrained_Partial_View, better description of purpose. * checks.adb (Apply_Discriminant_Check): Use above renaming. * sem_ch4.adb (Analyze_Allocator): Check Has_Constrained_Partial_View of the base type, rather than using the Object_Type predicate. * sem_attr.adb (Analyze_Attribute, case 'Access): Use above renaming. * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): ditto. * exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained): Ditto. * exp_ch4.adb (Expand_N_Allocator): Ditto. From-SVN: r198188
2013-04-23exp_prag.adb (Expand_Pragma_Check): Check for Assert rather than Assertion.Robert Dewar7-100/+205
2013-04-23 Robert Dewar <dewar@adacore.com> * exp_prag.adb (Expand_Pragma_Check): Check for Assert rather than Assertion. * sem_prag.adb (Is_Valid_Assertion_Kind): Moved to spec (Effective_Name): New function (Analyze_Pragma, case Check): Disallow [Statement_]Assertions (Check_Kind): Implement Statement_Assertions (Check_Applicable_Policy): Use Effective_Name (Is_Valid_Assertion_Kind): Allow Statement_Assertions. * sem_prag.ads (Is_Valid_Assertion_Kind): Moved here from body (Effective_Name): New function. * sem_res.adb: Minor reformatting. * snames.ads-tmpl (Name_Statement_Assertions): New entry. * gnat_rm.texi: Add documentation of new assertion kind Statement_Assertions. From-SVN: r198187
2013-04-23sinfo.ads, [...]: Minor reformatting and code clean up.Robert Dewar6-30/+46
2013-04-23 Robert Dewar <dewar@adacore.com> * sinfo.ads, einfo.adb, sem_res.adb, exp_ch6.adb, aspects.adb: Minor reformatting and code clean up. From-SVN: r198186
2013-04-23[multiple changes]Arnaud Charlet7-15/+60
2013-04-23 Vincent Celier <celier@adacore.com> * prj-part.ads, prj-conf.ads: Minor comment updates. 2013-04-23 Ed Schonberg <schonberg@adacore.com> * einfo.adb (Predicate_Function): For a private type, retrieve predicate function from full view. * aspects.adb (Find_Aspect): Ditto. * exp_ch6.adb (Expand_Actuals): If the formal is class-wide and the actual is a definite type, apply predicate check after call. * sem_res.adb: Do not apply a predicate check before the call to a generated Init_Proc. From-SVN: r198185
2013-04-23[multiple changes]Arnaud Charlet9-206/+325
2013-04-23 Robert Dewar <dewar@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Significant rewrite to make sure Is_Ignore is properly captured when aspect is declared. * sem_ch6.adb: Minor reformatting. * sem_prag.adb (Analyze_Pragma): Do not test policy at time of pragma for the case of a pragma coming from an aspect (already tested when we analyzed the aspect). 2013-04-23 Vincent Celier <celier@adacore.com> * prj-conf.adb (Parse_Project_And_Apply_Config): New Boolean parameter Implicit_Project, defaulted to False. Call Prj.Part.Parse with Implicit_Project. * prj-conf.ads (Parse_Project_And_Apply_Config): New Boolean parameter Implicit_Project, defaulted to False. * prj-part.adb (Parse_Single_Project): New Boolean parameter Implicit_Project, defaulted to False. When Implicit_Project is True, change the Directory of the project node to the Current_Dir. * prj-part.ads (Parse): New Boolean parameter, defaulted to False 2013-04-23 Robert Dewar <dewar@adacore.com> * exp_util.adb: Minor reformatting. From-SVN: r198184
2013-04-23[multiple changes]Arnaud Charlet6-44/+65
2013-04-23 Robert Dewar <dewar@adacore.com> * xoscons.adb: Minor reformatting. 2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Check_Mode): Ensure that a self-referential output appears in both input and output lists of the subprogram as categorized by aspect Global. (Check_Usage): Rename formal parameters to better illustrate their function. Update all uses of the said formals. 2013-04-23 Thomas Quinot <quinot@adacore.com> * exp_util.adb, exp_util.ads (Fully_Qualified_Name_String): New parameter Append_NUL to make NUL-termination optional. * exp_dist.adb: Consistently use the above throughout instead of Get_Library_Unit_Name_String. From-SVN: r198183
2013-04-23[multiple changes]Arnaud Charlet6-36/+56
2013-04-23 Robert Dewar <dewar@adacore.com> * sem_util.adb, sem_res.adb, prj-tree.adb, prj-tree.ads: Minor reformatting. 2013-04-23 Pascal Obry <obry@adacore.com> * xoscons.adb: Remove unused use clause, minor code clean-up. From-SVN: r198182
2013-04-23[multiple changes]Arnaud Charlet5-17/+43
2013-04-23 Ed Schonberg <schonberg@adacore.com> * sem_util.ads, sem_util.adb: Code cleanup for Is_Expression_Function (can apply to any scope entity). * sem_res.adb (Resolve_Call): If the call is within another expression function it does not constitute a freeze point. 2013-04-23 Yannick Moy <moy@adacore.com> * exp_ch6.adb (Expand_Actuals): Test that Subp is overloadable before testing if it's an inherited operation. From-SVN: r198181
2013-04-23a-envvar.adb, [...]: Minor reformatting.Robert Dewar5-17/+22
2013-04-23 Robert Dewar <dewar@adacore.com> * a-envvar.adb, a-envvar.ads, exp_util.adb, sem_ch12.adb: Minor reformatting. From-SVN: r198180
2013-04-23[multiple changes]Arnaud Charlet8-256/+292
2013-04-23 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Object_Declarations): Undo previous patch. * exp_util.adb (Expand_Subtype_From_Expr): If the expression is a source entity and the declaration is for an aliased unconstrained array, create a new subtype so that the flag Is_Constr_Subt_For_UN_Aliased does not pollute other entities. 2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Move tables Base_Aspect and Inherited_Aspect from the spec to the body. (Find_Aspect): Update the call to Get_Aspect_Id. (Get_Aspect_Id): New version that takes an aspect specification. * aspects.ads: Reorganize all aspect related tables. (Get_Aspect_Id): New version that takes an aspect specification. * par_sco.adb (Traverse_Aspects): Update the call to Get_Aspect_Id. * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Update the call to Get_Aspect_Id. * sem_ch13.adb (Analyze_Aspect_At_Freeze_Point): Update the call to Get_Aspect_Id. (Analyze_Aspect_Specifications): Update the call to Get_Aspect_Id. Update the call to Impl_Defined_Aspect. From-SVN: r198179
2013-04-23[multiple changes]Arnaud Charlet10-58/+163
2013-04-23 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Fix_Error): Rewrite to do more accurate job of getting proper name in the case where pragma comes from aspect. * sem_ch3.adb, sinfo.ads, par-ch6.adb, exp_ch6.adb: Minor reformatting. 2013-04-23 Yannick Moy <moy@adacore.com> * sem_ch6.adb (Process_PPCs): Do not filter postconditions based on applicable policy. 2013-04-23 Thomas Quinot <quinot@adacore.com> * par_sco.adb (Traverse_Aux_Decls): Minor code reorganization. 2013-04-23 Doug Rupp <rupp@adacore.com> * init.c: Move facility macros outside IN_RTS. 2013-04-23 Thomas Quinot <quinot@adacore.com> * freeze.adb (Freeze_Entity): For the case of a bit-packed array time that is known at compile time to have more that Integer'Last+1 elements, issue an error, since such arrays are not supported. From-SVN: r198178
2013-04-23[multiple changes]Arnaud Charlet5-31/+119
2013-04-23 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Dependency_Clause): Update all calls to Analyze_Input_Output. (Analyze_Input_List): Update all calls to Analyze_Input_Output. (Analyze_Input_Output): Add formal parameter Self_Ref along with comment on its usage. Update all calls to Analyze_Input_Output. (Analyze_Pragma): Add new local variable Self_Ref to capture the presence of a self-referential dependency clause. Update all calls to Analyze_Input_Output. (Check_Mode): Add formal parameter Self_Ref along with comment on its usage. Verify the legality of a self-referential output. 2013-04-23 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb: Add predicate checks on by-copy parameter. 2013-04-23 Vincent Celier <celier@adacore.com> * a-envvar.adb, a-envvar.ads (Value): New. From-SVN: r198177
2013-04-22exp_prag.adb (Expand_Pragma_Loop_Variant): Rewrite pragma as null statement ↵Yannick Moy4-25/+24
if ignored. 2013-04-22 Yannick Moy <moy@adacore.com> * exp_prag.adb (Expand_Pragma_Loop_Variant): Rewrite pragma as null statement if ignored. * sem_ch6.adb (Expand_Contract_Cases): Do nothing if pragma is ignored. * sem_prag.adb (Analyze_Pragma): Keep analyzing ignored pragmas. From-SVN: r198135
2013-04-22[multiple changes]Arnaud Charlet3-80/+156
2013-04-22 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Contract_Case): New routine. (Analyze_Pragma): Aspect/pragma Contract_Cases can now be associated with a library level subprogram. Add circuitry to detect illegal uses of aspect/pragma Contract_Cases in a subprogram body. (Chain_Contract_Cases): Rename formal parameter Subp_Decl to Subp_Id. Remove local constant Subp. The entity of the subprogram is now obtained via the formal paramter. 2013-04-22 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Object_Declaration): Do not set Is_Constr_Subt_For_Unc_Aliased on the subtype of the expression, if the expression is a source entity. From-SVN: r198134
2013-04-22[multiple changes]Arnaud Charlet7-19/+39
2013-04-22 Yannick Moy <moy@adacore.com> * exp_prag.adb, sinfo.ads, sem_prag.ads: Minor correction of typos in comments. * sem_ch6.adb (Expand_Contract_Cases): Add location to message. 2013-04-22 Thomas Quinot <quinot@adacore.com> * sem_prag.adb (Fix_Error): For a pragma rewritten from another pragma, fix up error message to include original pragma name. * par_sco.adb: Minor reformatting. From-SVN: r198133
2013-04-22sem_prag.adb, [...]: Minor reformatting.Robert Dewar8-219/+214
2013-04-22 Robert Dewar <dewar@adacore.com> * sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb, sem_ch6.adb, opt.ads: Minor reformatting. From-SVN: r198132
2013-04-22exp_ch6.adb: Omit check for init proc.Ed Schonberg1-0/+1
2013-04-22 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb: Omit check for init proc. From-SVN: r198131
2013-04-22[multiple changes]Arnaud Charlet8-23/+94
2013-04-22 Pascal Obry <obry@adacore.com> * gnat_ugn.texi, prj-nmsc.adb, projects.texi: Add check for Library_Standalone and Library_Kind. 2013-04-22 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_Actuals): If the call is to an inherited operation and the actual is a by-reference type with predicates, add predicate call to post-call actions. * sem_util.adb (Is_Inherited_Operation_For_Type): Fix coding error: a type declaration has a defining identifier, not an Etype. * sem_res.adb: Restore code removed because of above error. 2013-04-22 Doug Rupp <rupp@adacore.com> * init.c (__gnat_handle_vms_condition): Also match C$_SIGINT. From-SVN: r198130
2013-04-22[multiple changes]Arnaud Charlet9-38/+57
2013-04-22 Yannick Moy <moy@adacore.com> * gnat_rm.texi, exp_util.adb, sem_prag.adb, sem_prag.ads, par-ch2.adb, opt.ads, sem_ch13.adb: Minor correction of typos in comments/doc. 2013-04-22 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Check_Library_Attributes): Set Library_Dir to No_Path_Information only when Directories_Must_Exist_In_Projects is False. (Get_Directories): Set Object_Directory or Exec_Directory to No_Path_Information only when Directories_Must_Exist_In_Projects is False. From-SVN: r198129
2013-04-22par-prag.adb, [...]: Remove all references to Pragma_Contract_Case and ↵Yannick Moy9-193/+61
Name_Contract_Case. 2013-04-22 Yannick Moy <moy@adacore.com> * par-prag.adb, sem_attr.adb, sem_ch6.adb, sem_prag.adb, sem_warn.adb, snames.ads-tmpl, sinfo.ads, sem_util.ads: Remove all references to Pragma_Contract_Case and Name_Contract_Case. From-SVN: r198128
2013-04-22aspects.ads, [...]: Removal of references to Contract_Case.Yannick Moy7-138/+113
2013-04-22 Yannick Moy <moy@adacore.com> * aspects.ads, aspects.adb, sem_ch13.adb: Removal of references to Contract_Case. * gnat_ugn.texi, gnat_rm.texi Description of Contract_Case replaced by description of Contract_Cases. From-SVN: r198127
2013-04-12makeutl.adb, [...]: Minor reformatting.Robert Dewar7-67/+217
2013-04-12 Robert Dewar <dewar@adacore.com> * makeutl.adb, prj-nmsc.adb: Minor reformatting. 2013-04-12 Robert Dewar <dewar@adacore.com> * exp_util.adb (Make_Invariant_Call): Use Check_Kind instead of Check_Enabled. * gnat_rm.texi (Check_Policy): Update documentation for new Check_Policy syntax. * sem_prag.adb (Check_Kind): Replaces Check_Enabled (Analyze_Pragma, case Check_Policy): Rework to accomodate new syntax (like Assertion_Policy). * sem_prag.ads (Check_Kind): Replaces Check_Enabled. From-SVN: r197920
2013-04-12Update dependencies.Arnaud Charlet1-33/+34
From-SVN: r197919
2013-04-12[multiple changes]Arnaud Charlet7-89/+188
2013-04-12 Doug Rupp <rupp@adacore.com> * init.c (SS$_CONTROLC, SS$_CONTINUE) [VMS]: New macros. (__gnat_handle_vms_condition) [VMS]: Dispatch on the Crtl/C user handler if installed. * ctrl_c.c (__gnat_install_int_handler) [VMS]: Install a dummy sigaction handler to trigger the real user handler dispatch in init.c/__gnat_handle_vms_condition. (__gnat_uninstall_int_handler) [VMS]: Likewise. 2013-04-12 Vincent Celier <celier@adacore.com> * clean.adb (Parse_Cmd_Line): Set Directories_Must_Exist_In_Projects to False if switch is specified. * makeutl.adb (Initialize_Source_Record): Do not look for the object file if there is no object directory. * opt.ads (Directories_Must_Exist_In_Projects): New Boolean variable, defaulted to True. * prj-nmsc.adb (Check_Library_Attributes): Do not fail if library directory does not exist when Directories_Must_Exist_In_Projects is False. (Get_Directories): Do not fail when the object or the exec directory do not exist when Directories_Must_Exist_In_Projects is False. From-SVN: r197918
2013-04-12[multiple changes]Arnaud Charlet41-406/+302
2013-04-12 Robert Dewar <dewar@adacore.com> * namet.adb, namet.ads: Minor addition (7 arg version of Nam_In). * exp_prag.adb, sem_ch3.adb, sem_intr.adb, sem_type.adb, exp_util.adb, sem_aux.adb, exp_ch9.adb, sem_ch7.adb, sem_ch10.adb, sem_prag.adb, par-ch2.adb, tbuild.adb, rtsfind.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb, exp_ch2.adb, prj-makr.adb, sem_elab.adb, exp_ch4.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, par-prag.adb, prj-nmsc.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb, par-util.adb, sem_eval.adb, exp_intr.adb, sem_ch13.adb, exp_cg.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb: Minor code reorganization (use Nam_In). 2013-04-12 Doug Rupp <rupp@adacore.com> * init.c: Don't clobber condition code on VMS. From-SVN: r197917
2013-04-12exp_aggr.adb: Minor reformatting.Robert Dewar4-4/+134
2013-04-12 Robert Dewar <dewar@adacore.com> * exp_aggr.adb: Minor reformatting. * namet.ads, namet.adb (Nam_In): New functions. From-SVN: r197916
2013-04-12[multiple changes]Arnaud Charlet21-297/+1017
2013-04-12 Robert Dewar <dewar@adacore.com> * einfo.adb (Has_Dynamic_Predicate_Aspect): New flag. (Has_Static_Predicate_Aspect): New flag. * einfo.ads (Has_Dynamic_Predicate_Aspect): New flag. (Has_Static_Predicate_Aspect): New flag. * exp_ch9.adb: Minor reformatting. * exp_util.adb (Make_Invariant_Call): Check_Enabled now handles synonyms. * gnat1drv.adb: Remove setting of Debug_Pragmas_Enabled, since this switch is gone and control of Debug is done with Assertions_Enabled. * gnat_rm.texi: Update documentation for Assertion_Policy and Check_Policy pragmas. * opt.adb (Debug_Pragmas_Disabled[_Config]): Removed (Debug_Pragmas_Enabled[_Config]): Removed Since debug now controlled by Assertion_Enabled. * opt.ads (Debug_Pragmas_Disabled[_Config]): Removed (Debug_Pragmas_Enabled[_Config]): Removed Since debug now controlled by Assertion_Enabled. * par-ch2.adb (Scan_Pragma_Argument_Association): Allow new 'Class forms. * sem_attr.adb: Minor reformatting. * sem_ch13.adb (Analyze_Aspect_Specification): Disable aspect if DISABLE policy applies. * sem_ch6.adb (Grab_PPC): Check original name of aspect for aspect from pragma (Process_PPCs): Properly check assertion policy. * sem_prag.adb (Check_Enabled): Rewritten for new Assertion_Policy (Check_Appicable_Policy): New procedure. (Is_Valid_Assertion_Kind): New function. (Rewrite_Assertion_Kind): New procedure. (Analyze_Pragma): Handle case of disabled assertion pragma. (Analyze_Pragma, case Assertion_Policy): Rewritten for Ada 2012. (Analyze_Pragma, case Check): Deal with 'Class possibilities. (Analyze_Pragma, case Check_Policy): Deal with 'Class possibilities. (Analyze_Pragma, case Contract_Class): New handling of ignored pragma. (Analyze_Pragma, case Debug): New control with Assertion_Policy. (Analyze_Pragma, case Debug_Policy): Now consistent with Assertion_Policy. (Analyze_Pragma, case Loop_Invariant): New handling of ignored pragma. (Analyze_Pragma, case Loop_Variant): New handling of ignored pragma. (Analyze_Pragma, case Precondition): Use proper name for Check pragma. (Analyze_Pragma, case Check_Enabled): Rewritten for new policy stuff. * sem_prag.ads (Check_Enabled): Rewritten for new Assertion_Policy stuff. (Check_Appicable_Policy): New procedure. * sinfo.adb (Is_Disabled): New flag. (Is_Ignored): New flag. * sinfo.ads (Is_Disabled): New flag. (Is_Ignored): New flag. (N_Pragma_Argument_Association): New 'Class forms. * snames.ads-tmpl: New names Name_uPre, Name_uPost, Name_uType_Invariant, Name_uInvariant. * switch-c.adb: Remove setting of Debug_Pragmas_Enabled for -gnata. * tree_io.ads (ASIS_Version_Number): Updated (remove read write of obsolete flags Debug_Pragmas_Disabled and Debug_Pragmas_Enabled. 2013-04-12 Ed Schonberg <schonberg@adacore.com> * exp_aggr.adb (Get_Explicit_Discriminant_Value): Subsidiary of Build_Record_Aggr_Code, used to retrieve explicit values for inherited discriminants in an extension aggregate, when the ancestor type is unconstrained. From-SVN: r197915
2013-04-12[multiple changes]Arnaud Charlet3-2/+23
2013-04-12 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Check_Stream_Attribute): If restriction No_Default_Stream_Attributes is active, it is illegal to use a predefined elementary type stream attribute either by itself, or more importantly as part of the attribute subprogram for a composite type. However, if the broader restriction No_Streams is active, then stream operations are not generated, and there is no error. 2013-04-12 Robert Dewar <dewar@adacore.com> * gnatbind.adb: Minor reformatting. From-SVN: r197914
2013-04-12sem_attr.adb (Analyze_Access_Attribute): Treat P'Access like a call only in ↵Bob Duff2-4/+10
the static elaboration model. 2013-04-12 Bob Duff <duff@adacore.com> * sem_attr.adb (Analyze_Access_Attribute): Treat P'Access like a call only in the static elaboration model. From-SVN: r197913
2013-04-12[multiple changes]Arnaud Charlet11-14/+88
2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Input_List): Detect an illegal dependency clause where both input and output lists are null. (Analyze_Pragma): Update the grammar of pragma Depends. 2013-04-12 Vincent Celier <celier@adacore.com> * gnatbind.adb (No_Restriction_List): Exclude restrictions that take a parameter value, not a count. * prj.ads, prj.adb (Remove_All_Restricted_Languages): New procedure. * projects.texi: Complete documentation of attribute Roots. 2013-04-12 Thomas Quinot <quinot@adacore.com> * exp_ch3.adb, exp_util.ads, checks.adb, freeze.adb, sem_attr.adb, sem_ch3.adb: Minor reformatting. * exp_ch4.adb (Size_In_Storage_Elements): Minor documentation improvement: note that the computation is pessimistic for bit packed arrays. * gnat_rm.texi (Range_Length): Fix minor error in description of attribute. From-SVN: r197912
2013-04-12aspects.adb (Find_Aspect): New routine.Hristian Kirtchev9-61/+113
2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb (Find_Aspect): New routine. (Find_Value_Of_Aspect): New routine. (Has_Aspect): Reimplemented. * aspects.ads (Find_Aspect): New routine. (Find_Value_Of_Aspect): New routine, previously known as Find_Aspect. * exp_ch5.adb (Expand_Iterator_Loop): Update the call to Find_Aspect. * exp_util.adb (Is_Iterated_Container): Update the call to Find_Aspect. * sem_ch4.adb (Try_Container_Indexing): Update calls to Find_Aspect. * sem_ch5.adb (Analyze_Iterator_Specification): Update the call to Find_Aspect. Use function Has_Aspect for better readability. (Preanalyze_Range): Use function Has_Aspect for better readability. * sem_ch13.adb (Check_One_Function): Update the call to Find_Aspect. * sem_prag.adb (Analyze_Pragma): There is no longer need to look at the parent to extract the corresponding pragma for aspect Global. From-SVN: r197911
2013-04-12[multiple changes]Arnaud Charlet9-26/+58
2013-04-12 Robert Dewar <dewar@adacore.com> * checks.adb, sem_elab.adb, repinfo.adb, sem_ch4.adb, restrict.adb, restrict.ads: Minor reformatting. 2013-04-12 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb: Retrieve original name of classwide type if any. 2013-04-12 Thomas Quinot <quinot@adacore.com> * exp_ch11.ads: Minor reformatting. From-SVN: r197910
2013-04-12aspects.adb: Alphabetize subprogram bodies in this unit.Hristian Kirtchev19-174/+383
2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Alphabetize subprogram bodies in this unit. Add an entry for Aspect_Ghost in the table of canonical aspects. (Has_Aspect): New routine. * aspects.ads: Add Aspect_Ghost to all relevant tables. Alphabetize subprograms in this unit. (Has_Aspect): New routine. * einfo.adb: Add with and use clauses for Aspects. (Is_Ghost_Function): New routine. * einfo.ads: Add new synthesized attribute Is_Ghost_Function and update the structure of the related nodes. (Is_Ghost_Function): New routine. * exp_ch4.adb (Find_Enclosing_Context): Use routine Is_Body_Or_Package_Declaration to terminate a search. (Is_Body_Or_Unit): Removed. * exp_util.adb (Within_Case_Or_If_Expression): Use routine Is_Body_Or_Package_Declaration to terminate a search. * par-prag.adb: Add pragma Ghost to the list of pragmas that do not need special processing by the parser. * sem_attr.adb (Analyze_Access_Attribute): Detect an illegal use of 'Access where the prefix is a ghost function. (Analyze_Attribute): Use routine Is_Body_Or_Package_Declaration to terminate a search. (Check_References_In_Prefix): Use routine Is_Body_Or_Package_Declaration to terminate a search. * sem_ch4.adb (Analyze_Call): Mark a function when it appears inside an assertion expression. Verify the legality of a call to a ghost function. (Check_Ghost_Function_Call): New routine. * sem_ch6.adb (Analyze_Function_Call): Code reformatting. Move the setting of attribute In_Assertion_Expression to Analyze_Call. (Check_Overriding_Indicator): Detect an illegal attempt to override a function with a ghost function. * sem_ch12.adb (Preanalyze_Actuals): Detect an illegal use of a ghost function as a generic actual. * sem_elab.adb (Check_Internal_Call_Continue): Update the call to In_Assertion. * sem_prag.adb: Add an entry for pragma Ghost in the table of significant arguments. (Analyze_Pragma): Do not analyze an "others" case guard. Add processing for pragma Ghost. Use Preanalyze_Assert_Expression when analyzing the expression of pragmas Loop_Invariant and Loop_Variant. * sem_util.adb (Get_Subprogram_Entity): Reimplemented. (Is_Body_Or_Package_Declaration): New routine. * sem_util.ads: Alphabetize subprotrams in this unit. (Is_Body_Or_Package_Declaration): New routine. * sinfo.adb (In_Assertion): Rename to In_Assertion_Expression. (Set_In_Assertion): Rename to Set_In_Assertion_Expression. * sinfo.ads: Rename flag In_Assertion to In_Assertion_Expression to better reflect its use. Update all places that mention the flag. (In_Assertion): Rename to In_Assertion_Expression. Update related pragma Inline. (Set_In_Assertion): Rename to Set_In_Assertion_Expression. Update related pragma Inline. * snames.ads-tmpl: Add new predefined name Ghost. Add new pragma id Pragma_Ghost. From-SVN: r197909
2013-04-12[multiple changes]Arnaud Charlet4-1/+30
2013-04-12 Arnaud Charlet <charlet@adacore.com> * sem_prag.adb (Set_Imported): Do not generate error for multiple Import in CodePeer mode. * s-rident.ads: Fix minor typo. 2013-04-12 Ed Schonberg <schonberg@adacore.com> * checks.adb (Insert_Valid_Check): Do not insert validity check in the body of the generated predicate function, to prevent infinite recursion. From-SVN: r197908
2013-04-12s-rident.ads: Add various missing Ada 2012 restrictions...Ed Schonberg11-89/+300
2013-04-12 Ed Schonberg <schonberg@adacore.com> * s-rident.ads: Add various missing Ada 2012 restrictions: No_Access_Parameter_Allocators, No_Coextensions, No_Use_Of_Attribute, No_Use_Of_Pragma. * snames.ads-tmpl: Add corresponding names. * restrict.ads restrict.adb: Subprograms and data structures to handle aspects No_Use_Of_Attribute and No_Use_Of_Pragma. * sem_ch4.adb: Correct name of restrictions is No_Standard_Allocators_After_Elaboration. * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check violation of restriction No_Use_Of_Attribute. * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Set restrictions No_Use_Of_Pragma and No_Use_Of_Attribute. (Analyze_Pragma): Check violation of restriction No_Use_Of_Pragma. * sem_res.adb: Check restrictions No_Access_Parameter_Allocators and No_Coextensions. * bcheck.adb: Correct name of restrictions is No_Standard_Allocators_After_Elaboration. * gnatbind.adb: Correct name of restrictions is No_Standard_Allocators_After_Elaboration. From-SVN: r197907
2013-04-12[multiple changes]Arnaud Charlet8-86/+178
2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Pragma, (Check_Mode_Restriction_In_Function): Correct error message format. 2013-04-12 Robert Dewar <dewar@adacore.com> * sem_attr.adb: Minor reformatting. 2013-04-12 Ed Schonberg <schonberg@adacore.com> * sem_elab.adb (Within_Elaborate_All): Do not examine a context item that has not been analyzed, because the unit may have errors, or the context item may come from a proper unit inserted at the point of a stub and not analyzed yet. 2013-04-12 Thomas Quinot <quinot@adacore.com> * gnat1drv.adb, repinfo.adb, repinfo.ads (Repinfo.List_Array_Info, List_Record_Info): Also include scalar storage order information in output. 2013-04-12 Yannick Moy <moy@adacore.com> * sem_ch6.adb (Process_Contract_Cases): Update code to apply to Contract_Cases instead of Contract_Case pragma. From-SVN: r197906
2013-04-12[multiple changes]Arnaud Charlet6-14/+114
2013-04-12 Robert Dewar <dewar@adacore.com> * a-cfdlli.ads, g-socket.adb, s-fileio.adb: Minor reformatting. 2013-04-12 Yannick Moy <moy@adacore.com> * sem_attr.adb (Analyze_Attribute): Update analyse of Attribute_Old and Attribute_Result so they are allowed in the right-hand-side of an association in a Contract_Cases pragma. * sem_prag.adb (Analyze_CTC_In_Decl_Part): Add pre-analysis of the expressions in a Contract_Cases pragma. From-SVN: r197905
2013-04-12[multiple changes]Arnaud Charlet11-605/+70
2013-04-12 Robert Dewar <dewar@adacore.com> * sem.ads, opt.ads: Minor comment edits. * sem_warn.adb, sem_ch6.adb: Minor reformatting. 2013-04-12 Claire Dross <dross@adacore.com> * a-cfdlli.adb a-cfdlli.ads (List, Not_No_Element, Iterate, Reverse_Iterate, Query_Element, Update_Element, Read, Write): Removed, not suitable for formal analysis. 2013-04-12 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Abstract_State): Use Defining entity to locate package entity, which may be a child unit. 2013-04-12 Thomas Quinot <quinot@adacore.com> * g-socket.adb, g-socket.ads (Connect_Socket, version with timeout): If the specified timeout is 0, do not attempt to determine whether the connection succeeded. 2013-04-12 Doug Rupp <rupp@adacore.com> * s-fileio.adb (Form_RMS Context_Key): Fix some thinkos. From-SVN: r197904
2013-04-12[multiple changes]Arnaud Charlet3-29/+40
2013-04-12 Doug Rupp <rupp@adacore.com> * s-fileio.adb: Minor reformatting. 2013-04-12 Ed Schonberg <schonberg@adacore.com> * sem_warn.adb (Check_Infinite_Loop_Warning): Do not warn if the last statement in the analyzed loop is an unconditional exit statement. From-SVN: r197903
2013-04-12[multiple changes]Arnaud Charlet11-38/+408
2013-04-12 Robert Dewar <dewar@adacore.com> * opt.ads (Style_Check_Main): New switch. * sem.adb (Semantics): Set Style_Check flag properly for new unit to be analyzed. * sem_ch10.adb (Analyze_With_Clause): Don't reset Style_Check, the proper setting of this flag is now part of the Semantics procedure. * switch-c.adb (Scan_Front_End_Switches): Set Style_Check_Main for -gnatg and -gnaty 2013-04-12 Doug Rupp <rupp@adacore.com> * s-crtl.ads (fopen, freopen): Add vms_form parameter * i-cstrea.ads (fopen, freopen): Likewise. * adaint.h (__gnat_fopen, __gnat_freopen): Likewise. * adaint.c (__gnat_fopen, __gnat_freopen): Likewise. [VMS]: Split out RMS keys and call CRTL function appropriately. * s-fileio.adb (Form_VMS_RMS_Keys, Form_RMS_Context_Key): New subprograms. (Open, Reset): Call Form_VMS_RMS_Keys. Call fopen,freopen with vms_form * gnat_rm.texi: Document implemented RMS keys. From-SVN: r197902
2013-04-12[multiple changes]Arnaud Charlet6-372/+45
2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the corresponding pragma for aspect Abstract_State at the top of the visible declarations of the related package. Previously this was only done when the package is a compilation unit. 2013-04-12 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Further menu clean ups. * sem_prag.adb, opt.ads: Minor reformatting. * sem_util.ads: Minor comment fix. From-SVN: r197901
2013-04-12sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Depends is now a ↵Hristian Kirtchev3-68/+462
delayed aspect. 2013-04-12 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Depends is now a delayed aspect. The delay is required due to the interplay between aspects Depends and Global. (Check_Aspect_At_Freeze_Point): Add an entry for aspect Depends. * sem_prag.adb: Reformat various error messages. (Add_Item): New subsidiary routine. (Analyze_Pragma): Add new variables Global_Seen, Result_Seen, Subp_Inputs and Subp_Outputs. The analysis of pragma Depends now has the capability to check the proper mode and usage of subprogram inputs and outputs. (Appears_In): New routine. (Check_Function_Return): New routine. (Check_Mode): New routine. (Check_Usage): New routine. (Collect_Subprogram_Inputs_Outputs): New routine. From-SVN: r197900