aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_util.adb
AgeCommit message (Collapse)AuthorFilesLines
2013-10-10[multiple changes]Arnaud Charlet1-1/+2
2013-10-10 Robert Dewar <dewar@adacore.com> * lib-writ.adb (Write_Unit_Information): Fatal error if linker options are detected in a predefined generic unit. 2013-10-10 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c (CLOCK_REALTIME): Always define, possibly using a dummy placeholder value. (NEED_PTHREAD_CONDATTR_SETCLOCK): Remove, not needed anymore. * thread.c: Adjust #if test accordingly. 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Consequence_Error): Generate an implicit if statement. (Expand_Contract_Cases): Generate an implicit if statement. (Process_Contract_Cases): Do not expand Contract_Cases when no code is being generated. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_attr.adb (Address_Checks): New procedure. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sinfo.ads, sinfo.adb: New Node Freeze_Generic_Entity, to trigger semantic actions at the proper point for entities that previously had no explicit freeze point. * freeze.adb (Freeze_Generic_Entities): generate new nodes to indicate the point at which semantic checks can be performed on entities declared in generic packages. * sem_ch13.ads, sem_ch13.adb: New procedure Analyze_Freeze_Generic_Entity. * exp_util.adb (Insert_Actions): Treat new node like Freeze_Entity. * sem.adb (Analyze): Call Analyze_Freeze_Generic_Entity. * sprint.adb (Sprint_Node): display Analyze_Freeze_Generic_Entity. * gcc-interface/trans.c: Ignore Analyze_Freeze_Generic_Entity. * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r203367
2013-10-10[multiple changes]Arnaud Charlet1-1/+1
2013-10-10 Robert Dewar <dewar@adacore.com> * lib-xref-spark_specific.adb, par-ch13.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_attr.adb, sem_ch6.adb, sem_ch13.adb, a-sequio.adb, s-atocou-builtin.adb: Minor reformatting. 2013-10-10 Thomas Quinot <quinot@adacore.com> * s-oscons-tmplt.c (NEED_PTHREAD_CONDATTR_SETCLOCK): This constant needs to be output to s-oscons.h, as it is tested by init.c. 2013-10-10 Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Expand_N_Variant_Part): Don't expand choices, too early * exp_ch5.adb (Expand_N_Case_Statement): Use new Has_SP_Choice flag to avoid expanding choices when not necessary. * exp_util.adb: Minor reformatting * freeze.adb (Freeze_Record_Type): Redo expansion of variants * sem_aggr.adb: Minor reformatting * sem_case.ads, sem_case.adb: Major rewrite, separating Analysis and Checking of choices. * sem_ch3.adb (Analyze_Variant_Part): Rewrite to call new Analyze_Choices. * sem_ch4.adb (Analyze_Case_Expression): Call Analyze_Choices and Check_Choices * sem_ch5.adb (Analyze_Case_Statement): Call Analyze_Choices and Check_Choices * sem_util.adb: Minor reformatting * sinfo.ads, sinfo.adb (Has_SP_Choice): New flag. 2013-10-10 Vincent Celier <celier@adacore.com> * mlib-prj.adb (Build_Library): Do not issue link dynamic libraries with an Rpath, if switch -R was used. 2013-10-10 Tristan Gingold <gingold@adacore.com> * s-stalib.ads (Image_Index_Table_8, Image_Index_Table_16, Image_Index_Table_32): Remove as not used. * s-imgint.adb (Image_Integer): Call Set_Image_Integer and remove duplicated code. From-SVN: r203358
2013-10-10[multiple changes]Arnaud Charlet1-0/+63
2013-10-10 Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Expand_N_Variant_Part): Expand statically predicated subtype which appears in Discrete_Choices list. * exp_ch5.adb (Expand_N_Case_Statement): Expand statically predicated subtype which appears in Discrete_Choices list of case statement alternative. * exp_util.ads, exp_util.adb (Expand_Static_Predicates_In_Choices): New procedure. * sem_case.adb: Minor reformatting (Analyze_Choices): Don't expand out Discrete_Choices that are names of subtypes with static predicates. This is now done in the analyzer so that the -gnatct tree is properly formed for ASIS. * sem_case.ads (Generic_Choices_Processing): Does not apply to aggregates any more, so change doc accordingly, and remove unneeded Get_Choices argument. * sem_ch3.adb (Analyze_Variant_Part): Remove no longer used Get_Choices argument in instantiation of Generic_Choices_Processing. * sem_ch4.adb (Analyze_Case_Expression): Remove no longer used Get_Choices argument in instantiation of Generic_Choices_Processing. * sem_ch5.adb (Analyze_Case_Statement): Remove no longer used Get_Choices argument in instantiation of Generic_Choices_Processing. * sinfo.ads: For N_Variant_Part, and N_Case_Statement_Alternative, document that choices that are names of statically predicated subtypes are expanded in the code generation tree passed to the back end, but not in the ASIS tree generated for -gnatct. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch7.adb: Revert previous change. 2013-10-10 Gary Dismukes <dismukes@adacore.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the case where the Storage_Pool aspect is specified by an aspect clause and a renaming is used to capture the evaluation of the pool name, insert the renaming in front of the aspect's associated entity declaration rather than in front of the corresponding attribute definition (which hasn't been appended to the declaration list yet). 2013-10-10 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Is_Interface_Conformant): The controlling type of the interface operation is obtained from the ultimate alias of the interface primitive parameter, because that may be in fact an implicit inherited operation whose signature involves the type extension and not the desired interface. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * par-ch13.adb (Aspect_Specifications_Present): In Ada 2012, recognize an aspect specification with a misspelled name if it is followed by a a comma or semicolon. 2013-10-10 Vadim Godunko <godunko@adacore.com> * s-atocou.adb, s-atocou.ads, s-atocou-x86.adb, s-atocou-builtin.adb: Fix copyright notice. 2013-10-10 Yannick Moy <moy@adacore.com> * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): Get enclosing subprogram for precondition/postcondition/contract cases. From-SVN: r203350
2013-10-10[multiple changes]Arnaud Charlet1-4/+9
2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): For Address attribute, consider it to be set in source, because of aliasing considerations. (Analyze_Attribute_Definition_Clause): For the purpose of warning on overlays, take into account the aspect case. 2013-10-10 Robert Dewar <dewar@adacore.com> * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, a-cofove.ads: Minor reformatting. 2013-10-10 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Remove obsolete mention to -laddr2line. 2013-10-10 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb (Expand_N_Case_Expression): Indicate that the generated variable used as a target of the expression needs no initialization. 2013-10-10 Jose Ruiz <ruiz@adacore.com> * exp_util.adb (Corresponding_Runtime_Package): Remove the condition related to No_Dynamic_Attachment which was wrong. Protected types with interrupt handlers (when not using a restricted profile) are always treated as protected types with entries, regardless of the No_Dynamic_Attachment restriction. * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Simplify the code using the result of Corresponding_Runtime_Package. (Install_Private_Data_Declarations): When having static handlers and a non restricted profile, we use the type Static_Interrupt_Protection always, so we removed an extra wrong condition looking at the No_Dynamic_Attachment restriction. Simplify the code using the result of Corresponding_Runtime_Package. (Make_Initialize_Protection): Simplify the code using the result of Corresponding_Runtime_Package. (Install_Private_Data_Declaration): The No_Dynamic_Attachment restriction has nothing to do with static handlers. Remove the extra erroneous condition that was creating the wrong data type. 2013-10-10 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb (Is_Object_Reference): Attribute 'Old produces an object reference. * gnat_rm.texi: Define accessibility level of X'Update(...) result. From-SVN: r203348
2013-07-08[multiple changes]Arnaud Charlet1-4/+4
2013-07-08 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Create_Alternative): Removed. (Expand_N_If_Expression): Remove constant In_Case_Or_If_Expression. Add local variable Ptr_Typ. Inspect the "then" and "else" action lists for transient controlled objects and generate code to finalize them. (Is_Controlled_Function_Call): Removed. (Process_Action): Update the comment on usage. Update the call to Process_Transient_Object. There is no need to continue the traversal of the object itself. (Process_Actions): New routine. (Process_Transient_Object): Moved to the top level of Exp_Ch4. Add a new formal and update the related comment on usage. * exp_util.adb (Within_Case_Or_If_Expression): Start the search from the parent of the node. 2013-07-08 Robert Dewar <dewar@adacore.com> * a-cusyqu.ads, a-cbprqu.ads, s-interr.ads, a-cuprqu.ads, a-cbsyqu.ads: Minor reformatting (proper formatting of overriding). From-SVN: r200759
2013-04-25[multiple changes]Arnaud Charlet1-1/+14
2013-04-25 Yannick Moy <moy@adacore.com> * exp_spark.adb (Expand_SPARK_N_In): Remove procedure. (Expand_SPARK): Remove special expansion for membership tests. 2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch3.adb (Expand_N_Object_Declaration): Update all places that should use constant Base_Typ. When building an invariant check, account for invariants coming from the base type. Prevent the creation of a junk invariant check when the related object is of an array type and it is initialized with an aggregate. * exp_util.adb (Make_Invariant_Call): Typ is now a variable. Use the base type to create an invariant call when the type of the expression is a composite subtype. 2013-04-25 Vasiliy Fofanov <fofanov@adacore.com> * a-cborse.adb: Fix minor typo. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Different_Generic_Profile): A spec and body match in an instance if a subtype declaration that renames a generic actual with the same name appears between spec and body. From-SVN: r198294
2013-04-24adabkend.adb, [...]: Everything with name 'Alfa' renamed in 'SPARK'.Yannick Moy1-10/+13
2013-04-24 Yannick Moy <moy@adacore.com> * adabkend.adb, ali-util.adb, ali.adb, debug.adb, errout.adb, errout.ads, erroutc.adb, exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_dbug.adb, exp_util.adb, expander.adb, freeze.adb, gnat1drv.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads, opt.adb, opt.ads, restrict.adb, sem_aggr.adb, sem_attr.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb, sem_res.adb, sem_util.adb: Everything with name 'Alfa' renamed in 'SPARK'. Update comments. Renaming of units with name 'Alfa', renamed with 'SPARK' instead. * exp_alfa.adb: renamed exp_spark.adb. * exp_alfa.ads: renamed exp_spark.ads. * get_alfa.adb: renamed get_spark_xrefs.adb. * get_alfa.ads: renamed get_spark_xrefs.ads. * lib-xref-alfa.adb: renamed lib-xref-spark_specific.adb. * put_alfa.adb: renamed put_spark_xrefs.adb. * put_alfa.ads: renamed put_spark_xrefs.ads. * alfa.adb: renamed spark_xrefs.adb. * alfa.ads: renamed spark_xrefs.ads. * alfa_test.adb: renamed spark_xrefs_test.adb. From-SVN: r198234
2013-04-24[multiple changes]Arnaud Charlet1-13/+13
2013-04-24 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Process_Convention): Move Stdcall tests to Set_Convention_From_Pragma so that they are applied to each entry of a homonym set. (Process_Convention): Don't try to set convention if already set. 2013-04-24 Robert Dewar <dewar@adacore.com> * gnatbind.adb: Minor reformatting. 2013-04-24 Vincent Celier <celier@adacore.com> * clean.adb (Gnatclean): Add the default project search directories in the project search path after scanning the switches on the command line. (Initialize): Do not put the default project search directories in the project search path. * gnatcmd.adb (GNATcmd): Add the default project search directories in the project search path after scanning the switches on the command line. * make.adb (Initialize): Add the default project search directories in the project search path after scanning the switches on the command line. 2013-04-24 Yannick Moy <moy@adacore.com> * restrict.ads (Restriction_Warnings): Initialize with all False value. 2013-04-24 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb (Predicate_Checks_Suppressed): New function. * exp_util.ads, exp_util.adb (Make_Predicate_Check): Check setting of Predicate_Check. * snames.ads-tmpl (Name_Predicate_Check): New check name. * types.ads (Predicate_Check): New definition. * gnat_rm.texi: Add documentation for Predicate_Check. From-SVN: r198226
2013-04-23[multiple changes]Arnaud Charlet1-0/+2
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 Charlet1-2/+7
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-23a-envvar.adb, [...]: Minor reformatting.Robert Dewar1-10/+8
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 Charlet1-1/+13
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-22[multiple changes]Arnaud Charlet1-1/+1
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-12makeutl.adb, [...]: Minor reformatting.Robert Dewar1-1/+1
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-12[multiple changes]Arnaud Charlet1-5/+3
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-12[multiple changes]Arnaud Charlet1-5/+14
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-12aspects.adb (Find_Aspect): New routine.Hristian Kirtchev1-1/+1
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-12aspects.adb: Alphabetize subprogram bodies in this unit.Hristian Kirtchev1-7/+1
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-11[multiple changes]Arnaud Charlet1-0/+29
2013-04-11 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Entity_Of): Moved to Exp_Util. * exp_util.ads, exp_util.adb (Entity_Of): New routine. 2013-04-11 Robert Dewar <dewar@adacore.com> * g-spipat.ads: Minor comment fix. From-SVN: r197778
2013-04-11[multiple changes]Arnaud Charlet1-5/+23
2013-04-11 Robert Dewar <dewar@adacore.com> * atree.h: Add declarations for Flag255-Flag289 Fix declaration of Field30 (was wrong, but no effect, since not yet referenced by back end) Add declarations for Field31-Field35 Add declarations for Node31-Node35. * einfo.ads, einfo.adb (Has_Invariants): No longer applies to procedures. (Has_Predicates): No longer applies to functions. (Is_Predicate_Function): New flag. (Is_Predicate_Function_M): New flag. (Is_Invariant_Procedure): New flag. (Predicate_Function_M): New function. (Set_Predicate_Function_M): New procedure. * exp_ch11.adb (Expand_N_Raise_Expression): Take care of special case of appearing in predicate used for membership test. * exp_ch3.adb (Insert_Component_Invariant_Checks): Set Is_Invariant_Procedure flag. * exp_ch4.adb (Expand_Op_In): Call special predicate function that takes care of raise_expression nodes in the predicate. * exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for membership case. * sem_ch13.adb (Build_Predicate_Functions): New name for Build_Predicate_Function. Major rewrite to take care of raise expression in predicate for membership tests. * sem_res.adb (Resolve_Actuals): Include both predicate functions in defense against infinite predicate function loops. * sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag. 2013-04-11 Robert Dewar <dewar@adacore.com> * sem_prag.adb: Minor reformatting. 2013-04-11 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb: Generate reference for component of anonymous access type. From-SVN: r197766
2013-04-11exp_ch11.ads, [...] (Expand_N_Raise_Expression): New procedure.Robert Dewar1-0/+1
2013-04-11 Robert Dewar <dewar@adacore.com> * exp_ch11.ads, exp_ch11.adb (Expand_N_Raise_Expression): New procedure. * exp_util.adb (Insert_Actions): Add entry for N_Raise_Expression. * expander.adb: Add call to Expand_N_Raise_Expression. * par-ch11.adb (P_Raise_Expression): New procedure. * par-ch4.adb (P_Relation): Handle Raise_Expression. * par.adb (P_Raise_Expression): New procedure. * sem.adb: Add handling for N_Raise_Expression. * sem_ch11.ads, sem_ch11.adb (Analyze_Raise_Expression): New procedure. * sem_res.adb (Resolve): Add handling for N_Raise_Expression. * sinfo.ads, sinfo.adb (N_Raise_Expression): New node. * sprint.adb (Sprint_Node_Actual): Add handling for N_Raise_Expression. * stand.ads (Any_Type): Document use with N_Raise_Expression. From-SVN: r197764
2013-02-06[multiple changes]Arnaud Charlet1-3/+3
2013-02-06 Javier Miranda <miranda@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate the runtime check on assignment to tagged types if compiling with checks suppressed. 2013-02-06 Robert Dewar <dewar@adacore.com> * exp_util.adb, checks.adb, sem_ch12.adb, sem_res.adb, prj-conf.adb, s-os_lib.adb: Minor reformatting 2013-02-06 Vincent Celier <celier@adacore.com> * ug_words: Add -gnateY = /IGNORE_STYLE_CHECKS_PRAGMAS. 2013-02-06 Ed Schonberg <schonberg@adacore.com> * snames.ads-tmpl: Add Name_Rational and pragma Rational. * par-prag.adb: Recognize pragma Rational. * opt.ads (Rational_Profile): flag to control compatibility mode with Rational compiler. * sem_ch8.adb (Analyze_Subprogram_Renaming): When Rational profile is enable, accept renaming declarations where the new subprogram and the renamed entity have the same name. * sem_prag.adb (analyze_pragma): Add pragma Rational, and recognize Rational as a profile. From-SVN: r195793
2013-02-06[multiple changes]Arnaud Charlet1-0/+37
2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Expand_N_Expression_With_Actions): Rewritten. This routine should be able to properly detect controlled transient objects in its actions and generate the appropriate finalization actions. * exp_ch6.adb (Enclosing_Context): Removed. (Expand_Ctrl_Function_Call): Remove local subprogram and constant. Use routine Within_Case_Or_If_Expression to determine whether the lifetime of the function result must be extended to match that of the context. * exp_util.ads, exp_util.adb (Within_Case_Or_If_Expression): New routine. 2013-02-06 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Validate_Array_Type_Instance): Extend check for subtype matching of component type of formal array type, to avoid spurious error when component type is a separate actual in the instance, and there may be a discrepancy between private and full view of component type. From-SVN: r195790
2013-01-29[multiple changes]Arnaud Charlet1-19/+24
2013-01-29 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Expression_Function): An expression function declaration is not a subprogram declaration, and thus cannot appear in a protected definition. 2013-01-29 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Insert_Actions): When new actions come from the expression of the expression with actions, then they must be added to the list of existing actions. 2013-01-29 Eric Botcazou <ebotcazou@adacore.com> * sem_ch3.adb (Analyze_Subtype_Declaration) <Private_Kind>: For the subtype of a constrained private type with discriminants that has got a full view, show that the completion is a clone of the full view. From-SVN: r195543
2013-01-04[multiple changes]Arnaud Charlet1-102/+77
2013-01-04 Robert Dewar <dewar@adacore.com> * warnsw.adb: Minor fixes to -gnatw.d handling. 2013-01-04 Robert Dewar <dewar@adacore.com> * einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more fields. 2013-01-04 Joel Brobecker <brobecker@adacore.com brobecker> * gnat_ugn.texi: Fix typo. 2013-01-04 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Document alignment choice for subtypes. 2013-01-04 Robert Dewar <dewar@adacore.com> * validsw.ads: Minor fix to comment. 2013-01-04 Doug Rupp <rupp@adacore.com> * Makefile.rtl (GNATRTL_NONTASKING_OBJS, GNATRTL_ALTIVEC_OBJS): Factor g-al* objects. * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Add g-al* sources. (GNATRTL_ALTIVEC_OBJS): Override to null for VMS. Rename leon vxworks toolchain as leon-wrs-vxworks. * gcc-interface/Make-lang.in: Update dependencies 2013-01-04 Pascal Obry <obry@adacore.com> * prj.ads (For_Each_Source): Add Locally_Removed parameter. (Source_Iterator): Add Locally_Removed field. * prj.adb (For_Each_Source): Ignore Locally_Removed files if needed. (Next): Likewise. 2013-01-04 Robert Dewar <dewar@adacore.com> * exp_attr.adb: Minor reformatting. 2013-01-04 Robert Dewar <dewar@adacore.com> * checks.adb (Insert_Valid_Check): Fix handling of renamed packed array element. * exp_ch4.adb (Expand_Concatenate): Fix some missing parent fields in generated code. * exp_util.adb (Side_Effect_Free): Improve detection of cases needing renaming. 2013-01-04 Robert Dewar <dewar@adacore.com> * sinfo.ads: Clean up order of N_xxx subtypes 2013-01-04 Vincent Celier <celier@adacore.com> * prj-conf.adb (Check_Target): Allow --autoconf= with no target. From-SVN: r194896
2013-01-04types.ads, [...]: Minor reformatting.Robert Dewar1-3/+3
2013-01-04 Robert Dewar <dewar@adacore.com> * types.ads, prj-conf.adb, par-tchk.adb: Minor reformatting. 2013-01-04 Robert Dewar <dewar@adacore.com> * par-ch6.adb (P_Subprogram): Better handling of missing IS after expression function. * par-util.adb (No_Constraint): Improve handling to avoid bad warnings. 2013-01-04 Robert Dewar <dewar@adacore.com> * exp_util.ads, exp_util.adb (Insert_Actions): In expression with actions case, new actions are appended to the sequence rather than prepended. 2013-01-04 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Document -gnatw.d/w.D (does no apply in VMS mode). * usage.adb: Add lines for -gnatw.d/w.D switches. * warnsw.adb: Minor fixes (some missing cases of setting Warning_Doc_Switch). Reject -gnatw.d and -gnatw.D in VMS mode. From-SVN: r194895
2013-01-04[multiple changes]Arnaud Charlet1-8/+11
2013-01-04 Robert Dewar <dewar@adacore.com> * exp_util.adb (Remove_Side_Effects): Make sure scope suppress is restored on exit. 2013-01-04 Robert Dewar <dewar@adacore.com> * usage.adb: Document -gnateF (check overflow for predefined Float). 2013-01-04 Robert Dewar <dewar@adacore.com> * sem_res.adb (Resolve_Type_Conversion): Remove incorrect prevention of call to Apply_Type_Conversion_Checks, which resulted in missing check flags in formal mode. 2013-01-04 Vincent Celier <celier@adacore.com> * makeutl.ads (Db_Switch_Args): New table used by gprbuild. * prj-conf.adb (Check_Builder_Switches): Check for switches --config= (Get_Db_Switches): New procedure to get the --db switches so that they are used when invoking gprconfig in auto-configuration. (Do_Autoconf): When invoking gprconfig, use the --db switches, if any. From-SVN: r194894
2013-01-04exp_prag.adb, [...]: Minor reformatting.Robert Dewar1-1/+1
2013-01-04 Robert Dewar <dewar@adacore.com> * exp_prag.adb, gnatcmd.adb, exp_util.adb, table.adb, sem_prag.adb, freeze.adb, sem_ch4.adb, sem_warn.adb, opt.ads, exp_aggr.adb, prj-conf.adb, sem_ch13.adb: Minor reformatting. From-SVN: r194888
2013-01-04[multiple changes]Arnaud Charlet1-103/+111
2013-01-04 Thomas Quinot <quinot@adacore.com> * sinfo.ads: Minor documentation update. 2013-01-04 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb, einfo.adb (Analyze_Object_Declaration): Do not set Ekind before resolving initialization expression. 2013-01-04 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Generate_Index_Checks): Delay the generation of the check for an indexed component where the prefix mentions Loop_Entry until the attribute has been properly expanded. * exp_ch5.adb (Expand_Loop_Entry_Attributes): Perform minor decoration of the constant that captures the value of Loop_Entry's prefix at the entry point into a loop. Generate index checks for an attribute reference that has been transformed into an indexed component. 2013-01-04 Thomas Quinot <quinot@adacore.com> * exp_prag.adb, exp_util.adb, exp_util.ads, freeze.adb, exp_aggr.adb, sem_ch13.adb (Exp_Aggr.Collect_Initialization_Statements): Nothing to do if Obj is already frozen. (Exp_Util.Find_Init_Call): Rename to... (Exp_Util.Remove_Init_Call): New subprogram, renamed from Find_Init_Call. Remove the initialization call from the enclosing list if found, and if it is from an Initialization_Statements attribute, reset it. (Exp_Util.Append_Freeze_Action): Minor code reorganization. (Exp_Util.Append_Freeze_Actions): Ensure a freeze node has been allocated (as is already done in Append_Freeze_Action). (Freeze.Freeze_Entity): For an object with captured Initialization_Statements and non-delayed freezeing, unwrap the initialization statements and insert and them directly in the enclosing list. (Sem_Ch13.Check_Address_Clause): For an object with Initialization_Statements and an address clause, unwrap the initialization statements when moving them to the freeze actions. From-SVN: r194887
2013-01-03[multiple changes]Arnaud Charlet1-1/+8
2013-01-03 Thomas Quinot <quinot@adacore.com> * exp_ch11.adb: Minor reformatting. 2013-01-03 Thomas Quinot <quinot@adacore.com> * exp_util.adb, einfo.adb, einfo.ads, freeze.adb, exp_aggr.adb, sem_ch13.adb (Einfo.Initialization_Statements, Einfo.Set_Initialization_Statements): New entity attribute for objects. (Exp_Util.Find_Init_Call): Handle case of an object initialized by an aggregate converted to a block of assignment statements. (Freeze.Check_Address_Clause): Do not clear Has_Delayed_Freeze even for objects that require a constant address, because the address expression might involve entities that have yet to be elaborated at the point of the object declaration. (Exp_Aggr.Convert_Aggregate_In_Obj_Decl): For a type that does not require a transient scope, capture the assignment statements in a block so that they can be moved down after elaboration of an address clause if needed. (Sem_Ch13.Check_Constant_Address_Clause.Check_Expr_Constants, case N_Unchecked_Conversion): Do not replace operand subtype with its base type as this violates a GIGI invariant if the operand is an identifier (in which case the etype of the identifier is expected to be equal to that of the denoted entity). 2013-01-03 Javier Miranda <miranda@adacore.com> * sem_util.ads, sem_util.adb (Denotes_Same_Object): Extend the functionality of this routine to cover cases described in the Ada 2012 reference manual. 2013-01-03 Ed Schonberg <schonberg@adacore.com> * sem_elab.adb (Set_Elaboration_Constraint): Handle properly a 'Access attribute reference when the subprogram is called Initialize. 2013-01-03 Arnaud Charlet <charlet@adacore.com> * s-tpobop.adb (PO_Do_Or_Queue): Refine assertion, since a select statement may be called from a controlled (e.g. Initialize) operation and have abort always deferred. From-SVN: r194847
2013-01-02[multiple changes]Arnaud Charlet1-3/+3
2013-01-02 Robert Dewar <dewar@adacore.com> * checks.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_disp.adb, exp_dist.adb, exp_intr.adb, exp_prag.adb, exp_util.adb, freeze.adb, gnat1drv.adb, inline.adb, layout.adb, lib-xref.adb, par-ch10.adb, par-labl.adb, par-load.adb, par-util.adb, restrict.adb, sem_ch13.adb, sem_ch4.adb, sem_ch6.adb, sem_dim.adb, sem_elab.adb, sem_res.adb, sem_warn.adb, sinput-l.adb: Add tags to warning messages. * sem_ch6.ads, warnsw.ads, opt.ads: Minor comment updates. 2013-01-02 Robert Dewar <dewar@adacore.com> * err_vars.ads: Minor comment fix. 2013-01-02 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb: Refine predicate. From-SVN: r194787
2013-01-02[multiple changes]Arnaud Charlet1-3/+6
2013-01-02 Robert Dewar <dewar@adacore.com> * errout.ads: Minor comment fixes. * opt.ads: Minor comment additions. * exp_aggr.adb: Add tags to warning messages * exp_ch11.adb, exp_ch3.adb, exp_ch4.adb, exp_util.adb, sem_aggr.adb, sem_attr.adb, sem_case.adb, sem_cat.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, sem_util.adb, sem_warn.adb: Add tags to warning messages 2013-01-02 Doug Rupp <rupp@adacore.com> * init.c [VMS] Remove subtest on reason mask for ACCVIO that is a C_E. 2013-01-02 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb: Recover source name for renamed packagea. From-SVN: r194786
2012-12-05[multiple changes]Arnaud Charlet1-72/+77
2012-12-05 Yannick Moy <moy@adacore.com> * urealp.ads: Minor rewording. 2012-12-05 Yannick Moy <moy@adacore.com> * aspects.ads (No_Duplicates_Allowed): Forbid use of duplicate Contract_Cases aspects. * sem_prag.adb (Analyze_Pragma/Pragma_Contract_Case): Rename POST_CASE into CONTRACT_CASE in both grammar and code, to be consistent with current language definition. Issue a more precise error message when the pragma duplicates another pragma or aspect. 2012-12-05 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Add processing for attribute Update. (Expand_Update_Attribute): New routine. * par-ch4.adb (P_Name): The sole expression of attribute Update is an aggregate, parse it accordingly. * sem_attr.adb (Analyze_Attribute): Verify the legality of attribute Update. (Eval_Attribute): Attribute Update does not need evaluation because it is never static. * snames.ads-tmpl: Add Name_Update to the list of special names recognized by the compiler. Add an Attribute_Id for Update. 2012-12-05 Ed Schonberg <schonberg@adacore.com> * exp_util.adb (Remove_Side_Effects): For purposes of removing side effects, qualified expressions do not receive a special treatment, even though in Ada 2012 they are defined as object references. 2012-12-05 Thomas Quinot <quinot@adacore.com> * par-ch3.adb: Minor reformatting. From-SVN: r194207
2012-11-06checks.ads, [...]: Minor changes throughout for new overflow checking.Robert Dewar1-4/+4
2012-11-06 Robert Dewar <dewar@adacore.com> * checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for new overflow checking. * exp_util.adb (Insert_Actions): Remove special casing of Overflow_Check. * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling of overflow checks. * sem.adb (Analyze): Remove special casing of Overflow_Check (Analyze_List): ditto. * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove SUPPRESSED and change CHECKED to STRICT. * sem_res.adb (Analyze_And_Resolve): No longer treat Overflow_Check specially. (Preanalyze_And_Resolve): ditto. (Resolve): ditto. * snames.ads-tmpl: Replace Name_Checked by Name_Strict. * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting, CHECKED => STRICT. * types.ads (Overflow_Check_Type): Remove Suppressed, change Checked to Strict (Suppress_Record): Overflow check controlled by Suppress array. From-SVN: r193233
2012-10-05[multiple changes]Arnaud Charlet1-1/+20
2012-10-05 Robert Dewar <dewar@adacore.com> * sem_ch7.adb: Minor reformatting. 2012-10-05 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pragma, case Persistent_BSS): check for a duplicate pragma before Rep_Item_Too_Late to prevent spurious messages about duplicate pragmas. 2012-10-05 Ed Schonberg <schonberg@adacore.com> * exp_util.adb (Find_Init_Call): If the successor of the object declaration is a block, check whether it contains the initialization call, because it may have been created by actuals that use the secondary stack. From-SVN: r192130
2012-10-04[multiple changes]Arnaud Charlet1-1/+4
2012-10-04 Vincent Celier <celier@adacore.com> * prj-proc.adb (Process_Package_Declaration): Use project directory display path name as the value of 'Project_Dir. 2012-10-04 Gary Dismukes <dismukes@adacore.com> * exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be given by an arbitrary name, so copy the tree to make the call's actual. 2012-10-04 Robert Dewar <dewar@adacore.com> * s-exnllf.adb, s-exnllf.ads: Minor reformatting. 2012-10-04 Thomas Quinot <quinot@adacore.com> * exp_ch6.adb: Minor reformatting. 2012-10-04 Pascal Obry <obry@adacore.com> * projects.texi: Use consistently @command{} when referencing commands. Fix typos. From-SVN: r192068
2012-10-02par_sco.adb, [...]: Change name Conditional_Expression to If_Expression.Robert Dewar1-13/+13
2012-10-02 Robert Dewar <dewar@adacore.com> * par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb, exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads, exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb, checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h, sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb, gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads, exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb, opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb, sprint.ads, styleg.ads: Change name Conditional_Expression to If_Expression. * gcc-interface/trans.c (gnat_to_gnu): Replace N_Conditional_Expression by N_If_Expression. * gcc-interface/Make-lang.in: Update dependencies. From-SVN: r191967
2012-08-06[multiple changes]Arnaud Charlet1-9/+9
2012-08-06 Robert Dewar <dewar@adacore.com> * exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads, checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb, gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement extended overflow checks (step 1). (Overflow_Check_Type, Suppress_Record, Suppress_All): New types. (Suppress_Array): Extended to include switches to control extended overflow checking (and renamed to Suppress_Record). Update all uses of Suppress_Array. 2012-08-06 Thomas Quinot <quinot@adacore.com> * makeutl.ads: Minor documentation fix. 2012-08-06 Thomas Quinot <quinot@adacore.com> * exp_ch7.adb: Minor reformatting. From-SVN: r190166
2012-06-14[multiple changes]Arnaud Charlet1-1/+1
2012-06-14 Robert Dewar <dewar@adacore.com> * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb, sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb, s-taprop-dummy.adb: Minor reformatting. 2012-06-14 Vincent Pucci <pucci@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free attribute case added. * par-prag.adb (Prag): Lock_Free pragma case added. * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute case added. * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item call added for Aspect_Lock_Free. * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free error messages for subprogram bodies. (Lock_Free_Disabled): New routine. (Analyze_Protected_Body): Call to Lock_Free_Disabled added. * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added. * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added. (Is_Pragma_Name): Name_Lock_Free case added. * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added. 2012-06-14 Ed Schonberg <schonberg@adacore.com> * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing aliased keyword. 2012-06-14 Bob Duff <duff@adacore.com> * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this procedure from Sem body to Lib spec, so it can be used for debugging elsewhere. 2012-06-14 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode conformance: "aliased" must apply to both or neither formal parameters. From-SVN: r188609
2012-06-14[multiple changes]Arnaud Charlet1-4/+16
2012-06-14 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified expressions are valid names. 2012-06-14 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an instantiation do not emit warnings for obsolescent units. The warnings belong on the corresponding generic. 2012-06-14 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Update the usage of Node15. (Return_Flag_Or_Transient_Decl): Removed. (Set_Return_Flag_Or_Transient_Decl): Removed. (Set_Status_Flag_Or_Transient_Decl): New routine. (Status_Flag_Or_Transient_Decl): New routine. (Write_Field15_Name): Update the output for variables and constants. * einfo.ads: Remove attribute Return_Flag_Or_Transient_Decl along with occurrences in nodes. (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline. (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline. (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma Inline. (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline. * exp_ch4.adb (Create_Alternative): New routine. (Expand_N_Conditional_Expression): Handle the case where at least one of the conditional expression alternatives prodices a controlled temporary by means of a function call. (Is_Controlled_Function_Call): New routine. (Process_Transient_Object): Update the call to Set_Return_Flag_Or_Transient_Decl. * exp_ch6.adb (Enclosing_Context): New routine. (Expand_N_Extended_Return_Statement): Update all calls to Set_Return_Flag_Or_Transient_Decl. (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled function result when the context is a conditional expression. * exp_ch7.adb (Process_Declarations): Update all calls to Return_Flag_Or_Transient_Decl. Add processing for intermediate results of conditional expressions where one of the alternatives uses a controlled function call. (Process_Object_Declaration): Update all calls to Return_Flag_Or_Transient_Decl and rearrange the logic to process "hook" objects first. (Process_Transient_Objects): Update the call to Set_Return_Flag_Or_Transient_Decl. * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add detection for intermediate results of conditional expressions where one of the alternatives uses a controlled function call. From-SVN: r188606
2012-04-26[multiple changes]Arnaud Charlet1-9/+12
2012-04-26 Robert Dewar <dewar@adacore.com> * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb, sem_eval.adb: Minor reformatting. 2012-04-26 Thomas Quinot <quinot@adacore.com> * freeze.adb: Minor change in error wording. 2012-04-26 Ed Schonberg <schonberg@adacore.com> * gnat_ugn.texi: Documentation on dimensional analysis. 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb, einfo.ads: Remove synthesized attribute Proper_First_Index along with its associations in various nodes. (Proper_First_Index): Removed. * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new local variable Index_Type. The index type of a string literal subtype is that of the stored low bound. * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index. * sem_res.adb (Resolve_Slice): Alphabetize constants. Add new local variable Index_Type. The index type of a string literal subtype is that of the stored low bound. (Set_String_Literal_Subtype): Code reformatting. From-SVN: r186868
2012-04-26[multiple changes]Arnaud Charlet1-21/+23
2012-04-26 Robert Dewar <dewar@adacore.com> * exp_aggr.adb: Minor reformatting. 2012-04-26 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to Requires_Cleanup_Actions. * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean; Boolean)): Rename formal parameter For_Package to Lib_Level to better reflect its purpose. Update the related comment and all occurrences of For_Package in the body. (Requires_Cleanup_Actions (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add local constant At_Lib_Level to keep monitor whether the path taken from the top-most context to the current construct involves package constructs. Update all calls to Requires_Cleanup_Actions. * exp_util.ads (Requires_Cleanup_Actions): Add new formal parameter Lib_Level and associated comment. 2012-04-26 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Process_Formals): If the type of the formal is a non null access type, mark the generated subtype as having a delayed freeze only if the designated type is not frozen yet. 2012-04-26 Vincent Celier <celier@adacore.com> * prj-attr.adb: New package Clean with attributes Object_Artifact_Extensions and Source_Artifact_Extensions. * prj-nmsc.adb (Process_Clean): Process new package Clean * prj.ads (Language_Config): New components Clean_Object_Artifacts and Clean_Source_Artifacts. * snames.ads-tmpl: New standard names Clean, Object_Artifact_Extensions and Source_Artifact_Extensions. From-SVN: r186867
2012-04-02[multiple changes]Arnaud Charlet1-3/+2
2012-04-02 Yannick Moy <moy@adacore.com> * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library search dirs in file specified with option -gnateO. 2012-04-02 Robert Dewar <dewar@adacore.com> * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor reformatting. 2012-04-02 Olivier Hainque <hainque@adacore.com> * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of platforms where the use of this spec is supported. Add current year to the copyright notice. * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support it and where they were missing (x86-solaris, x86-freebsd, x86_64-freebsd, and x86-darwin). 2012-04-02 Gary Dismukes <dismukes@adacore.com> * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small library, where we no longer suppress the Standard_Library, generate an empty body rather than the usual generation of assignments to imported globals, since those aren't present in the small library. 2012-04-02 Ed Schonberg <schonberg@adacore.com> * sinfo.ads: Minor documentation fix. 2012-04-02 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Resolve_Conditional_Expression): Add local variables Else_Typ and Then_Typ. Add missing type conversions to the "then" and "else" expressions when their respective types are scalar. 2012-04-02 Vincent Pucci <pucci@adacore.com> * exp_ch9.adb: Reordering of the local subprograms. New Table for the lock free implementation that maps each protected subprograms with the protected component it references. (Allow_Lock_Free_Implementation): New routine. Check if the protected body enables the lock free implementation. (Build_Lock_Free_Protected_Subprogram_Body): New routine. (Build_Lock_Free_Unprotected_Subprogram_Body): New routine. (Comp_Of): New routine. * Makefile.rtl: Add s-atopri.o * debug.adb: New compiler debug flag -gnatd9 for lock free implementation. * rtsfind.ads: RE_Atomic_Compare_Exchange_8, RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32, RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8, RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8, RE_Uint16, RE_Uint32, RE_Uint64 added. * s-atropi.ads: New file. Defines atomic primitives used by the lock free implementation. From-SVN: r186076
2012-04-02[multiple changes]Arnaud Charlet1-32/+63
2012-04-02 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Process_Declarations): Detect a case where a source object was initialized by another source object, but the expression was rewritten as a class-wide conversion of Ada.Tags.Displace. * exp_util.adb (Initialized_By_Ctrl_Function): Removed. (Is_Controlled_Function_Call): New routine. (Is_Displacement_Of_Ctrl_Function_Result): Removed. (Is_Displacement_Of_Object_Or_Function_Result): New routine. (Is_Source_Object): New routine. (Requires_Cleanup_Actions): Detect a case where a source object was initialized by another source object, but the expression was rewritten as a class-wide conversion of Ada.Tags.Displace. * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed. (Is_Displacement_Of_Object_Or_Function_Result): New routine. 2012-04-02 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Call): A call to an expression function does not freeze if it appears in a different scope from the expression function itself. Such calls appear in the generated bodies of other expression functions, or in pre/postconditions of subsequent subprograms. From-SVN: r186071
2012-03-30[multiple changes]Arnaud Charlet1-3/+5
2012-03-30 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where a build-in-place call appears as Prefix'Reference'Reference. 2012-03-30 Yannick Moy <moy@adacore.com> * lib-xref-alfa.adb: Minor refactoring to remove internal package. 2012-03-30 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype definition of a loop when the context is a quantified expression. 2012-03-30 Vincent Celier <celier@adacore.com> * prj.ads: Minor comment update. From-SVN: r186005
2012-03-30[multiple changes]Arnaud Charlet1-74/+74
2012-03-30 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Process_Declarations): Replace the call to Is_Null_Access_BIP_Func_Call with Is_Secondary_Stack_BIP_Func_Call. Update the related comment. * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed. (Is_Secondary_Stack_BIP_Func_Call): New routine. (Requires_Cleanup_Actions): Replace the call to Is_Null_Access_BIP_Func_Call with Is_Secondary_Stack_BIP_Func_Call. Update the related comment. * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed. (Is_Secondary_Stack_BIP_Func_Call): New routine. 2012-03-30 Yannick Moy <moy@adacore.com> * lib-xref-alfa.adb, lib-xref.adb: Code clean ups. From-SVN: r186001
2012-03-15[multiple changes]Arnaud Charlet1-9/+4
2012-03-15 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over selector names as the function call always appears at the top selected component. 2012-03-15 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep Mode_Conformance check for older versions of the language. 2012-03-15 Yannick Moy <moy@adacore.com> * gnat_ugn.texi Document the extension of option -gnatw.t. * sem_ch3.adb (Analyze_Declaration): Check for suspicious contracts only after contract cases have been semantically analyzed. * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures components of contract cases for detecting suspicious contracts. From-SVN: r185417
2012-03-15[multiple changes]Arnaud Charlet1-3/+20
2012-03-15 Ed Falis <falis@adacore.com> * s-vxwork-ppc.ads: Update copyright. 2012-03-15 Robert Dewar <dewar@adacore.com> * sem_ch5.adb: Minor reformatting. 2012-03-15 Ed Schonberg <schonberg@adacore.com> * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the declaration of a class-wide object, retain the Ekind to prevent subsequent misuse of constants. 2012-03-15 Yannick Moy <moy@adacore.com> * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant terminology. 2012-03-15 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb (Initialized_By_Ctrl_Function): Add code to process the case when a function call appears in object.operation format. 2012-03-15 Ed Schonberg <schonberg@adacore.com> * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add Get_Inst formal, so that conformance within an instantiation follows renamings of formals. This is similar to what is already done in Check_Mode_conformant. * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that formal and actual are subtype conformant. Previously only mode conformance was required. From-SVN: r185410
2012-02-22[multiple changes]Arnaud Charlet1-1/+1
2012-02-22 Robert Dewar <dewar@adacore.com> * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor reformatting. 2012-02-22 Geert Bosch <bosch@adacore.com> * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove x86-specific version of byteswap and use GCC builtins instead. 2012-02-22 Tristan Gingold <gingold@adacore.com> * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type, E_Array_Type]: Translate component ealier. 2012-02-22 Robert Dewar <dewar@adacore.com> * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize error message for 'Range. From-SVN: r184480
2012-02-22[multiple changes]Arnaud Charlet1-11/+109
2012-02-22 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Process_Declarations): Minor reformatting. Simplify the entry point for renamings. Detect a case where a source object has been transformed into a class-wide renaming of a call to Ada.Tags.Displace. * exp_util.adb (Is_Displacement_Of_Ctrl_Function_Result): New routine. (Is_Finalizable_Transient): Minor reformatting. (Is_Tag_To_Class_Wide_Conversion): Minor reformatting. (Requires_Cleanup_Actions): Minor reformatting. Simplify the entry point for renamings. Detect a case where a source object has been transformed into a class-wide renaming of a call to Ada.Tags.Displace. * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): New routine. (Is_Tag_To_Class_Wide_Conversion): Minor reformatting. 2012-02-22 Ed Schonberg <schonberg@adacore.com> * lib-load.adb (Load_Unit): If the prefix of the name in a with-clause is a renaming, add a with-clause on the original unit. * sem_ch10.adb (Build_Unit_Name): Remove code made obsolete by new handling of renamings in with-clauses. From-SVN: r184478