aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_ch3.adb
AgeCommit message (Collapse)AuthorFilesLines
2013-10-10[multiple changes]Arnaud Charlet1-48/+28
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-1/+0
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-1/+3
2013-10-10 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor reformatting. 2013-10-10 Robert Dewar <dewar@adacore.com> * sinput-c.adb (Load_File): Ensure Source_Align alignment. * sinput-d.adb (Create_Debug_Source): Ensure Source_Align alignment. * sinput-l.adb (Create_Instantiation_Source): Ensure Source_Align alignment. (Load_File): Ditto. * sinput.ads, sinput.adb (Get_Source_File_Index): New optimized (single line) version. * types.ads (Source_Align): New definition. (Source_Buffer): Document new alignment requirement. 2013-10-10 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma, case Linker_Section): Allow this for types. 2013-10-10 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor adjustment to doc for To_Address attribute. 2013-10-10 Vadim Godunko <godunko@adacore.com> * s-stopoo.ads (Root_Storage_Pool): Add pragma Preelaborable_Initialization. From-SVN: r203343
2013-09-10[multiple changes]Arnaud Charlet1-5/+19
2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: sem_ch3.adb: (Replace_Anonymoous_Access_To_Protected_Subprogram): If the return type is itself an access to function, recurse to emit another anonymous type. gcc-interface/decl.c (gnat_to_gnu_entity): In ASIS mode (type_annotate_only) do not check whether access types have a set size. 2013-09-10 Robert Dewar <dewar@adacore.com> * err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode. * errout.adb (Warning_Doc_Switch): Ignored in VMS mode. * errout.ads (Warning_Doc_Switch): Ignored in VMS mode. * inline.ads (Warnings): New component in Pending_Body_Info. * sem_ch12.adb (Pending_Body_Info): Save and restore warnings at instantiation point. * warnsw.adb (Save_Warnings): New function (Restore_Warnings): New procedure Remove special handling of Warning_Doc_Switch, cleaner to handle the VMS case in errout, than to introduce undocumented oddities here. * warnsw.ads (Warning_Record) : New type. (Save_Warnings): New function. (Restore_Warnings): New procedure. From-SVN: r202467
2013-09-10[multiple changes]Arnaud Charlet1-0/+21
2013-09-10 Robert Dewar <dewar@adacore.com> * sinput.adb (Check_For_BOM): Avoid reading past end of file. 2013-09-10 Robert Dewar <dewar@adacore.com> * errout.adb (Error_Msg_Ada_2012_Feature): New procedure. * errout.ads (Error_Msg_Ada_2012_Feature): New procedure. * inline.ads: Save/Restore Ada_Version_Pragma. * opt.adb: Save/Restore Ada_Version_Pragma. * opt.ads (Ada_Version_Pragma): New variable. * par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch8.adb, par-prag.adb: Use Error_Msg_Ada_2012_Feature. * prj.adb: Initialize Ada_Version_Pragma. * sem_attr.adb: Use Error_Msg_Ada_2012_Feature. * sem_ch12.adb, sem_ch8.adb: Save/restore Ada_Version_Pragma. * sem_prag.adb (Analyze_Pragma, cases Ada_xx): Set Ada_Version_Pragma. * switch-c.adb: Initialize Ada_Version_Pragma. * sem_ch12.adb: Minor reformatting. 2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Process_Subtype): Discard constraint on access to class-wide type. Such constraints are not supported and are considered a language pathology. From-SVN: r202466
2013-09-10[multiple changes]Arnaud Charlet1-0/+5
2013-09-10 Robert Dewar <dewar@adacore.com> * switch-c.adb: Diagnose -gnatc given after -gnatRm. * gnat_ugn.texi: Add documentation for -gnatRm. * usage.adb: Minor reorganization (put style entries in proper order) Document -gnatRm switch. * sinfo.ads: Minor comment fix. 2013-09-10 Sergey Rybin <rybin@adacore.com frybin> * tree_io.ads: Update ASIS_Version_Number. 2013-09-10 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Access_Subprogram_Declaration): Check whether the designated type can appear in a parameterless call. * sem_ch4.adb (Analyze_Call): Do not insert an explicit dereference in the case of an indirect call through an access function that returns an array type. (Analyze_One_Call): Handle properly legal parameterless calls whose result is indexed, in constructs of the for F.all (I) * sem_ch6.ads (May_Need_Actuals): Make public, for use on access to subprogram types. * sem_res.adb (Resolve_Call): If the call is indirect, there is no entity to set on the name in the call. From-SVN: r202461
2013-09-10[multiple changes]Arnaud Charlet1-8/+20
2013-09-10 Robert Dewar <dewar@adacore.com> * aspects.ads (Delay_Type): New type (Aspect_Delay): New table. * einfo.adb (Has_Delayed_Rep_Aspects): New flag (May_Inherit_Delayed_Rep_Aspects): New flag (Rep_Clause): Removed (use Get_Attribute_Representation_Clause). * einfo.ads (Has_Delayed_Rep_Aspects): New flag (May_Inherit_Delayed_Rep_Aspects): New flag * freeze.adb: Minor reformatting * sem_ch13.adb (Analyze_Aspect_Speficifications): Redo handling of delayed evaluation, including optimizing some cases and avoiding delays. (Analyze_Aspects_At_Freeze_Point): Now handled inheriting delayed rep aspects for type derivation case. (Inherit_Delayed_Rep_Aspects): New procedure * sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Now handled inheriting delayed rep aspects for type derivation case. * sem_ch3.adb (Build_Derived_Type): Set May_Inherit_Derived_Rep_Aspects if parent type flag Has_Delayed_Rep_Aspects is set 2013-09-10 Robert Dewar <dewar@adacore.com> * errout.adb (Finalize): Don't delete real errors with specific warning control. 2013-09-10 Ed Schonberg <schonberg@adacore.com> * exp_ch9.adb (Expand_N_Timed_Entry_Call, Expand_N_Conditional_Entry_Call, Expand_N_Asynchronous_Select): Handle properly a trigger that is a call to a primitive operation of a type that implements a limited interface, if the type itself is not limited. From-SVN: r202456
2013-09-10sem_ch3.adb, [...]: Minor reformatting.Robert Dewar1-6/+11
2013-09-10 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sinfo.ads, exp_ch9.adb, sem_prag.adb, sem_ch12.adb, exp_ch4.adb, sprint.adb: Minor reformatting. From-SVN: r202455
2013-07-08[multiple changes]Arnaud Charlet1-2/+2
2013-07-08 Robert Dewar <dewar@adacore.com> * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): Recognize SPARK_05 as synonym for SPARK in restrictions pragma. * restrict.ads, restrict.adb (SPARK_Hides): Table moved to body, only referenced there. * scng.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch8.adb, sem_res.adb, sem_util.adb: Use restriction SPARK_05 instead of SPARK. * snames.ads-tmpl (Name_No_Obsolescent_Features): New entry. 2013-07-08 Vincent Celier <celier@adacore.com> * gnatcmd.adb (Check_Files): Use a response file for gnatls when possible. From-SVN: r200764
2013-07-05[multiple changes]Arnaud Charlet1-0/+2
2013-07-05 Claire Dross <dross@adacore.com> * a-cfdlli.ads: Add preconditions when needed. 2013-07-05 Robert Dewar <dewar@adacore.com> * sem_ch8.adb: Minor reformatting. 2013-07-05 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Access_Subprogram_Declaration): Use Generate_Reference_To_Formals. * lib-xref.adb (Generate_Reference_To_Formals): In the case of access to subprograms, the formals are found in the designated subprogram type. 2013-07-05 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Document that comments can be lined up with previous non-blank line. * styleg.adb (Check_Comment): Allow indentation to match previous non-blank line (Same_Column_As_Previous_Line): New function From-SVN: r200705
2013-04-25[multiple changes]Arnaud Charlet1-4/+3
2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Apply_Predicate_Check): Update the comment associated with the call to Check_Expression_Against_Static_Predicate. * sem_ch3.adb (Analyze_Object_Declaration): Update the comment associated with the call to Check_Expression_Against_Static_Predicate. * sem_util.adb (Check_Expression_Against_Static_Predicate): Broaden the check from a static expression to an expression with a known value at compile time. * sem_util.ads (Check_Expression_Against_Static_Predicate): Update comment on usage. 2013-04-25 Thomas Quinot <quinot@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference, cases Position, First_Bit, and Last_Bit): Fix incorrect test in implementation of RM 2005 13.5.2(3/2). 2013-04-25 Claire Dross <dross@adacore.com> * a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, a-cfhama.adb, a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads (Query_Element): Removed. (Update_Element): Removed. (Insert): The version with no New_Item specified is removed. (Iterate): Removed. (Write): Removed. (Read): Removed. Every check of fields Busy and Lock has been removed. 2013-04-25 Robert Dewar <dewar@adacore.com> * sem_prag.adb (Analyze_Pragma, case Contract_Cases): Remove call to S14_Pragma (Find_Related_Subprogram): Require proper placement in subprogram body (Find_Related_Subprogram): Detect duplicates for all cases (Find_Related_Subprogram): Handle case of spec nested inside body. From-SVN: r198297
2013-04-25[multiple changes]Arnaud Charlet1-5/+12
2013-04-25 Arnaud Charlet <charlet@adacore.com> * par-prag.adb: Fix typo. 2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Apply_Predicate_Check): If the type has a static predicate and the expression is also static, check whether the expression satisfies the predicate. * sem_ch3.adb (Analyze_Object_Declaration): If the type has a static predicate and the expression is also static, see if the expression satisfies the predicate. * sem_util.adb: Alphabetize several routines. (Check_Expression_Against_Static_Predicate): New routine. * sem_util.ads (Check_Expression_Against_Static_Predicate): New routine. From-SVN: r198296
2013-04-25[multiple changes]Arnaud Charlet1-0/+7
2013-04-25 Robert Dewar <dewar@adacore.com> * debug.adb: Remove d.X and d.Y entries and documentation. * exp_ch4.adb (Expand_N_If_Expression): Remove special code used if expression with actions not available (now always available). (Expand_Short_Circuit_Operator): Same change. * gnat1drv.adb (Adjust_Global_Switches) Remove setting Use_Expression_With_Actions flag, since this is now obsolete. * opt.ads (Use_Expression_Actions): Removed (always True now). * sinfo.ads: Minor comment updates. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Check_Generic_Actuals): If an actual is an array subtype whose base type is currently private, install full view when compiling instance body. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * sem_disp.adb (Check_Dispatching_Operation): Refine checks for AI05-0125: the check for a hidden primitive that may be overridden by the new declaration is only performed if the declaration comes from source, and it must carry an explicit overriding indicator. 2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb (Abstract_States): The attribute now applies to generic packages. * sem_ch3.adb (Analyze_Object_Declaration): Check whether an object declaration introduces an illegal hidden state. * sem_prag.adb (Analyze_Abstract_State): Check whether a state declaration introduces an illegal hidden state. * sem_util.ads, sem_util.adb (Check_No_Hidden_State): New routine. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Is_Build_In_Place_Function_Call): The call may be to a protected function, in which case the name in the call is a selected component. 2013-04-25 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch4.adb (Analyze_Quantified_Expression): Warn on a suspicious use of quantifier "some" when "all" was meant. (No_Else_Or_Trivial_True): New routine. From-SVN: r198287
2013-04-25[multiple changes]Arnaud Charlet1-22/+23
2013-04-25 Robert Dewar <dewar@adacore.com> * einfo.ads, einfo.adb: Put back with/use for Namet. (Get_Pragma): New name (wi new spec) for Find_Pragma. * sem_ch6.adb: Change name Find_Pragma to Get_Pragma with different interface. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Is_Visible_Component): In an instance all components are visible. From-SVN: r198286
2013-04-25[multiple changes]Arnaud Charlet1-4/+7
2013-04-25 Matthew Heaney <heaney@adacore.com> * a-rbtgbo.adb, a-crbtgo.adb (Generic_Equal): do not test for tampering when container empty. * a-crbtgk.adb (Ceiling, Find, Floor): ditto. (Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint): ditto. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * par-ch12.adb: Move aspects from package specification to generic package declaration. * sem_ch12.adb: Analyze aspect specifications before building and analyzing the generic copy, so that the generated pragmas are properly taken into account. * sem_ch13.adb: For compilation unit aspects that apply to a generic package declaration, insert corresponding pragmas ahead of visible declarations. * sprint.adb: Display properly the aspects of a generic type declaration. 2013-04-25 Robert Dewar <dewar@adacore.com> * frontend.adb: Minor reformatting. 2013-04-25 Ed Schonberg <schonberg@adacore.com> * einfo.ads: Extend documentation on use of Is_Private_Ancestor for untagged types. * sem_ch3.adb (Is_Visible_Component): Refine predicate for the case of untagged types derived from private types, to reject illegal selected components. From-SVN: r198285
2013-04-24[multiple changes]Arnaud Charlet1-7/+3
2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb (Expand_Actuals): Add a predicate check on an actual the related type has a predicate function. * sem_ch3.adb (Constant_Redeclaration): Ensure that the related type has an invariant procedure before building a call to it. * sem_ch6.adb (Append_Enabled_Item): New routine. (Check_Access_Invariants): Use routine Append_Enabled_Item to chain onto the list of postconditions. (Contains_Enabled_Pragmas): Removed. (Expand_Contract_Cases): Use routine Append_Enabled_Item to chain onto the list of postconditions. (Invariants_Or_Predicates_Present): Removed. (Process_PPCs): Partially reimplemented. 2013-04-24 Sergey Rybin <rybin@adacore.com frybin> * tree_io.ads: Update ASIS_Version_Number because of changes in the way how entities are chained in a scope by means of Next_Entity link. 2013-04-24 Ed Schonberg <schonberg@adacore.com> * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case Storage_Size): If the clause is not from an aspect, insert assignment to size variable of task type at the point of the clause, not after the task definition, to prevent access before elaboration in the back-end. 2013-04-24 Yannick Moy <moy@adacore.com> * sem_prag.adb (Sig_Flags): Set correct value for Pragma_Assume. 2013-04-24 Yannick Moy <moy@adacore.com> * gnat_rm.texi: Document 'Loop_Entry. 2013-04-24 Jose Ruiz <ruiz@adacore.com> * s-tassta.adb, s-tarest.adb (Task_Wrapper): Start looking for fall-back termination handlers from the parents, because they apply only to dependent tasks. * s-solita.adb (Task_Termination_Handler_T): Do not look for fall-back termination handlers because the environment task has no parent, and if it defines one of these handlers it does not apply to itself because they apply only to dependent tasks. From-SVN: r198244
2013-04-24[multiple changes]Arnaud Charlet1-1/+1
2013-04-24 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sem_ch7.adb: Minor reformatting. * gnat_rm.texi: Document pragma Loop_Invariant. * sem_attr.adb (Analyze_Attribute, case Loop_Entry): This is no longer an S14_Attribute. * sem_prag.adb (Analyze_Pragma, case Loop_Invariant): Combine processing with Assert, allow message parameter, remove call to S14_Pragma. 2013-04-24 Thomas Quinot <quinot@adacore.com> * exp_ch4.adb: Minor reformatting. From-SVN: r198241
2013-04-24[multiple changes]Arnaud Charlet1-0/+4
2013-04-24 Ed Schonberg <schonberg@adacore.com> * sem_ch7.adb (Swap_Private_Dependents): New internal routine to Install_Private_Declarations, to make the installation of private dependents recursive in the presence of child units. * sem_ch3.adb (Build_Discriminated_Subtype): Initialize properly the Private_Dependents of a private subtype. 2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Expand_Loop_Entry_Attribute): Update the retrieval of the block declarations. * par-ch4.adb (P_Name): Let the name parsing machinery create a sequence of nested indexed components for attribute Loop_Entry. * sem_attr.adb (Analyze_Attribute): Add local constant Context. Reimplement part of the analysis of attribute Loop_Entry. (Convert_To_Indexed_Component): Removed. * sem_ch4.adb (Analyze_Indexed_Component_Form): Do not analyze an indexed component after it has been rewritten into attribute Loop_Entry. From-SVN: r198240
2013-04-24snames.ads-tmpl: Minor change to list Loop_(In)variant not in configuration ↵Yannick Moy1-7/+4
pragma. 2013-04-24 Yannick Moy <moy@adacore.com> * snames.ads-tmpl: Minor change to list Loop_(In)variant not in configuration pragma. * sem_ch3.adb (Analyze_Declarations): Do not look at the original node for analyzing the expressions in pre/postconditions. From-SVN: r198239
2013-04-24adabkend.adb, [...]: Everything with name 'Alfa' renamed in 'SPARK'.Yannick Moy1-8/+8
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-24exp_ch6.adb: Remove with and use clause for Sem_Prag.Hristian Kirtchev1-47/+12
2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb: Remove with and use clause for Sem_Prag. (Freeze_Subprogram): Call Analyze_Subprogram_Contract to analyze the contract of a subprogram. * sem_ch3.adb: Remove with and use clause for Sem_Prag. (Analyze_Declarations): Call Analyze_Subprogram_Contract to analyze the contract of a subprogram. * sem_ch6.adb (Analyze_Subprogram_Contract): New routine. (Check_Subprogram_Contract): Removed. * sem_ch6.ads (Analyze_Subprogram_Contract): New routine. (Check_Subprogram_Contract): Removed. (Expand_Contract_Cases): Add a guard against malformed contract cases. * sem_ch13.adb (Analyze_Aspect_Specifications): Call Decorate_Delayed_Aspect_And_Pragma to decorate aspects Contract_Cases, Depends and Global. Reimplement the analysis of aspect Contract_Cases. (Decorate_Delayed_Aspect_And_Pragma): New routine. * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): New routine. (Analyze_CTC_In_Decl_Part): Removed. (Analyze_Pragma): Reimplement the analysis of pragma Contract_Cases. (Analyze_Test_Case_In_Decl_Part): New routine. (Find_Related_Subprogram): New routine. (Requires_Profile_Installation): Add new formal Prag. Update the logic to take into account the origin of the pragma. * sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part): New routine. (Analyze_CTC_In_Decl_Part): Removed. (Analyze_Test_Case_In_Decl_Part): New routine. From-SVN: r198227
2013-04-24[multiple changes]Arnaud Charlet1-1/+3
2013-04-24 Robert Dewar <dewar@adacore.com> * exp_ch13.adb, sem_prag.adb: Update comments. * sem_ch3.adb, exp_ch9.adb, g-socket.adb, sem_ch13.adb: Minor reformatting. 2013-04-24 Doug Rupp <rupp@adacore.com> * vms_data.ads (/{NO}INHIBIT-EXEC): Document new default behavior. 2013-04-24 Yannick Moy <moy@adacore.com> * sinfo.ads: Minor correction of typo. From-SVN: r198223
2013-04-24[multiple changes]Arnaud Charlet1-1/+4
2013-04-24 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: Create packed array only when expander is active. 2013-04-24 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Depends_In_Decl_Part): Install the formals only when the context warrants it. (Analyze_Global_In_Decl_List): Install the formals only when the context warrants it. (Requires_Profile_Installation): New routine. 2013-04-24 Ed Schonberg <schonberg@adacore.com> * exp_ch6.adb (Expand_N_Simple_Return_Statement): When the return type is a discriminated private type that does not require use of the secondary stack, a constrained subtype of the underlying type is created to convey the proper object size to the backend. If the return type is originally a private type, the return expression is wrapped in an unchecked_conversion. If the return expression is used subsequently in a call to the postcondition function, this conversion must be undone to prevent a spurious error on the analysis of that call. From-SVN: r198222
2013-04-23[multiple changes]Arnaud Charlet1-2/+15
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 Dewar1-3/+2
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 Charlet1-1/+15
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 Charlet1-8/+1
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 Charlet1-1/+1
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-22[multiple changes]Arnaud Charlet1-1/+8
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-12[multiple changes]Arnaud Charlet1-20/+17
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-11[multiple changes]Arnaud Charlet1-25/+0
2013-04-11 Doug Rupp <rupp@adacore.com> * gnatlink.adb: Fold program basename to lower case on VMS for consistency. 2013-04-11 Matthew Heaney <heaney@adacore.com> * a-rbtgbo.adb (Generic_Equal): Initialize Result variable before entering loop. 2013-04-11 Arnaud Charlet <charlet@adacore.com> * xgnatugn.adb: Remove dead code (handling of @ifset/@ifclear). 2013-04-11 Arnaud Charlet <charlet@adacore.com> * gnat_ugn.texi: Remove some use of ifset in menus. Not strictly needed, and seems to confuse some versions of makeinfo. 2013-04-11 Javier Miranda <miranda@adacore.com> * einfo.adb (Is_Thunk): Remove assertion. (Set_Is_Thunk): Add assertion. * einfo.ads (Is_Thunk): Complete documentation. * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Code cleanup. * exp_ch3.ad[sb] (Is_Variable_Size_Array): Moved to sem_util (Is_Variable_Size_Record): Moved to sem_util * exp_ch6.adb (Expand_Call): Code cleanup. (Expand_N_Extended_Return_Statement): Code cleanup. (Expand_Simple_Function_Return): Code cleanup. * exp_disp.adb Remove dependency on exp_ch3 (Expand_Interface_Thunk): Add minimum decoration needed to set attribute Is_Thunk. * sem_ch3.ad[sb] (Is_Constant_Bound): moved to sem_util * sem_util.ad[sb] (Is_Constant_Bound): Moved from sem_ch3 (Is_Variable_Size_Array): Moved from exp_ch3 (Is_Variable_Size_Record): Moved from exp_ch3 From-SVN: r197787
2013-04-11exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Do not add cleanup ↵Javier Miranda1-0/+9
actions in thunks associated with interface types. 2013-04-11 Javier Miranda <miranda@adacore.com> * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Do not add cleanup actions in thunks associated with interface types. * exp_ch3.ad[sb] (Is_Variable_Size_Record): Move declaration to the package spec. * exp_ch4.adb (Tagged_Conversion): Update call to Expand_Interface_Conversion since the parameter Is_Static is no longer needed. * exp_ch6.adb (Expand_N_Extended_Return_Statement): Adding assertion to ensure that interface thunks are never handled by this routine. (Expand_N_Simple_Function_Return): Do not rewrite this statement as an extended return statement in interface thunks, and do not perform copy in the secondary stack if the return statement is located in a thunk. * exp_disp.adb (Expand_Dispatching_Call): No longer displace the pointer to the returned object in functions returning interface types. (Expand_Interface_Thunk): For functions returning interface types displace the pointer to the returned object. (Expand_Interface_Conversion): Remove formal Is_Static since this subprogram can now evaluate it locally. * sem_ch3.adb (Add_Internal_Interface_Entities): For functions propagate the type returned by the covered interface primitive to the internal interface entity. Needed by the thunk to generate the code which displaces "this" to reference the corresponding secondary dispatch table. * sem_disp.adb (Propagate_Tag): Update call to Expand_Interface_Conversion since the parameter Is_Static is no longer needed. * sem_res.adb (Resolve_Type_Conversion): Update calls to Expand_Interface_Conversion since the parameter Is_Static is no longer needed plus code cleanup. From-SVN: r197786
2013-04-11[multiple changes]Arnaud Charlet1-1/+0
2013-04-11 Robert Dewar <dewar@adacore.com> * s-osprim-mingw.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb. makeutl.adb, sem_ch8.adb: Minor reformatting. 2013-04-11 Vincent Celier <celier@adacore.com> * gnat_ugn.texi: Minor fixes for VMS. * ug_words: Minor addition: -gnato? => /OVERFLOW_CHECKS=?. 2013-04-11 Robert Dewar <dewar@adacore.com> * usage.adb (Usage): Minor edit to -gnatW message 2013-04-11 Robert Dewar <dewar@adacore.com> * exp_aggr.adb (Expand_N_Aggregate): Add circuit for handling others for string literal case. Also add big ??? comment about this new code, which should be redundant, but is not. * sem_eval.adb (Eval_Concatenation): Handle non-static case properly (Eval_String_Literal): Handle non-static literal properly From-SVN: r197744
2013-02-06[multiple changes]Arnaud Charlet1-2/+36
2013-02-06 Robert Dewar <dewar@adacore.com> * osint.ads: Minor fix of typo. 2013-02-06 Sergey Rybin <rybin@adacore.com frybin> * gnat_ugn.texi: gnatmetric: update the documentation of complexity metrics for Ada 2012. 2013-02-06 Javier Miranda <miranda@adacore.com> * exp_disp.adb (Make_Secondary_DT): Code cleanup: remove useless initialization. 2013-02-06 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Discriminant_Constraints): Do not generate overflow checks on a discriminant expression if the discriminant constraint is applied to a private type that has a full view, because the check will be applied when the full view is elaborated. Removing the redundant check is not just an optimization, but it prevents spurious assembler errors, because of the way the backend generates names for expressions that require overflow checking. 2013-02-06 Pascal Obry <obry@adacore.com> * s-osprim-mingw.adb: Removes workaround for an old GNU/Linker limitation on Windows. (DA): Removed. (LIA): Removed. (LLIA): Removed. (TFA): Removed. (BTA): Removed. (BMTA): Removed. (BCA): Removed. (BMCA): Removed. (BTiA): Removed. (Clock): Use variable corresponding to access. (Get_Base_Time): Likewise. (Monotonic_Clock): Likewise. 2013-02-06 Vincent Celier <celier@adacore.com> * make.adb (Gnatmake): When gnatmake is called with a project file, do not invoke gnatbind with -I-. * makeutl.adb (Create_Binder_Mapping_File): Rewrite function. Get the infos from all the sources. 2013-02-06 Ed Schonberg <schonberg@adacore.com> * snames.ads-tmpl: Add Name_Overriding_Renamings and pragma Overriding_Renamings. * par-prag.adb: Recognize pragma Overriding_Renamings. * opt.ads (Overriding_Renamings): flag to control compatibility mode with Rational compiler, replaces Rational_Profile flag. * sem_ch8.adb (Analyze_Subprogram_Renaming): When Overriding_Renamings is enabled, accept renaming declarations where the new subprogram renames and overrides a locally inherited operation. Improve error message for some illegal renamings. * sem_prag.adb (Analyze_Pragma): Add case for Overriding_Renamings. (Set_Rational_Profile): The Rational_Profile enables Overriding_Renamings, Implicit_Packing, and Use_Vads_Size. 2013-02-06 Ed Schonberg <schonberg@adacore.com> * sem_util.adb: Set parent of copied aggregate component, to prevent infinite loop. From-SVN: r195798
2013-02-06[multiple changes]Arnaud Charlet1-6/+8
2013-02-06 Robert Dewar <dewar@adacore.com> * sem_ch3.adb, sem_ch10.adb: Minor reformatting. * exp_disp.adb: Minor comment update. * comperr.ads, osint.ads, rtsfind.adb, sem_prag.adb: Minor addition of No_Return pragmas. 2013-02-06 Thomas Quinot <quinot@adacore.com> * targparm.ads, sem_ch13.adb (Support_Nondefault_SSO): New target parameter, defaulted to False for now, indicates targets where non-default scalar storage order may be specified. 2013-02-06 Thomas Quinot <quinot@adacore.com> * sprint.adb (Write_Itype): Treat E_Record_Subtype_With_Private same as E_Record_Subtype. Display E_Class_Wide_Subtype as subtype, not type. From-SVN: r195797
2013-02-06sem_ch3.adb (Complete_Private_Subtype): Inherit the ↵Hristian Kirtchev1-7/+8
Has_Unknown_Discriminants from the full view of the base type. 2013-02-06 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb (Complete_Private_Subtype): Inherit the Has_Unknown_Discriminants from the full view of the base type. From-SVN: r195795
2013-02-06[multiple changes]Arnaud Charlet1-4/+3
2013-02-06 Robert Dewar <dewar@adacore.com> * exp_prag.adb, sem_ch3.adb, exp_attr.adb, sem_prag.adb, sem_ch6.adb, exp_intr.adb, exp_dist.adb, sem_ch13.adb: Internal clean up for N_Pragma nodes. 2013-02-06 Robert Dewar <dewar@adacore.com> * gnat_rm.texi: Minor text updates for pragma Warning. 2013-02-06 Geert Bosch <bosch@adacore.com> * s-multip.adb (Number_Of_CPUs): Short-circuit in case of CPU'Last = 1. 2013-02-06 Vincent Celier <celier@adacore.com> * clean.adb (Delete): On VMS use host notation to delete all files. From-SVN: r195788
2013-01-29[multiple changes]Arnaud Charlet1-2/+15
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-29errout.ads, errout.adb (Get_Ignore_Errors): New subprogram.Javier Miranda1-1/+5
2013-01-29 Javier Miranda <miranda@adacore.com> * errout.ads, errout.adb (Get_Ignore_Errors): New subprogram. * opt.ads (Warn_On_Overlap): Update documentation. * sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate): Check function writable actuals. * sem_ch3.adb (Build_Derived_Record_Type, Record_Type_Declaration): Check function writable actuals. * sem_ch4.adb (Analyze_Range): Check function writable actuals. * sem_ch5.adb (Analyze_Assignment): Remove code of the initial implementation of AI05-0144. * sem_ch6.adb (Analyze_Function_Return, (Analyze_Procedure_Call.Analyze_Call_And_Resolve): Remove code of the initial implementation of AI05-0144. * sem_res.adb (Resolve): Remove code of the initial implementation. (Resolve_Actuals): Call Check_Function_Writable_Actuals and remove call of the initial implementation. (Resolve_Arithmetic_Op, Resolve_Logical_Op, Resolve_Membership_Op): Check function writable actuals. * sem_util.ad[sb] (Actuals_In_Call): Removed (Check_Order_Dependence): Removed (Save_Actual): Removed (Check_Function_Writable_Actuals): New subprogram. * usage.adb (Usage): Update documentation. * warnsw.adb (Set_Warning_Switch): Enable warn_on_overlap when setting all warnings. From-SVN: r195540
2013-01-29sem_ch3.adb (Analyze_Subtype_Declaration): Inherit Is_Generic_Actual_Type ↵Ed Schonberg1-1/+8
flag in a nested instance. 2013-01-29 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit Is_Generic_Actual_Type flag in a nested instance. * sem_ch12.adb (Restore_Private_Views): Preserve Is_Generic_Actual_Type flag if actual is a Generic_Actual_Type of an enclosing instance. * sem_util.adb (Corresponding_Generic_Type): Handle generic actual which is an actual of an enclosing instance. * sem_type.adb (Real_Actual): If a generic_actual_type is the formal of an enclosing generic and thus renames the corresponding actual, use the actual of the enclosing instance to resolve spurious ambiguities in instantiations when two formals are instantiated with the same actual. From-SVN: r195538
2013-01-04sem_ch3.adb (Build_Private_Derived_Type): Set Has_Private_Ancestor on type ↵Ed Schonberg1-3/+9
derived from an untagged private type whose... 2013-01-04 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Private_Derived_Type): Set Has_Private_Ancestor on type derived from an untagged private type whose full view has discriminants * sem_aggr.adb (Resolve_Record_Aggregate): Reject non-extension aggregate for untagged record type with private ancestor. From-SVN: r194892
2013-01-04sem_elab.adb, [...]: Minor reformatting.Thomas Quinot1-29/+16
2013-01-04 Thomas Quinot <quinot@adacore.com> * sem_elab.adb, sem_ch3.adb: Minor reformatting. From-SVN: r194891
2013-01-04[multiple changes]Arnaud Charlet1-1/+1
2013-01-04 Robert Dewar <dewar@adacore.com> * table.adb: Minor reformatting. 2013-01-04 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Check_Redundant_Withs): A with_clause that does not come from source does not generate a warning for redundant with_clauses. 2013-01-04 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb, aspects.ads: Add Aspect_Global to all relevant tables. * par-prag.adb: Add pragma Global to the list of pragmas that do not need special processing by the parser. * sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect Global into a pragma without any form of legality checks. The work is done by Analyze_Pragma. The aspect and pragma are both marked as needing delayed processing. Insert the corresponding pragma of aspect Abstract_State in the visible declarations of the related package. (Check_Aspect_At_Freeze_Point): Aspect Global does not need processing even though it is marked as delayed. Alphabetize the list on aspect names. * sem_prag.adb: Add a value for pragma Global in table Sig_Flags. (Analyze_Pragma): Add ??? comment about the grammar of pragma Abstract_State. Move the error location from the pragma to the state to improve the quality of error placement. Add legality checks for pragma Global. * snames.ads-tmpl Add the following specially recognized names 2013-01-04 Eric Botcazou <ebotcazou@adacore.com> * sem_ch3.adb: Fix minor typo. 2013-01-04 Ed Schonberg <schonberg@adacore.com> * par-ch13.adb (Aspect_Specifications_Present): In Strict mode, accept an aspect name followed by a comma, indicating a defaulted boolean aspect. From-SVN: r194890
2013-01-04[multiple changes]Arnaud Charlet1-11/+5
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-3/+11
2013-01-03 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb, aspects.ads: Add Aspect_Abstract_State to all the relevant tables. * einfo.ads, einfo.adb: Add Integrity_Level and Refined_State to the description of fields (Abstract_States): New routine. (Integrity_Level): New routine. (Has_Property): New routine. (Is_Input_State): New routine. (Is_Null_State): New routine. (Is_Output_State): New routine. (Is_Volatile_State): New routine. (Refined_State): New routine. (Set_Abstract_States): New routine. (Set_Integrity_Level): New routine. (Set_Refined_State): New routine. (Write_Field8_Name): Add proper output for E_Abstract_State. (Write_Field9_Name): Add proper output for E_Abstract_State. (Write_Field25_Name): Add proper output for E_Package. * lib-xref.ads: Add new letter for an abstract state. * par-prag.adb: Add pragma Abstract_State to the list of pragma that do not need special processing by the parser. * sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect Abstract_State into a pragma without any form of legality checks. The work is done by Analyze_Pragma. (Check_Aspect_At_Freeze_Point): Aspect Abstract_State does not require delayed analysis. * sem_prag.adb: Add a value for pragma Abstract_State in table Sig_Flags. (Analyze_Pragma): Add legality checks for pragma Abstract_State. Analysis of individual states introduces a state abstraction entity into the visibility chain. * snames.ads-tmpl: Add new names for abstract state and integrity. Add new pragma id for abstract state. 2013-01-03 Bob Duff <duff@adacore.com> * table.adb (Reallocate): Calculate new Length in Long_Integer to avoid overflow. 2013-01-03 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb, sinfo.ads, freeze.adb, sem_ch4.adb, exp_aggr.adb (Sem_Ch3.Analyze_Object_Declaration): Set Ekind early so that it is set properly when expanding the initialization expression. (Freeze.Check_Address_Clause): Transfer initialization expression to an assignment in the freeze actions, so that the object is initialized only after being elaborated by GIGI. (Sinfo (comments), Sem_Ch4.Analyze_Expression_With_Actions): Allow a Null_Statement as the expression in an Expression_With_Actions. (Exp_Aggr.Collect_Initialization_Statements): New subprogram shared by expansion of record and array aggregates, used to capture statements for an aggregate used to initalize an object into an Expression_With_Actions (which acts as a container for a list of actions). (Exp_Aggr.Convert_Aggr_In_Obj_Decl): Use the above to capture initialization statements, instead of the previously existing loop which left freeze nodes out of the capturing construct (causing out of order elaboration crashes in GIGI). (Exp_Aggr.Expand_Array_Aggregate): Use the above to capture initialization statements (this was previously not done for arrays). Also do not unconditionally prevent in place expansion for an object with address clause. From-SVN: r194851
2013-01-02[multiple changes]Arnaud Charlet1-2/+2
2013-01-02 Thomas Quinot <quinot@adacore.com> * sem_ch3.adb: Minor reformatting. 2013-01-02 Pascal Obry <obry@adacore.com> * cstreams.c (__gnat_ftell64): New routine. Use _ftelli64 on Win64 and default to ftell on other platforms. (__gnat_fsek64): Likewise. * i-cstrea.ads: Add fssek64 and ftell64 specs. * s-crtl.ads: Likewise. * a-ststio.adb, s-direio.adb (Size): Use 64 bits version when required. (Set_Position): Likewise. From-SVN: r194797
2013-01-02[multiple changes]Arnaud Charlet1-1/+36
2013-01-02 Thomas Quinot <quinot@adacore.com> * par_sco.adb: Generate X SCOs for default expressions in subprogram body stubs. Do not generate any SCO for package, task, or protected body stubs. 2013-01-02 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb: Further improvement to ASIS mode for anonymous access to protected subprograms. From-SVN: r194796
2013-01-02[multiple changes]Arnaud Charlet1-15/+13
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
2013-01-02[multiple changes]Arnaud Charlet1-8/+13
2013-01-02 Thomas Quinot <quinot@adacore.com> * exp_prag.adb: Minor reformatting. 2013-01-02 Ed Schonberg <schonberg@adacore.com> * sem_ch12.adb (Get_Associated_Node): If the node is an identifier that denotes an unconstrained array in an object declaration, it is rewritten as the name of an anonymous subtype whose bounds are given by the initial expression in the declaration. When checking whether that identifier is global reference, use the original node, not the local generated subtype. 2013-01-02 Olivier Hainque <hainque@adacore.com> * tracebak.c: Revert previous change, incomplete. 2013-01-02 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications): If the aspect appears on a subprogram body that acts as a spec, place the corresponding pragma in the declarations of the body, so that e.g. pre/postcondition checks can be generated appropriately. 2013-01-02 Robert Dewar <dewar@adacore.com> * sem_ch3.adb: Minor reformatting and code reorganization. From-SVN: r194781
2013-01-02[multiple changes]Arnaud Charlet1-21/+38
2013-01-02 Vincent Celier <celier@adacore.com> * switch-m.adb (Normalize_Compiler_Switches): Record the complete switch -fstack-check=specific instead of its shorter alias -fstack-check. 2013-01-02 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Derive_Subprogram): Enforce RM 6.3.1 (8): if the derived type is a tagged generic formal type with unknown discriminants, the inherited operation has convention Intrinsic. As such, the 'Access attribute cannot be applied to it. 2013-01-02 Thomas Quinot <quinot@adacore.com> * sem_attr.adb: Minor reformatting. From-SVN: r194780